parent
a695065305
commit
ae1fc497bb
@ -1160,6 +1160,8 @@ int main(int argc, char *argv[]) {
|
||||
// so your next reading stop should be node::Load()!
|
||||
node::Load(argc, argv);
|
||||
|
||||
node::Stdio::Flush();
|
||||
|
||||
#ifndef NDEBUG
|
||||
// Clean up.
|
||||
context.Dispose();
|
||||
|
@ -197,6 +197,19 @@ Close (const Arguments& args)
|
||||
return Undefined();
|
||||
}
|
||||
|
||||
void Stdio::Flush() {
|
||||
if (stdout_fd >= 0) {
|
||||
close(stdout_fd);
|
||||
stdout_fd = -1;
|
||||
}
|
||||
|
||||
if (stdout_coupling) {
|
||||
coupling_join(stdout_coupling);
|
||||
coupling_destroy(stdout_coupling);
|
||||
stdout_coupling = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Stdio::Initialize (v8::Handle<v8::Object> target)
|
||||
{
|
||||
|
@ -11,6 +11,7 @@ namespace node {
|
||||
class Stdio {
|
||||
public:
|
||||
static void Initialize (v8::Handle<v8::Object> target);
|
||||
static void Flush ();
|
||||
};
|
||||
|
||||
} // namespace node
|
||||
|
@ -8,5 +8,3 @@ for (var i = 0; i < n-1; i++) {
|
||||
}
|
||||
|
||||
puts(s); // \n is the nth char.
|
||||
|
||||
process.exit(0);
|
||||
|
@ -2,43 +2,27 @@ process.mixin(require("./common"));
|
||||
|
||||
var sub = path.join(fixturesDir, 'print-chars.js');
|
||||
|
||||
completedTests = 0;
|
||||
n = 100000;
|
||||
|
||||
function test (n, cb) {
|
||||
var child = process.createChildProcess(process.argv[0], [sub, n]);
|
||||
var child = process.createChildProcess(process.argv[0], [sub, n]);
|
||||
|
||||
var count = 0;
|
||||
var count = 0;
|
||||
|
||||
child.addListener("error", function (data){
|
||||
if (data) {
|
||||
puts("parent stderr: " + data);
|
||||
assert.ok(false);
|
||||
}
|
||||
});
|
||||
|
||||
child.addListener("output", function (data){
|
||||
if (data) {
|
||||
count += data.length;
|
||||
}
|
||||
});
|
||||
|
||||
child.addListener("exit", function (data) {
|
||||
assert.equal(n, count);
|
||||
puts(n + " okay");
|
||||
completedTests++;
|
||||
if (cb) cb();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
test(5000, function () {
|
||||
test(50000, function () {
|
||||
test(500000);
|
||||
});
|
||||
child.addListener("error", function (data){
|
||||
if (data) {
|
||||
puts("parent stderr: " + data);
|
||||
assert.ok(false);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
process.addListener('exit', function () {
|
||||
assert.equal(3, completedTests);
|
||||
child.addListener("output", function (data){
|
||||
if (data) {
|
||||
count += data.length;
|
||||
puts(count);
|
||||
}
|
||||
});
|
||||
|
||||
child.addListener("exit", function (data) {
|
||||
assert.equal(n, count);
|
||||
puts("okay");
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user