• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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