Skip to content
Permalink
Browse files

test: slightly refactor test-child-process-execsync

* move `start` time to the point of execution (avoids counting 'throws'
  tests towards 'timeout' test case)
* scope cmd/ret values where possible
* use `filter` instead of manual if/return

PR-URL: #25227
Refs: #24921
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information...
lundibundi authored and targos committed Dec 26, 2018
1 parent 05d1a53 commit 11c9a82f0f08c13348ed07bf23415b491e06b11f
Showing with 27 additions and 23 deletions.
  1. +27 −23 test/sequential/test-child-process-execsync.js
@@ -28,10 +28,7 @@ const { execFileSync, execSync, spawnSync } = require('child_process');
const TIMER = 200;
const SLEEP = 2000;

const start = Date.now();
const execOpts = { encoding: 'utf8', shell: true };
let err;
let caught = false;

// Verify that stderr is not accessed when a bad shell is used
assert.throws(
@@ -43,9 +40,11 @@ assert.throws(
/spawnSync bad_shell ENOENT/
);

let cmd, ret;
let caught = false;
let ret, err;
const start = Date.now();
try {
cmd = `"${process.execPath}" -e "setTimeout(function(){}, ${SLEEP});"`;
const cmd = `"${process.execPath}" -e "setTimeout(function(){}, ${SLEEP});"`;
ret = execSync(cmd, { timeout: TIMER });
} catch (e) {
caught = true;
@@ -69,28 +68,32 @@ const msgBuf = Buffer.from(`${msg}\n`);

// console.log ends every line with just '\n', even on Windows.

cmd = `"${process.execPath}" -e "console.log('${msg}');"`;
const cmd = `"${process.execPath}" -e "console.log('${msg}');"`;

ret = execSync(cmd);

assert.strictEqual(ret.length, msgBuf.length);
assert.deepStrictEqual(ret, msgBuf);

ret = execSync(cmd, { encoding: 'utf8' });
{
const ret = execSync(cmd);
assert.strictEqual(ret.length, msgBuf.length);
assert.deepStrictEqual(ret, msgBuf);
}

assert.strictEqual(ret, `${msg}\n`);
{
const ret = execSync(cmd, { encoding: 'utf8' });
assert.strictEqual(ret, `${msg}\n`);
}

const args = [
'-e',
`console.log("${msg}");`
];
ret = execFileSync(process.execPath, args);

assert.deepStrictEqual(ret, msgBuf);

ret = execFileSync(process.execPath, args, { encoding: 'utf8' });
{
const ret = execFileSync(process.execPath, args);
assert.deepStrictEqual(ret, msgBuf);
}

assert.strictEqual(ret, `${msg}\n`);
{
const ret = execFileSync(process.execPath, args, { encoding: 'utf8' });
assert.strictEqual(ret, `${msg}\n`);
}

// Verify that the cwd option works.
// See https://github.com/nodejs/node-v0.x-archive/issues/7824.
@@ -133,10 +136,11 @@ assert.strictEqual(ret, `${msg}\n`);
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]);
});
spawnSyncKeys
.filter((key) => key !== 'pid')
.forEach((key) => {
assert.deepStrictEqual(err[key], spawnSyncResult[key]);
});
return true;
});
}

0 comments on commit 11c9a82

Please sign in to comment.
You can’t perform that action at this time.