diff --git a/test/fixtures/should_exit.js b/test/fixtures/should_exit.js index 6f45a904f2b455..b251353f1d75a7 100644 --- a/test/fixtures/should_exit.js +++ b/test/fixtures/should_exit.js @@ -4,3 +4,4 @@ process.removeListener('SIGINT', tmp); setInterval(function() { process.stdout.write('keep alive\n'); }, 1000); +process.stdout.write('start\n'); diff --git a/test/sequential/test-signal-unregister.js b/test/sequential/test-signal-unregister.js index 3190ac3dce4248..c3ab108dffbf08 100644 --- a/test/sequential/test-signal-unregister.js +++ b/test/sequential/test-signal-unregister.js @@ -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'); +}));