From e18a9264f3cf7bad47d1887eabe86c4a74c58a6b Mon Sep 17 00:00:00 2001 From: Brian White Date: Sun, 29 May 2016 12:21:02 -0400 Subject: [PATCH] test: fix spawn on windows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Most Windows systems do not have an external `echo` program installed, so any attempts to spawn `echo` as a child process will fail with `ENOENT`. This commit forces the use of the built-in `echo` provided by `cmd.exe`. PR-URL: https://github.com/nodejs/node/pull/7049 Reviewed-By: Colin Ihrig Reviewed-By: João Reis Reviewed-By: Anna Henningsen --- test/parallel/test-child-process-flush-stdio.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-child-process-flush-stdio.js b/test/parallel/test-child-process-flush-stdio.js index dacc1226f3..c2cae2069a 100644 --- a/test/parallel/test-child-process-flush-stdio.js +++ b/test/parallel/test-child-process-flush-stdio.js @@ -3,7 +3,11 @@ const cp = require('child_process'); const common = require('../common'); const assert = require('assert'); -const p = cp.spawn('echo'); +// Windows' `echo` command is a built-in shell command and not an external +// executable like on *nix +const opts = { shell: common.isWindows }; + +const p = cp.spawn('echo', [], opts); p.on('close', common.mustCall(function(code, signal) { assert.strictEqual(code, 0); @@ -15,7 +19,7 @@ p.stdout.read(); function spawnWithReadable() { const buffer = []; - const p = cp.spawn('echo', ['123']); + const p = cp.spawn('echo', ['123'], opts); p.on('close', common.mustCall(function(code, signal) { assert.strictEqual(code, 0); assert.strictEqual(signal, null);