Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authordr-js <dr@dr.run>2021-01-25 06:44:05 +0300
committerMichaƫl Zasso <targos@protonmail.com>2021-02-28 16:40:01 +0300
commitc554aa149c857751167b6e1c3c5cc46ba67ae56f (patch)
tree8f2b8950db3105c1899137effcad57d75e03ba6b /test
parentf20ce47dbb142adfc736d592418866527be5b1cb (diff)
test,child_process: add check for `subProcess.pid`
Note: this only add checks for async spawn, as the sync spawn do not return a `subProcess`. PR-URL: https://github.com/nodejs/node/pull/37014 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Diffstat (limited to 'test')
-rw-r--r--test/parallel/test-child-process-cwd.js17
-rw-r--r--test/parallel/test-child-process-exec-error.js14
-rw-r--r--test/parallel/test-child-process-spawn-error.js3
3 files changed, 22 insertions, 12 deletions
diff --git a/test/parallel/test-child-process-cwd.js b/test/parallel/test-child-process-cwd.js
index fb782234539..232f1d0f3d5 100644
--- a/test/parallel/test-child-process-cwd.js
+++ b/test/parallel/test-child-process-cwd.js
@@ -28,11 +28,14 @@ const assert = require('assert');
const { spawn } = require('child_process');
// Spawns 'pwd' with given options, then test
+// - whether the child pid is undefined or number,
// - whether the exit code equals expectCode,
// - optionally whether the trimmed stdout result matches expectData
-function testCwd(options, expectCode = 0, expectData) {
+function testCwd(options, expectPidType, expectCode = 0, expectData) {
const child = spawn(...common.pwdCommand, options);
+ assert.strictEqual(typeof child.pid, expectPidType);
+
child.stdout.setEncoding('utf8');
// No need to assert callback since `data` is asserted.
@@ -57,18 +60,18 @@ function testCwd(options, expectCode = 0, expectData) {
// Assume does-not-exist doesn't exist, expect exitCode=-1 and errno=ENOENT
{
- testCwd({ cwd: 'does-not-exist' }, -1)
+ testCwd({ cwd: 'does-not-exist' }, 'undefined', -1)
.on('error', common.mustCall(function(e) {
assert.strictEqual(e.code, 'ENOENT');
}));
}
// Assume these exist, and 'pwd' gives us the right directory back
-testCwd({ cwd: tmpdir.path }, 0, tmpdir.path);
+testCwd({ cwd: tmpdir.path }, 'number', 0, tmpdir.path);
const shouldExistDir = common.isWindows ? process.env.windir : '/dev';
-testCwd({ cwd: shouldExistDir }, 0, shouldExistDir);
+testCwd({ cwd: shouldExistDir }, 'number', 0, shouldExistDir);
// Spawn() shouldn't try to chdir() to invalid arg, so this should just work
-testCwd({ cwd: '' });
-testCwd({ cwd: undefined });
-testCwd({ cwd: null });
+testCwd({ cwd: '' }, 'number');
+testCwd({ cwd: undefined }, 'number');
+testCwd({ cwd: null }, 'number');
diff --git a/test/parallel/test-child-process-exec-error.js b/test/parallel/test-child-process-exec-error.js
index eaddeb6614e..cd45f3071c2 100644
--- a/test/parallel/test-child-process-exec-error.js
+++ b/test/parallel/test-child-process-exec-error.js
@@ -24,17 +24,21 @@ const common = require('../common');
const assert = require('assert');
const child_process = require('child_process');
-function test(fn, code) {
- fn('does-not-exist', common.mustCall(function(err) {
+function test(fn, code, expectPidType = 'number') {
+ const child = fn('does-not-exist', common.mustCall(function(err) {
assert.strictEqual(err.code, code);
assert(err.cmd.includes('does-not-exist'));
}));
+
+ assert.strictEqual(typeof child.pid, expectPidType);
}
+// With `shell: true`, expect pid (of the shell)
if (common.isWindows) {
- test(child_process.exec, 1); // Exit code of cmd.exe
+ test(child_process.exec, 1, 'number'); // Exit code of cmd.exe
} else {
- test(child_process.exec, 127); // Exit code of /bin/sh
+ test(child_process.exec, 127, 'number'); // Exit code of /bin/sh
}
-test(child_process.execFile, 'ENOENT');
+// With `shell: false`, expect no pid
+test(child_process.execFile, 'ENOENT', 'undefined');
diff --git a/test/parallel/test-child-process-spawn-error.js b/test/parallel/test-child-process-spawn-error.js
index a3464a505d4..ed1c8fac9f9 100644
--- a/test/parallel/test-child-process-spawn-error.js
+++ b/test/parallel/test-child-process-spawn-error.js
@@ -41,6 +41,9 @@ assert.strictEqual(enoentChild.stdio[0], enoentChild.stdin);
assert.strictEqual(enoentChild.stdio[1], enoentChild.stdout);
assert.strictEqual(enoentChild.stdio[2], enoentChild.stderr);
+// Verify pid is not assigned.
+assert.strictEqual(enoentChild.pid, undefined);
+
enoentChild.on('spawn', common.mustNotCall());
enoentChild.on('error', common.mustCall(function(err) {