mirror of
https://github.com/nodejs/node.git
synced 2026-11-09 15:11:11 -05:00
test: fix test-debug-port-from-cmdline
This change is a backport of 2b4b600660
from io.js.
Original commit message:
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: https://github.com/nodejs/io.js/issues/2177
Refs: https://github.com/nodejs/io.js/issues/2094
PR-URL: https://github.com/nodejs/io.js/pull/2186
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
PR-URL: https://github.com/joyent/node/pull/25748
This commit is contained in:
1 parent
14db629497
commit
ceb6a8c131
1 file changed
+3
-3
@@ -24,11 +24,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');
|
||||
@@ -43,6 +43,7 @@ child.on('message', function onChildMsg(message) {
|
||||
|
||||
process.on('exit', function() {
|
||||
child.kill();
|
||||
assertOutputLines();
|
||||
});
|
||||
|
||||
var outputLines = [];
|
||||
@@ -51,7 +52,6 @@ function processStderrLine(line) {
|
||||
outputLines.push(line);
|
||||
|
||||
if (/Debugger listening/.test(line)) {
|
||||
assertOutputLines();
|
||||
process.exit();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user