node/test/parallel/test-cluster-worker-events.js
Rich Trott 02fe8215f0 test: load common.js to test for global leaks
common.js contains code that checks for variables leaking into the
global namespace. Load common.js in all tests that do not
intentionally leak variables.

PR-URL: https://github.com/nodejs/node/pull/3095
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
2015-10-01 20:16:35 -07:00

58 lines
954 B
JavaScript

'use strict';
require('../common');
var assert = require('assert');
var cluster = require('cluster');
var OK = 2;
if (cluster.isMaster) {
var worker = cluster.fork();
worker.on('exit', function(code) {
assert.equal(code, OK);
process.exit(0);
});
worker.send('SOME MESSAGE');
return;
}
// Messages sent to a worker will be emitted on both the process object and the
// process.worker object.
assert(cluster.isWorker);
var sawProcess;
var sawWorker;
process.on('message', function(m) {
assert(!sawProcess);
sawProcess = true;
check(m);
});
cluster.worker.on('message', function(m) {
assert(!sawWorker);
sawWorker = true;
check(m);
});
var messages = [];
function check(m) {
messages.push(m);
if (messages.length < 2) return;
assert.deepEqual(messages[0], messages[1]);
cluster.worker.once('error', function(e) {
assert.equal(e, 'HI');
process.exit(OK);
});
process.emit('error', 'HI');
}