diff options
author | Santiago Gimeno <santiago.gimeno@gmail.com> | 2022-06-19 18:19:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-19 17:19:52 +0100 |
commit | f8f2772572a14ff458ef6f781e9d0cbf7fd678d9 (patch) | |
tree | 20912b02aeb6d71e600ea72dfeba673db4d1ad64 /test/parallel/test-https-server-close-all.js | |
parent | 8db79cc31b2ceba1ad2107ea0e3afc3769179890 (diff) | |
download | node-new-f8f2772572a14ff458ef6f781e9d0cbf7fd678d9.tar.gz |
test: fix flaky test-https-server-close- tests
Don't initiate the second connection until the first has been
established.
Refs: https://github.com/nodejs/reliability/issues/289
PR-URL: https://github.com/nodejs/node/pull/43216
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/parallel/test-https-server-close-all.js')
-rw-r--r-- | test/parallel/test-https-server-close-all.js | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/test/parallel/test-https-server-close-all.js b/test/parallel/test-https-server-close-all.js index 408af625d1..c388260db3 100644 --- a/test/parallel/test-https-server-close-all.js +++ b/test/parallel/test-https-server-close-all.js @@ -37,32 +37,34 @@ server.listen(0, function() { // Create a first request but never finish it const client1 = connect({ port, rejectUnauthorized: false }); - client1.on('close', common.mustCall()); - - client1.on('error', () => {}); + client1.on('connect', common.mustCall(() => { + // Create a second request, let it finish but leave the connection opened using HTTP keep-alive + const client2 = connect({ port, rejectUnauthorized: false }); + let response = ''; - client1.write('GET / HTTP/1.1'); + client2.on('data', common.mustCall((chunk) => { + response += chunk.toString('utf-8'); - // Create a second request, let it finish but leave the connection opened using HTTP keep-alive - const client2 = connect({ port, rejectUnauthorized: false }); - let response = ''; + if (response.endsWith('0\r\n\r\n')) { + assert(response.startsWith('HTTP/1.1 200 OK\r\nConnection: keep-alive')); + assert.strictEqual(connections, 2); - client2.on('data', common.mustCall((chunk) => { - response += chunk.toString('utf-8'); + server.closeAllConnections(); + server.close(common.mustCall()); - if (response.endsWith('0\r\n\r\n')) { - assert(response.startsWith('HTTP/1.1 200 OK\r\nConnection: keep-alive')); - assert.strictEqual(connections, 2); + // This timer should never go off as the server.close should shut everything down + setTimeout(common.mustNotCall(), common.platformTimeout(1500)).unref(); + } + })); - server.closeAllConnections(); - server.close(common.mustCall()); + client2.on('close', common.mustCall()); - // This timer should never go off as the server.close should shut everything down - setTimeout(common.mustNotCall(), common.platformTimeout(1500)).unref(); - } + client2.write('GET / HTTP/1.1\r\n\r\n'); })); - client2.on('close', common.mustCall()); + client1.on('close', common.mustCall()); + + client1.on('error', () => {}); - client2.write('GET / HTTP/1.1\r\n\r\n'); + client1.write('GET / HTTP/1.1'); }); |