From 3eb6f6130ac39128ee154af8a77d5ebee969d966 Mon Sep 17 00:00:00 2001 From: Gireesh Punathil Date: Fri, 8 Feb 2019 07:52:02 -0500 Subject: [PATCH] test: capture stderr from child processes If the test fails with errors from the child commands, there is no debug info. Suppliment the stderr data so that we know what to look for. Refs: https://github.com/nodejs/node/issues/25988 PR-URL: https://github.com/nodejs/node/pull/26007 Reviewed-By: Anna Henningsen Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig --- .../test-child-process-pipe-dataflow.js | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/test/parallel/test-child-process-pipe-dataflow.js b/test/parallel/test-child-process-pipe-dataflow.js index 501fb29032b3c8..f5068b5d366468 100644 --- a/test/parallel/test-child-process-pipe-dataflow.js +++ b/test/parallel/test-child-process-pipe-dataflow.js @@ -33,19 +33,17 @@ const MB = KB * KB; grep = spawn('grep', ['x'], { stdio: [cat.stdout, 'pipe', 'pipe'] }); wc = spawn('wc', ['-c'], { stdio: [grep.stdout, 'pipe', 'pipe'] }); + [cat, grep, wc].forEach((child, index) => { + child.stderr.on('data', (d) => { + // Don't want to assert here, as we might miss error code info. + console.error(`got unexpected data from child #${index}:\n${d}`); + }); + child.on('exit', common.mustCall(function(code) { + assert.strictEqual(code, 0); + })); + }); + wc.stdout.on('data', common.mustCall(function(data) { assert.strictEqual(data.toString().trim(), MB.toString()); })); - - cat.on('exit', common.mustCall(function(code) { - assert.strictEqual(code, 0); - })); - - grep.on('exit', common.mustCall(function(code) { - assert.strictEqual(code, 0); - })); - - wc.on('exit', common.mustCall(function(code) { - assert.strictEqual(code, 0); - })); }