mirror of
https://github.com/nodejs/node.git
synced 2025-05-03 01:31:27 +00:00
child_process: remove extra newline in errors
checkExecSyncError() creates error objects for execSync() and execFileSync(). If the child process created stderr output, then it is attached to the end of the error message. However, stderr can be an empty Buffer object, which always passes the truthy check, leading to an extra newline in the error message. This commit adds a length check, which will work with both strings and Buffers. PR-URL: https://github.com/nodejs/node/pull/9343 Reviewed-By: Wyatt Preul <wpreul@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
0fb21df6e6
commit
49d1c366d8
@ -483,7 +483,7 @@ function checkExecSyncError(ret) {
|
||||
if (!err) {
|
||||
var msg = 'Command failed: ';
|
||||
msg += ret.cmd || ret.args.join(' ');
|
||||
if (ret.stderr)
|
||||
if (ret.stderr && ret.stderr.length > 0)
|
||||
msg += '\n' + ret.stderr.toString();
|
||||
err = new Error(msg);
|
||||
}
|
||||
|
@ -98,7 +98,7 @@ assert.strictEqual(ret, msg + '\n',
|
||||
const msg = `Command failed: ${process.execPath} ${args.join(' ')}`;
|
||||
|
||||
assert(err instanceof Error);
|
||||
assert.strictEqual(err.message.trim(), msg);
|
||||
assert.strictEqual(err.message, msg);
|
||||
assert.strictEqual(err.status, 1);
|
||||
return true;
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user