Browse Source

test: fix flaky test-http2-session-timeout

Increase server timeout, reduce frequency of calls and
unbind timeout after runs are done in order to avoid
race conditions. Temporarily moved to sequential.

Fixes: https://github.com/nodejs/node/issues/15326
PR-URL: https://github.com/nodejs/node/pull/15338
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
canary-base
Anatoli Papirovski 8 years ago
committed by Matteo Collina
parent
commit
de51717c3e
  1. 14
      test/sequential/test-http2-session-timeout.js

14
test/parallel/test-http2-session-timeout.js → test/sequential/test-http2-session-timeout.js

@ -7,20 +7,22 @@ if (!common.hasCrypto)
const h2 = require('http2');
const serverTimeout = common.platformTimeout(200);
const callTimeout = common.platformTimeout(10);
const callTimeout = common.platformTimeout(20);
const minRuns = Math.ceil(serverTimeout / callTimeout) * 2;
const mustNotCall = common.mustNotCall();
const server = h2.createServer();
server.timeout = serverTimeout;
server.on('request', (req, res) => res.end());
server.on('timeout', common.mustNotCall());
server.on('timeout', mustNotCall);
server.listen(0, common.mustCall(() => {
const port = server.address().port;
const url = `http://localhost:${port}`;
const client = h2.connect(url);
makeReq(40);
makeReq(minRuns);
function makeReq(attempts) {
const request = client.request({
@ -29,13 +31,17 @@ server.listen(0, common.mustCall(() => {
':scheme': 'http',
':authority': `localhost:${port}`,
});
request.resume();
request.end();
request.on('end', () => {
if (attempts) {
setTimeout(() => makeReq(attempts - 1), callTimeout);
} else {
server.close();
server.removeListener('timeout', mustNotCall);
client.destroy();
server.close();
}
});
}
}));
Loading…
Cancel
Save