You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
980 B

node.mixin(require("common.js"));
if (process.ARGV[2] === "-child") {
node.stdio.open();
var handler = new node.SignalHandler(node.SIGUSR1);
handler.addListener("signal", function() {
node.stdio.write("handled SIGUSR1");
setTimeout(function () {
// Allow some time for the write to go through the pipez
process.exit(0);
}, 50);
});
debug("CHILD!!!");
} else {
var child = node.createChildProcess(ARGV[0], ['--', ARGV[1], '-child']);
var output = "";
child.addListener('output', function (chunk) {
puts("Child (stdout) said: " + JSON.stringify(chunk));
if (chunk) { output += chunk };
});
child.addListener('error', function (chunk) {
if (/CHILD!!!/.exec(chunk)) {
puts("Sending SIGUSR1 to " + child.pid);
child.kill(node.SIGUSR1)
}
puts("Child (stderr) said: " + JSON.stringify(chunk));
});
process.addListener("exit", function () {
assertEquals("handled SIGUSR1", output);
});
}