test: refactor test-cluster-setup-master
- use mustCall instead of counters - include totalWorkers and settings in the error messages PR-URL: https://github.com/nodejs/node/pull/16065 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com>
This commit is contained in:
parent
e30876121a
commit
e8a2438cb6
@ -20,7 +20,7 @@
|
|||||||
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
require('../common');
|
const common = require('../common');
|
||||||
const assert = require('assert');
|
const assert = require('assert');
|
||||||
const cluster = require('cluster');
|
const cluster = require('cluster');
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ if (cluster.isWorker) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const totalWorkers = 2;
|
const totalWorkers = 2;
|
||||||
let onlineWorkers = 0;
|
let settings;
|
||||||
|
|
||||||
// Setup master
|
// Setup master
|
||||||
cluster.setupMaster({
|
cluster.setupMaster({
|
||||||
@ -49,7 +49,7 @@ if (cluster.isWorker) {
|
|||||||
cluster.once('setup', function() {
|
cluster.once('setup', function() {
|
||||||
checks.setupEvent = true;
|
checks.setupEvent = true;
|
||||||
|
|
||||||
const settings = cluster.settings;
|
settings = cluster.settings;
|
||||||
if (settings &&
|
if (settings &&
|
||||||
settings.args && settings.args[0] === 'custom argument' &&
|
settings.args && settings.args[0] === 'custom argument' &&
|
||||||
settings.silent === true &&
|
settings.silent === true &&
|
||||||
@ -58,25 +58,19 @@ if (cluster.isWorker) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
let correctIn = 0;
|
let correctInput = 0;
|
||||||
|
|
||||||
cluster.on('online', function lisenter(worker) {
|
cluster.on('online', common.mustCall(function listener(worker) {
|
||||||
|
|
||||||
onlineWorkers++;
|
|
||||||
|
|
||||||
worker.once('message', function(data) {
|
worker.once('message', function(data) {
|
||||||
correctIn += (data === 'custom argument' ? 1 : 0);
|
correctInput += (data === 'custom argument' ? 1 : 0);
|
||||||
if (correctIn === totalWorkers) {
|
if (correctInput === totalWorkers) {
|
||||||
checks.args = true;
|
checks.args = true;
|
||||||
}
|
}
|
||||||
worker.kill();
|
worker.kill();
|
||||||
});
|
});
|
||||||
|
|
||||||
// All workers are online
|
}, totalWorkers));
|
||||||
if (onlineWorkers === totalWorkers) {
|
|
||||||
checks.workers = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Start all workers
|
// Start all workers
|
||||||
cluster.fork();
|
cluster.fork();
|
||||||
@ -84,11 +78,16 @@ if (cluster.isWorker) {
|
|||||||
|
|
||||||
// Check all values
|
// Check all values
|
||||||
process.once('exit', function() {
|
process.once('exit', function() {
|
||||||
assert.ok(checks.workers, 'Not all workers went online');
|
const argsMsg = 'Arguments was not send for one or more worker. ' +
|
||||||
assert.ok(checks.args, 'The arguments was noy send to the worker');
|
`${correctInput} workers receive argument, ` +
|
||||||
|
`but ${totalWorkers} were expected.`;
|
||||||
|
assert.ok(checks.args, argsMsg);
|
||||||
|
|
||||||
assert.ok(checks.setupEvent, 'The setup event was never emitted');
|
assert.ok(checks.setupEvent, 'The setup event was never emitted');
|
||||||
const m = 'The settingsObject do not have correct properties';
|
|
||||||
assert.ok(checks.settingsObject, m);
|
const settingObjectMsg = 'The settingsObject do not have correct ' +
|
||||||
|
`properties : ${JSON.stringify(settings)}`;
|
||||||
|
assert.ok(checks.settingsObject, settingObjectMsg);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user