From a1686e00ab726f70d83241fbea53d577b94ee3a7 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Fri, 20 Mar 2020 06:55:07 -0700 Subject: [PATCH 1/2] test: replace Map with Array 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/parallel/test-cluster-net-listen-ipv6only-false.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-cluster-net-listen-ipv6only-false.js b/test/parallel/test-cluster-net-listen-ipv6only-false.js index 4d495d8faf6ddc..104a1d41aa6ac7 100644 --- a/test/parallel/test-cluster-net-listen-ipv6only-false.js +++ b/test/parallel/test-cluster-net-listen-ipv6only-false.js @@ -15,7 +15,7 @@ const host = '::'; const WORKER_COUNT = 3; if (cluster.isMaster) { - const workers = new Map(); + const workers = []; let address; const countdown = new Countdown(WORKER_COUNT, () => { @@ -45,7 +45,7 @@ if (cluster.isMaster) { countdown.dec(); })); - workers.set(i, worker); + workers[i] = worker; } } else { net.createServer().listen({ From 2565442ac0215cbea398d7f0dc1faa49e9632a93 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Fri, 20 Mar 2020 20:11:15 -0700 Subject: [PATCH 2/2] 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,