@ -20,7 +20,7 @@
// USE OR OTHER DEALINGS IN THE SOFTWARE.
'use strict' ;
require ( '../common' ) ;
const common = require ( '../common' ) ;
const assert = require ( 'assert' ) ;
const cluster = require ( 'cluster' ) ;
@ -38,7 +38,7 @@ if (cluster.isWorker) {
} ;
const totalWorkers = 2 ;
let onlineWorkers = 0 ;
let settings ;
// Setup master
cluster . setupMaster ( {
@ -49,7 +49,7 @@ if (cluster.isWorker) {
cluster . once ( 'setup' , function ( ) {
checks . setupEvent = true ;
const settings = cluster . settings ;
settings = cluster . settings ;
if ( settings &&
settings . args && settings . args [ 0 ] === 'custom argument' &&
settings . silent === true &&
@ -58,25 +58,19 @@ if (cluster.isWorker) {
}
} ) ;
let correctIn = 0 ;
let correctInput = 0 ;
cluster . on ( 'online' , function lisenter ( worker ) {
onlineWorkers ++ ;
cluster . on ( 'online' , common . mustCall ( function listener ( worker ) {
worker . once ( 'message' , function ( data ) {
correctIn += ( data === 'custom argument' ? 1 : 0 ) ;
if ( correctIn === totalWorkers ) {
correctInput += ( data === 'custom argument' ? 1 : 0 ) ;
if ( correctInput === totalWorkers ) {
checks . args = true ;
}
worker . kill ( ) ;
} ) ;
// All workers are online
if ( onlineWorkers === totalWorkers ) {
checks . workers = true ;
}
} ) ;
} , totalWorkers ) ) ;
// Start all workers
cluster . fork ( ) ;
@ -84,11 +78,16 @@ if (cluster.isWorker) {
// Check all values
process . once ( 'exit' , function ( ) {
assert . ok ( checks . workers , 'Not all workers went online' ) ;
assert . ok ( checks . args , 'The arguments was noy send to the worker' ) ;
const argsMsg = 'Arguments was not send for one or more worker. ' +
` ${ correctInput } workers receive argument, ` +
` but ${ totalWorkers } were expected. ` ;
assert . ok ( checks . args , argsMsg ) ;
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 ) ;
} ) ;
}