From a7b3274af4e17328e5247f5d7c3e962e2c01358a Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Fri, 30 Mar 2018 06:15:32 -0700 Subject: [PATCH] test: fix flaky test-cluster-send-handle-twice Use `common.mustCall()` to make sure connection callback runs exactly once. Use `connect` event instead of `setTimeout` to avoid test failing if timer runs before client is connected. Remove `cluster.worker.disconnect()` after `assert.fail()`. It is unreachable code that is unnecessary. PR-URL: https://github.com/nodejs/node/pull/19700 Reviewed-By: Ruben Bridgewater Reviewed-By: Luigi Pinca Reviewed-By: Trivikram Kamat Reviewed-By: James M Snell --- test/parallel/test-cluster-send-handle-twice.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/test/parallel/test-cluster-send-handle-twice.js b/test/parallel/test-cluster-send-handle-twice.js index fc0d4a03085aec..9eb87d826daa20 100644 --- a/test/parallel/test-cluster-send-handle-twice.js +++ b/test/parallel/test-cluster-send-handle-twice.js @@ -40,10 +40,10 @@ if (cluster.isMaster) { })); } } else { - const server = net.createServer(function(socket) { + const server = net.createServer(common.mustCall((socket) => { process.send('send-handle-1', socket); process.send('send-handle-2', socket); - }); + })); server.listen(0, function() { const client = net.connect({ @@ -51,10 +51,9 @@ if (cluster.isMaster) { port: server.address().port }); client.on('close', common.mustCall(() => { cluster.worker.disconnect(); })); - setTimeout(function() { client.end(); }, 50); + client.on('connect', () => { client.end(); }); }).on('error', function(e) { console.error(e); assert.fail('server.listen failed'); - cluster.worker.disconnect(); }); }