summaryrefslogtreecommitdiff
path: root/test/sequential/test-child-process-execsync.js
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2017-10-06 21:06:18 -0700
committerMichaël Zasso <targos@protonmail.com>2017-10-23 14:09:11 +0200
commit556ebab30e171c2941deb529a42ad47301972af5 (patch)
treec619a041b2a313bab5dbe422d9076b5df127d14e /test/sequential/test-child-process-execsync.js
parent801e61ad5a4ee2e5621c2578a44c9d63c99c9ff6 (diff)
downloadandroid-node-v8-556ebab30e171c2941deb529a42ad47301972af5.tar.gz
android-node-v8-556ebab30e171c2941deb529a42ad47301972af5.tar.bz2
android-node-v8-556ebab30e171c2941deb529a42ad47301972af5.zip
child_process: restore exec{File}Sync error props
In PR [1], a bunch of properties were removed from the error thrown by execSync and execFileSync. It turns out that some of those were still supposed to be there, as the documentation states that the error contains the entire result from the spawnSync call. [1] https://github.com/nodejs/node/pull/13601 PR-URL: https://github.com/nodejs/node/pull/16060 Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'test/sequential/test-child-process-execsync.js')
-rw-r--r--test/sequential/test-child-process-execsync.js17
1 files changed, 16 insertions, 1 deletions
diff --git a/test/sequential/test-child-process-execsync.js b/test/sequential/test-child-process-execsync.js
index 94810e890c..8b360f4f21 100644
--- a/test/sequential/test-child-process-execsync.js
+++ b/test/sequential/test-child-process-execsync.js
@@ -23,7 +23,7 @@
const common = require('../common');
const assert = require('assert');
-const { execFileSync, execSync } = require('child_process');
+const { execFileSync, execSync, spawnSync } = require('child_process');
const TIMER = 200;
const SLEEP = 2000;
@@ -112,6 +112,16 @@ assert.strictEqual(ret, `${msg}\n`);
// Verify the execFileSync() behavior when the child exits with a non-zero code.
{
const args = ['-e', 'process.exit(1)'];
+ const spawnSyncResult = spawnSync(process.execPath, args);
+ const spawnSyncKeys = Object.keys(spawnSyncResult).sort();
+ assert.deepStrictEqual(spawnSyncKeys, [
+ 'output',
+ 'pid',
+ 'signal',
+ 'status',
+ 'stderr',
+ 'stdout'
+ ]);
assert.throws(() => {
execFileSync(process.execPath, args);
@@ -121,6 +131,11 @@ assert.strictEqual(ret, `${msg}\n`);
assert(err instanceof Error);
assert.strictEqual(err.message, msg);
assert.strictEqual(err.status, 1);
+ assert.strictEqual(typeof err.pid, 'number');
+ spawnSyncKeys.forEach((key) => {
+ if (key === 'pid') return;
+ assert.deepStrictEqual(err[key], spawnSyncResult[key]);
+ });
return true;
});
}