test: add coverage for spawnSync() killSignal
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>
This commit is contained in:
parent
528c8449e1
commit
01db04bd30
51
test/parallel/test-child-process-spawnsync-kill-signal.js
Normal file
51
test/parallel/test-child-process-spawnsync-kill-signal.js
Normal file
@ -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…
x
Reference in New Issue
Block a user