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,