mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.5 KiB
69 lines
1.5 KiB
13 years ago
|
var common = require('../common');
|
||
|
var assert = require('assert');
|
||
|
var cluster = require('cluster');
|
||
|
|
||
|
if (cluster.isWorker) {
|
||
|
|
||
|
// Just keep the worker alive
|
||
|
process.send(process.argv[2]);
|
||
|
|
||
|
} else if (cluster.isMaster) {
|
||
|
|
||
|
var checks = {
|
||
|
args: false,
|
||
|
setupEvent: false,
|
||
|
settingsObject: false
|
||
|
};
|
||
|
|
||
|
var totalWorkers = 2;
|
||
|
|
||
11 years ago
|
// Setup master
|
||
|
cluster.setupMaster({
|
||
|
args: ['custom argument'],
|
||
|
silent: true
|
||
|
});
|
||
|
|
||
13 years ago
|
cluster.once('setup', function() {
|
||
|
checks.setupEvent = true;
|
||
|
|
||
|
var settings = cluster.settings;
|
||
|
if (settings &&
|
||
|
settings.args && settings.args[0] === 'custom argument' &&
|
||
|
settings.silent === true &&
|
||
|
settings.exec === process.argv[1]) {
|
||
|
checks.settingsObject = true;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
var correctIn = 0;
|
||
|
|
||
|
cluster.on('online', function lisenter(worker) {
|
||
|
|
||
|
worker.once('message', function(data) {
|
||
|
correctIn += (data === 'custom argument' ? 1 : 0);
|
||
|
if (correctIn === totalWorkers) {
|
||
|
checks.args = true;
|
||
|
}
|
||
12 years ago
|
worker.kill();
|
||
13 years ago
|
});
|
||
|
|
||
|
// All workers are online
|
||
|
if (cluster.onlineWorkers === totalWorkers) {
|
||
|
checks.workers = true;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// Start all workers
|
||
|
cluster.fork();
|
||
|
cluster.fork();
|
||
|
|
||
|
// Check all values
|
||
|
process.once('exit', function() {
|
||
|
assert.ok(checks.args, 'The arguments was noy send to the worker');
|
||
|
assert.ok(checks.setupEvent, 'The setup event was never emitted');
|
||
13 years ago
|
var m = 'The settingsObject do not have correct properties';
|
||
|
assert.ok(checks.settingsObject, m);
|
||
13 years ago
|
});
|
||
|
|
||
|
}
|