summaryrefslogtreecommitdiff
path: root/test/parallel/test-https-server-close-all.js
diff options
context:
space:
mode:
authorSantiago Gimeno <santiago.gimeno@gmail.com>2022-06-19 18:19:52 +0200
committerGitHub <noreply@github.com>2022-06-19 17:19:52 +0100
commitf8f2772572a14ff458ef6f781e9d0cbf7fd678d9 (patch)
tree20912b02aeb6d71e600ea72dfeba673db4d1ad64 /test/parallel/test-https-server-close-all.js
parent8db79cc31b2ceba1ad2107ea0e3afc3769179890 (diff)
downloadnode-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.js40
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');
});