diff options
author | Gerhard Stoebich <18708370+Flarna@users.noreply.github.com> | 2019-10-08 21:26:26 +0300 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2019-12-20 05:57:03 +0300 |
commit | 9e6c2ba68a46ee693cf0b4875966f96a6dc261cf (patch) | |
tree | a10177343e082b82285fac6aeddde240bec32ac1 /test | |
parent | ac2fc0dd5f5830d32dd89fe1c9c55d672cf59c0a (diff) |
test: fix flaky test-http2-client-upload
Wait for close event on server stream before shuting down server and
client to avoid races seen on windows CI.
Refs: https://github.com/nodejs/node/issues/20750#issuecomment-511015247
PR-URL: https://github.com/nodejs/node/pull/29889
Refs: https://github.com/nodejs/node/issues/29852
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/parallel/test-http2-client-upload.js | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/test/parallel/test-http2-client-upload.js b/test/parallel/test-http2-client-upload.js index 78c6d47cbb4..c5b052d2fec 100644 --- a/test/parallel/test-http2-client-upload.js +++ b/test/parallel/test-http2-client-upload.js @@ -21,6 +21,12 @@ fs.readFile(loc, common.mustCall((err, data) => { fileData = data; const server = http2.createServer(); + let client; + + const countdown = new Countdown(3, () => { + server.close(); + client.close(); + }); server.on('stream', common.mustCall((stream) => { let data = Buffer.alloc(0); @@ -28,17 +34,16 @@ fs.readFile(loc, common.mustCall((err, data) => { stream.on('end', common.mustCall(() => { assert.deepStrictEqual(data, fileData); })); + // Waiting on close avoids spurious ECONNRESET seen in windows CI. + // Not sure if this is actually a bug; more details at + // https://github.com/nodejs/node/issues/20750#issuecomment-511015247 + stream.on('close', () => countdown.dec()); stream.respond(); stream.end(); })); server.listen(0, common.mustCall(() => { - const client = http2.connect(`http://localhost:${server.address().port}`); - - const countdown = new Countdown(2, () => { - server.close(); - client.close(); - }); + client = http2.connect(`http://localhost:${server.address().port}`); const req = client.request({ ':method': 'POST' }); req.on('response', common.mustCall()); |