Skip to content

Commit 6040efd

Browse 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 <[email protected]> Reviewed-By: Fedor Indutny <[email protected]> Reviewed-By: jasnell - James M Snell <[email protected]>
1 parent b5b78b1 commit 6040efd

File tree

1 file changed

+31
-19
lines changed

1 file changed

+31
-19
lines changed
Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,54 @@
11
'use strict';
2-
varcommon=require('../common');
3-
varassert=require('assert');
2+
constcommon=require('../common');
43

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

11-
varnet=require('net');
12-
varfs=require('fs');
11+
constnet=require('net');
12+
constfs=require('fs');
1313

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

19-
varserver=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+
constserver=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+
varsocket;
31+
varlastIdleStart;
2832

29-
server.listen(0,function(){
30-
varsocket=net.connect(this.address().port,function(){
31-
vars=socket.setTimeout(common.platformTimeout(240),function(){
33+
server.listen(0,()=>{
34+
socket=net.connect(server.address().port,function(){
35+
consts=socket.setTimeout(Number.MAX_VALUE,function(){
3236
thrownewError('timeout');
3337
});
3438
assert.ok(sinstanceofnet.Socket);
3539

36-
vartsocket=tls.connect({
40+
assert.notStrictEqual(socket._idleTimeout,-1);
41+
lastIdleStart=socket._idleStart;
42+
43+
consttsocket=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)