node/test/sequential/test-sigint-infinite-loop.js
Rich Trott 082cc8d6d8 test: remove unnecessary assignments
common.js needs to be loaded in all tests so that there is checking
for variable leaks and possibly other things. However, it does not
need to be assigned to a variable if nothing in common.js is referred
to elsewhere in the test.

PR-URL: https://github.com/nodejs/node/pull/4408
Reviewed-By: James M Snell <jasnell@gmail.com>
2015-12-26 18:00:02 -08:00

39 lines
988 B
JavaScript

'use strict';
// This test is to assert that we can SIGINT a script which loops forever.
// Ref(http):
// groups.google.com/group/nodejs-dev/browse_thread/thread/e20f2f8df0296d3f
require('../common');
var assert = require('assert');
var spawn = require('child_process').spawn;
console.log('start');
var c = spawn(process.execPath, ['-e', 'while(true) { console.log("hi"); }']);
var sentKill = false;
var gotChildExit = true;
c.stdout.on('data', function(s) {
// Prevent race condition:
// Wait for the first bit of output from the child process
// so that we're sure that it's in the V8 event loop and not
// just in the startup phase of execution.
if (!sentKill) {
c.kill('SIGINT');
console.log('SIGINT infinite-loop.js');
sentKill = true;
}
});
c.on('exit', function(code) {
assert.ok(code !== 0);
console.log('killed infinite-loop.js');
gotChildExit = true;
});
process.on('exit', function() {
assert.ok(sentKill);
assert.ok(gotChildExit);
});