test: fix timing issue in signal test
Change sequential/test-signal-unregister so it doesn't use fixed timeouts for sending the signal and expecting the child to quit. Fixes: https://github.com/iojs/io.js/issues/1223 PR-URL: https://github.com/iojs/io.js/pull/1227 Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
This commit is contained in:
parent
cf081a4712
commit
10a9c00563
1
test/fixtures/should_exit.js
vendored
1
test/fixtures/should_exit.js
vendored
@ -4,3 +4,4 @@ process.removeListener('SIGINT', tmp);
|
||||
setInterval(function() {
|
||||
process.stdout.write('keep alive\n');
|
||||
}, 1000);
|
||||
process.stdout.write('start\n');
|
||||
|
@ -1,32 +1,12 @@
|
||||
var common = require('../common');
|
||||
var assert = require('assert');
|
||||
var spawn = require('child_process').spawn;
|
||||
|
||||
var childKilled = false, done = false,
|
||||
spawn = require('child_process').spawn,
|
||||
util = require('util'),
|
||||
child;
|
||||
|
||||
var join = require('path').join;
|
||||
|
||||
child = spawn(process.argv[0], [join(common.fixturesDir, 'should_exit.js')]);
|
||||
child.on('exit', function() {
|
||||
if (!done) childKilled = true;
|
||||
});
|
||||
|
||||
setTimeout(function() {
|
||||
console.log('Sending SIGINT');
|
||||
var child = spawn(process.argv[0], [common.fixturesDir + '/should_exit.js']);
|
||||
child.stdout.once('data', function() {
|
||||
child.kill('SIGINT');
|
||||
setTimeout(function() {
|
||||
console.log('Chance has been given to die');
|
||||
done = true;
|
||||
if (!childKilled) {
|
||||
// Cleanup
|
||||
console.log('Child did not die on SIGINT, sending SIGTERM');
|
||||
child.kill('SIGTERM');
|
||||
}
|
||||
}, 200);
|
||||
}, 200);
|
||||
|
||||
process.on('exit', function() {
|
||||
assert.ok(childKilled);
|
||||
});
|
||||
child.on('exit', common.mustCall(function(exitCode, signalCode) {
|
||||
assert.equal(exitCode, null);
|
||||
assert.equal(signalCode, 'SIGINT');
|
||||
}));
|
||||
|
Loading…
x
Reference in New Issue
Block a user