MrShi
昨天 640c489a713a54041eb63404592df3599a1777e3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var tape = require('tape');
var proc = require('child_process');
var path = require('path');
 
tape('print to stdout', function(t) {
    proc.exec('"'+process.execPath+'" '+path.join(__dirname,'fixtures','hello-world.js'), function(err, stdout) {
        t.ok(!err);
        t.same(stdout,'hello\nworld\n');
        t.end();
    });
});
 
tape('end stdout', function(t) {
    var ch = proc.exec('"'+process.execPath+'" '+path.join(__dirname,'fixtures','end.js'));
    var buf = [];
    var processOnExit = false;
    var stdoutOnEnd = false;
 
    ch.stdout.on('data', function(data) {
        buf.push(data);
    });
    ch.stdout.on('end', function() {
        t.same(Buffer.concat(buf).toString(), 'stdout');
        t.ok(!processOnExit);
        stdoutOnEnd = true;
    });
    ch.on('exit', function(code) {
        processOnExit = true;
        t.ok(stdoutOnEnd);
        t.same(code, 0);
        t.end();
    });
});