Skip to content

Commit c9e918b

Browse files
committed
test: deflake test-tls-js-stream
`socket.destroy()` can destory the stream before the chunk to write with `socket.end()` is actually sent. Furthermore `socket.destroy()` destroys `p` and not the actual raw socket. As a result it is possible that the connection is left open. Remove `socket.destroy()` to ensure that the chunk is sent. Also use `common.mustCall()` to ensure that the `'secureConnection'` and `'secureConnect'` events are emitted exactly once. Fixes: #26938
1 parent cb848b4 commit c9e918b

File tree

2 files changed

+8
-23
lines changed

2 files changed

+8
-23
lines changed

test/parallel/parallel.status

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ test-http2-client-upload-reject: PASS,FLAKY
2323
[$system==linux]
2424

2525
[$system==macos]
26-
# https://github.com/nodejs/node/issues/26938
27-
test-tls-js-stream: PASS,FLAKY
2826

2927
[$arch==arm || $arch==arm64]
3028
# https://github.com/nodejs/node/issues/26610

test/parallel/test-tls-js-stream.js

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,19 @@ if (!common.hasCrypto)
66

77
const fixtures = require('../common/fixtures');
88

9-
const assert = require('assert');
109
const net = require('net');
1110
const stream = require('stream');
1211
const tls = require('tls');
1312

14-
const connected = {
15-
client: 0,
16-
server: 0
17-
};
18-
1913
const server = tls.createServer({
2014
key: fixtures.readKey('agent1-key.pem'),
2115
cert: fixtures.readKey('agent1-cert.pem')
22-
}, function(c) {
16+
}, common.mustCall(function(c) {
2317
console.log('new client');
24-
connected.server++;
18+
19+
c.resume();
2520
c.end('ohai');
26-
}).listen(0, function() {
21+
})).listen(0, common.mustCall(function() {
2722
const raw = net.connect(this.address().port);
2823

2924
let pending = false;
@@ -53,23 +48,15 @@ const server = tls.createServer({
5348
const socket = tls.connect({
5449
socket: p,
5550
rejectUnauthorized: false
56-
}, function() {
51+
}, common.mustCall(function() {
5752
console.log('client secure');
5853

59-
connected.client++;
60-
61-
socket.end('hello');
6254
socket.resume();
63-
socket.destroy();
64-
});
55+
socket.end('hello');
56+
}));
6557

6658
socket.once('close', function() {
6759
console.log('client close');
6860
server.close();
6961
});
70-
});
71-
72-
process.once('exit', function() {
73-
assert.strictEqual(connected.client, 1);
74-
assert.strictEqual(connected.server, 1);
75-
});
62+
}));

0 commit comments

Comments
 (0)