test: verify the shell option works properly on execFile

Useful for executing in a shell because it accepts arguments as
an array instead of a string as exec does.
Depending on the circumstances,
that can prove to be useful if the arguments are already prepared.

PR-URL: https://github.com/nodejs/node/pull/18384
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
This commit is contained in:
jvelezpo 2018-01-25 14:47:52 -05:00 committed by Anna Henningsen
parent 71b15e8c7b
commit 6f8de31cde
No known key found for this signature in database
GPG Key ID: 9C63F3A6CD2AD8F9
2 changed files with 14 additions and 0 deletions

View File

@ -7,6 +7,7 @@ const { getSystemErrorName } = require('util');
const fixtures = require('../common/fixtures');
const fixture = fixtures.path('exit.js');
const execOpts = { encoding: 'utf8', shell: true };
{
execFile(
@ -39,3 +40,10 @@ const fixture = fixtures.path('exit.js');
child.kill();
child.emit('close', code, null);
}
{
// Verify the shell option works properly
execFile(process.execPath, [fixture, 0], execOpts, common.mustCall((err) => {
assert.ifError(err);
}));
}

View File

@ -29,6 +29,7 @@ const TIMER = 200;
const SLEEP = 2000;
const start = Date.now();
const execOpts = { encoding: 'utf8', shell: true };
let err;
let caught = false;
@ -141,3 +142,8 @@ assert.strictEqual(ret, `${msg}\n`);
return true;
});
}
// Verify the shell option works properly
assert.doesNotThrow(() => {
execFileSync(process.execPath, [], execOpts);
});