node/test/pummel/test-child-process-spawn-loop.js

38 lines
752 B
JavaScript
Raw Normal View History

common = require("../common");
assert = common.assert
2010-03-17 21:00:17 +00:00
var spawn = require('child_process').spawn;
var SIZE = 1000 * 1024;
var N = 40;
var finished = false;
function doSpawn (i) {
var child = spawn( 'python', ['-c', 'print ' + SIZE + ' * "C"']);
var count = 0;
child.stdout.setEncoding('ascii');
child.stdout.addListener("data", function (chunk) {
count += chunk.length;
});
child.stderr.addListener("data", function (chunk) {
console.log('stderr: ' + chunk);
2010-03-17 21:00:17 +00:00
});
child.addListener("exit", function () {
assert.equal(SIZE + 1, count); // + 1 for \n
if (i < N) {
doSpawn(i+1);
} else {
finished = true;
}
});
}
doSpawn(0);
process.addListener("exit", function () {
assert.ok(finished);
});