Skip to content

Commit a4cbe30

Browse files
TrottMylesBorins
authored andcommitted
test: improve reliability of http2-session-timeout
Check actual expired time rather than relying on a number of calls to setTimeout() in test-http2-session-timeout more robust. PR-URL: #20692Fixes: #20628 Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent 56de3bf commit a4cbe30

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

‎test/sequential/test-http2-session-timeout.js‎

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ const h2 = require('http2');
77

88
constserverTimeout=common.platformTimeout(200);
99
constcallTimeout=common.platformTimeout(20);
10-
constminRuns=Math.ceil(serverTimeout/callTimeout)*2;
1110
constmustNotCall=common.mustNotCall();
1211

1312
constserver=h2.createServer();
@@ -21,9 +20,10 @@ server.listen(0, common.mustCall(() => {
2120

2221
consturl=`http://localhost:${port}`;
2322
constclient=h2.connect(url);
24-
makeReq(minRuns);
23+
conststartTime=process.hrtime();
24+
makeReq();
2525

26-
functionmakeReq(attempts){
26+
functionmakeReq(){
2727
constrequest=client.request({
2828
':path': '/foobar',
2929
':method': 'GET',
@@ -34,12 +34,14 @@ server.listen(0, common.mustCall(() => {
3434
request.end();
3535

3636
request.on('end',()=>{
37-
if(attempts){
38-
setTimeout(()=>makeReq(attempts-1),callTimeout);
37+
constdiff=process.hrtime(startTime);
38+
constmilliseconds=(diff[0]*1e3+diff[1]/1e6);
39+
if(milliseconds<serverTimeout*2){
40+
setTimeout(makeReq,callTimeout);
3941
}else{
4042
server.removeListener('timeout',mustNotCall);
41-
client.close();
4243
server.close();
44+
client.close();
4345
}
4446
});
4547
}

0 commit comments

Comments
 (0)