test: fix flaky cluster-disconnect-race

On single core Windows systems, process.send() would cause an
EPIPE because of the ordering of the IPC channel disconnect and
the process.send().

The test was originally only relevant for non-Windows platforms,
so this commit merely skips the test on Windows.

Fixes: https://github.com/nodejs/node/issues/4450
PR-URL: https://github.com/nodejs/node/pull/4457
Reviewed-By: Rich Trott <rtrott@gmail.com>
This commit is contained in:
Brian White 2015-12-28 16:58:24 -05:00
parent 3809126427
commit fd551c3f29

View File

@ -7,6 +7,12 @@ const common = require('../common');
const assert = require('assert'); const assert = require('assert');
const net = require('net'); const net = require('net');
const cluster = require('cluster'); const cluster = require('cluster');
if (common.isWindows) {
console.log('1..0 # Skipped: This test does not apply to Windows.');
return;
}
cluster.schedulingPolicy = cluster.SCHED_NONE; cluster.schedulingPolicy = cluster.SCHED_NONE;
if (cluster.isMaster) { if (cluster.isMaster) {
@ -19,9 +25,9 @@ if (cluster.isMaster) {
worker2.on('online', common.mustCall(worker2.disconnect)); worker2.on('online', common.mustCall(worker2.disconnect));
})); }));
cluster.on('exit', function(worker, code) { cluster.on('exit', common.mustCall(function(worker, code) {
assert.strictEqual(code, 0, 'worker exited with error'); assert.strictEqual(code, 0, 'worker exited with error');
}); }, 2));
return; return;
} }