1 var spawn = require('child_process').spawn;
2 var test = require('tap').test;
4 test('dotSlashEmpty', testCmd('./bin.js', []));
6 test('dotSlashArgs', testCmd('./bin.js', [ 'a', 'b', 'c' ]));
8 test('nodeEmpty', testCmd('node bin.js', []));
10 test('nodeArgs', testCmd('node bin.js', [ 'x', 'y', 'z' ]));
12 test('whichNodeEmpty', function (t) {
13 var which = spawn('which', ['node']);
15 which.stdout.on('data', function (buf) {
17 testCmd(buf.toString().trim() + ' bin.js', [])
22 which.stderr.on('data', function (err) {
28 test('whichNodeArgs', function (t) {
29 var which = spawn('which', ['node']);
31 which.stdout.on('data', function (buf) {
33 testCmd(buf.toString().trim() + ' bin.js', [ 'q', 'r' ])
38 which.stderr.on('data', function (err) {
44 function testCmd (cmd, args) {
47 var to = setTimeout(function () {
48 assert.fail('Never got stdout data.')
51 var oldDir = process.cwd();
52 process.chdir(__dirname + '/_');
54 var cmds = cmd.split(' ');
56 var bin = spawn(cmds[0], cmds.slice(1).concat(args.map(String)));
57 process.chdir(oldDir);
59 bin.stderr.on('data', function (err) {
64 bin.stdout.on('data', function (buf) {
66 var _ = JSON.parse(buf.toString());
67 t.same(_.map(String), args.map(String));