From aeb0c5eee01db16c92d444586f7774ec381d420e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Reis?= Date: Wed, 15 Jul 2015 13:19:56 +0100 Subject: [PATCH] test: fix test-debug-port-from-cmdline This test was failing because the spawned process was terminated before anything could be done, by calling child.stdin.end. With this change, the child's stdin is no longer closed. When the stdin is not a tty, io.js waits for the whole input before starting, so the child must be run with --interactive to process the command sent by the parent. The child is killed explicitly by the parent before it exits. This test was failing silently because the asserts were not called if nothing was received from the child. This fix moves assertOutputLines to always run on exit. Fixes nodejs/io.js#2094 Fixes nodejs/io.js#2177 --- test/parallel/test-debug-port-from-cmdline.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/parallel/test-debug-port-from-cmdline.js b/test/parallel/test-debug-port-from-cmdline.js index deb7ae241a55fd..71ed71bd63af65 100644 --- a/test/parallel/test-debug-port-from-cmdline.js +++ b/test/parallel/test-debug-port-from-cmdline.js @@ -4,11 +4,11 @@ var assert = require('assert'); var spawn = require('child_process').spawn; var debugPort = common.PORT; -var args = ['--debug-port=' + debugPort]; +var args = ['--interactive', '--debug-port=' + debugPort]; var childOptions = { stdio: ['pipe', 'pipe', 'pipe', 'ipc'] }; var child = spawn(process.execPath, args, childOptions); -child.stdin.end("process.send({ msg: 'childready' });"); +child.stdin.write("process.send({ msg: 'childready' });\n"); child.stderr.on('data', function(data) { var lines = data.toString().replace(/\r/g, '').trim().split('\n'); @@ -23,6 +23,7 @@ child.on('message', function onChildMsg(message) { process.on('exit', function() { child.kill(); + assertOutputLines(); }); var outputLines = []; @@ -31,7 +32,6 @@ function processStderrLine(line) { outputLines.push(line); if (/Debugger listening/.test(line)) { - assertOutputLines(); process.exit(); } }