1'use strict'; 2 3// Test exec() with both a timeout and a killSignal. 4 5const common = require('../common'); 6const assert = require('assert'); 7const cp = require('child_process'); 8 9const { 10 cleanupStaleProcess, 11 logAfterTime, 12 kExpiringChildRunTime, 13 kExpiringParentTimer, 14} = require('../common/child_process'); 15 16if (process.argv[2] === 'child') { 17 logAfterTime(kExpiringChildRunTime); 18 return; 19} 20 21const cmd = `"${process.execPath}" "${__filename}" child`; 22 23// Test with a different kill signal. 24cp.exec(cmd, { 25 timeout: kExpiringParentTimer, 26 killSignal: 'SIGKILL' 27}, common.mustCall((err, stdout, stderr) => { 28 console.log('[stdout]', stdout.trim()); 29 console.log('[stderr]', stderr.trim()); 30 31 assert.strictEqual(err.killed, true); 32 assert.strictEqual(err.code, null); 33 assert.strictEqual(err.signal, 'SIGKILL'); 34 assert.strictEqual(err.cmd, cmd); 35 assert.strictEqual(stdout.trim(), ''); 36 assert.strictEqual(stderr.trim(), ''); 37})); 38 39cleanupStaleProcess(__filename); 40