Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 6040efd

Browse filesBrowse files
TrottMylesBorins
authored andcommitted
test: fix flaky test-tls-wrap-timeout
Competing timers were causing a race condition and thus the test was flaky. Instead, we check an object property on process exit. Fixes: #7650 Backport-PR-URL: #12567 PR-URL: #7857 Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: jasnell - James M Snell <jasnell@gmail.com>
1 parent b5b78b1 commit 6040efd
Copy full SHA for 6040efd

File tree

Expand file treeCollapse file tree

1 file changed

+31
-19
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+31
-19
lines changed
Open diff view settings
Collapse file
+31-19Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,54 @@
11
'use strict';
2-
var common = require('../common');
3-
var assert = require('assert');
2+
const common = require('../common');
43

54
if (!common.hasCrypto) {
65
common.skip('missing crypto');
76
return;
87
}
9-
var tls = require('tls');
8+
const assert = require('assert');
9+
const tls = require('tls');
1010

11-
var net = require('net');
12-
var fs = require('fs');
11+
const net = require('net');
12+
const fs = require('fs');
1313

14-
var options = {
14+
const options = {
1515
key: fs.readFileSync(common.fixturesDir + '/keys/agent1-key.pem'),
1616
cert: fs.readFileSync(common.fixturesDir + '/keys/agent1-cert.pem')
1717
};
1818

19-
var server = tls.createServer(options, function(c) {
20-
setTimeout(function() {
21-
c.write('hello');
22-
setTimeout(function() {
23-
c.destroy();
24-
server.close();
25-
}, 150);
26-
}, 150);
27-
});
19+
const server = tls.createServer(options, common.mustCall((c) => {
20+
setImmediate(() => {
21+
c.write('hello', () => {
22+
setImmediate(() => {
23+
c.destroy();
24+
server.close();
25+
});
26+
});
27+
});
28+
}));
29+
30+
var socket;
31+
var lastIdleStart;
2832

29-
server.listen(0, function() {
30-
var socket = net.connect(this.address().port, function() {
31-
var s = socket.setTimeout(common.platformTimeout(240), function() {
33+
server.listen(0, () => {
34+
socket = net.connect(server.address().port, function() {
35+
const s = socket.setTimeout(Number.MAX_VALUE, function() {
3236
throw new Error('timeout');
3337
});
3438
assert.ok(s instanceof net.Socket);
3539

36-
var tsocket = tls.connect({
40+
assert.notStrictEqual(socket._idleTimeout, -1);
41+
lastIdleStart = socket._idleStart;
42+
43+
const tsocket = tls.connect({
3744
socket: socket,
3845
rejectUnauthorized: false
3946
});
4047
tsocket.resume();
4148
});
4249
});
50+
51+
process.on('exit', () => {
52+
assert.strictEqual(socket._idleTimeout, -1);
53+
assert(lastIdleStart < socket._idleStart);
54+
});

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.