From b1e6f297cf27ea1188ffc10624cd96b851c0ab40 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Fri, 20 Mar 2020 20:11:15 -0700 Subject: [PATCH] test: use Promise.all() in test-cluster-net-listen-ipv6only-false Use Promise.all() instead of countdown in test-cluster-net-listen-ipv6only-false. Signed-off-by: Rich Trott PR-URL: https://github.com/nodejs/node/pull/32398 Reviewed-By: Anna Henningsen --- .../test-cluster-net-listen-ipv6only-false.js | 45 ++++++++++--------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/test/parallel/test-cluster-net-listen-ipv6only-false.js b/test/parallel/test-cluster-net-listen-ipv6only-false.js index 104a1d41aa6ac7..f48e9f1c29dc4a 100644 --- a/test/parallel/test-cluster-net-listen-ipv6only-false.js +++ b/test/parallel/test-cluster-net-listen-ipv6only-false.js @@ -7,7 +7,6 @@ if (!common.hasIPv6) const assert = require('assert'); const cluster = require('cluster'); const net = require('net'); -const Countdown = require('../common/countdown'); // This test ensures that dual-stack support still works for cluster module // when `ipv6Only` is not `true`. @@ -18,35 +17,37 @@ if (cluster.isMaster) { const workers = []; let address; - const countdown = new Countdown(WORKER_COUNT, () => { + for (let i = 0; i < WORKER_COUNT; i += 1) { + const myWorker = new Promise((resolve) => { + const worker = cluster.fork().on('exit', common.mustCall((statusCode) => { + assert.strictEqual(statusCode, 0); + })).on('listening', common.mustCall((workerAddress) => { + if (!address) { + address = workerAddress; + } else { + assert.strictEqual(address.addressType, workerAddress.addressType); + assert.strictEqual(address.host, workerAddress.host); + assert.strictEqual(address.port, workerAddress.port); + } + resolve(worker); + })); + }); + + workers.push(myWorker); + } + + Promise.all(workers).then(common.mustCall((resolvedWorkers) => { const socket = net.connect({ port: address.port, host: '0.0.0.0', }, common.mustCall(() => { socket.destroy(); - workers.forEach((worker) => { - worker.disconnect(); + resolvedWorkers.forEach((resolvedWorker) => { + resolvedWorker.disconnect(); }); })); socket.on('error', common.mustNotCall()); - }); - - for (let i = 0; i < WORKER_COUNT; i += 1) { - const worker = cluster.fork().on('exit', common.mustCall((statusCode) => { - assert.strictEqual(statusCode, 0); - })).on('listening', common.mustCall((workerAddress) => { - if (!address) { - address = workerAddress; - } else { - assert.strictEqual(address.addressType, workerAddress.addressType); - assert.strictEqual(address.host, workerAddress.host); - assert.strictEqual(address.port, workerAddress.port); - } - countdown.dec(); - })); - - workers[i] = worker; - } + })); } else { net.createServer().listen({ host,