mirror of https://github.com/lukechilds/node.git
Browse Source
This commit adds a test for the killSignal option to spawnSync(), and the other sync child process functions by extension. PR-URL: https://github.com/nodejs/node/pull/8960 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>v7.x
cjihrig
8 years ago
committed by
James M Snell
1 changed files with 51 additions and 0 deletions
@ -0,0 +1,51 @@ |
|||
'use strict'; |
|||
const common = require('../common'); |
|||
const assert = require('assert'); |
|||
const cp = require('child_process'); |
|||
|
|||
if (process.argv[2] === 'child') { |
|||
setInterval(() => {}, 1000); |
|||
} else { |
|||
const exitCode = common.isWindows ? 1 : 0; |
|||
const { SIGKILL } = process.binding('constants').os.signals; |
|||
|
|||
function spawn(killSignal) { |
|||
const child = cp.spawnSync(process.execPath, |
|||
[__filename, 'child'], |
|||
{killSignal, timeout: 100}); |
|||
|
|||
assert.strictEqual(child.status, exitCode); |
|||
assert.strictEqual(child.error.code, 'ETIMEDOUT'); |
|||
return child; |
|||
} |
|||
|
|||
// Verify that an error is thrown for unknown signals.
|
|||
assert.throws(() => { |
|||
spawn('SIG_NOT_A_REAL_SIGNAL'); |
|||
}, /Error: Unknown signal: SIG_NOT_A_REAL_SIGNAL/); |
|||
|
|||
// Verify that the default kill signal is SIGTERM.
|
|||
{ |
|||
const child = spawn(); |
|||
|
|||
assert.strictEqual(child.signal, 'SIGTERM'); |
|||
assert.strictEqual(child.options.killSignal, undefined); |
|||
} |
|||
|
|||
// Verify that a string signal name is handled properly.
|
|||
{ |
|||
const child = spawn('SIGKILL'); |
|||
|
|||
assert.strictEqual(child.signal, 'SIGKILL'); |
|||
assert.strictEqual(child.options.killSignal, SIGKILL); |
|||
} |
|||
|
|||
// Verify that a numeric signal is handled properly.
|
|||
{ |
|||
const child = spawn(SIGKILL); |
|||
|
|||
assert.strictEqual(typeof SIGKILL, 'number'); |
|||
assert.strictEqual(child.signal, 'SIGKILL'); |
|||
assert.strictEqual(child.options.killSignal, SIGKILL); |
|||
} |
|||
} |
Loading…
Reference in new issue