| 'use strict'; |
| |
| // Test exec() with both a timeout and a killSignal. |
| |
| const common = require('../common'); |
| const assert = require('assert'); |
| const cp = require('child_process'); |
| |
| const { |
| cleanupStaleProcess, |
| logAfterTime, |
| kExpiringChildRunTime, |
| kExpiringParentTimer, |
| } = require('../common/child_process'); |
| |
| if (process.argv[2] === 'child') { |
| logAfterTime(kExpiringChildRunTime); |
| return; |
| } |
| |
| const cmd = `"${process.execPath}" "${__filename}" child`; |
| |
| // Test with a different kill signal. |
| cp.exec(cmd, { |
| timeout: kExpiringParentTimer, |
| killSignal: 'SIGKILL' |
| }, common.mustCall((err, stdout, stderr) => { |
| console.log('[stdout]', stdout.trim()); |
| console.log('[stderr]', stderr.trim()); |
| |
| assert.strictEqual(err.killed, true); |
| assert.strictEqual(err.code, null); |
| assert.strictEqual(err.signal, 'SIGKILL'); |
| assert.strictEqual(err.cmd, cmd); |
| assert.strictEqual(stdout.trim(), ''); |
| assert.strictEqual(stderr.trim(), ''); |
| })); |
| |
| cleanupStaleProcess(__filename); |