mirror of
https://github.com/nodejs/node-v0.x-archive.git
synced 2026-04-28 03:01:10 -04:00
This requires that onExit() is not called immediately upon receiving a SIGCHLD. There could still be data in the pipez. So, instead just set a flag and invoke the pipe watchers. Sometimes one will not receive an EOF from pipes because the process was killed by a SIGTERM, or something. If SIGCHLD has been recved but we are getting EAGAIN, the pipez need to be closed too.
30 lines
521 B
JavaScript
30 lines
521 B
JavaScript
include("mjsunit.js");
|
|
|
|
var pwd_called = false;
|
|
|
|
function pwd (callback) {
|
|
var output = "";
|
|
var process = new node.Process("pwd");
|
|
process.onOutput = function (s) {
|
|
if (s) output += s;
|
|
};
|
|
process.onExit = function(c) {
|
|
assertEquals(0, c);
|
|
callback(output);
|
|
pwd_called = true;
|
|
};
|
|
}
|
|
|
|
|
|
function onLoad () {
|
|
pwd(function (result) {
|
|
print(result);
|
|
assertTrue(result.length > 1);
|
|
assertEquals("\n", result[result.length-1]);
|
|
});
|
|
}
|
|
|
|
function onExit () {
|
|
assertTrue(pwd_called);
|
|
}
|