mirror of https://github.com/lukechilds/node.git
Browse Source
If both -i and -e flags are specified, do not ignore the -i. Instead, launch the interactive REPL and start by evaluating the passed string. Fixes: https://github.com/nodejs/node/issues/1197 PR-URL: https://github.com/nodejs/node/pull/5655 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>process-exit-stdio-flushing
Rich Trott
9 years ago
2 changed files with 35 additions and 2 deletions
@ -0,0 +1,27 @@ |
|||
'use strict'; |
|||
const common = require('../common'); |
|||
const assert = require('assert'); |
|||
const spawn = require('child_process').spawn; |
|||
|
|||
// spawn a node child process in "interactive" mode (force the repl) and eval
|
|||
const cp = spawn(process.execPath, ['-i', '-e', 'console.log("42")']); |
|||
var gotToEnd = false; |
|||
const timeoutId = setTimeout(function() { |
|||
throw new Error('timeout!'); |
|||
}, common.platformTimeout(1000)); // give node + the repl 1 second to boot up
|
|||
|
|||
cp.stdout.setEncoding('utf8'); |
|||
|
|||
var output = ''; |
|||
cp.stdout.on('data', function(b) { |
|||
output += b; |
|||
if (output === '> 42\n') { |
|||
clearTimeout(timeoutId); |
|||
gotToEnd = true; |
|||
cp.kill(); |
|||
} |
|||
}); |
|||
|
|||
process.on('exit', function() { |
|||
assert(gotToEnd); |
|||
}); |
Loading…
Reference in new issue