node/test/parallel/test-child-process-spawnsync.js
isaacs 3e1b1dd4a9 Remove excessive copyright/license boilerplate
The copyright and license notice is already in the LICENSE file.  There
is no justifiable reason to also require that it be included in every
file, since the individual files are not individually distributed except
as part of the entire package.
2015-01-12 15:30:28 -08:00

43 lines
1.2 KiB
JavaScript

var common = require('../common');
var assert = require('assert');
var spawnSync = require('child_process').spawnSync;
var TIMER = 100;
var SLEEP = 1000;
var timeout = 0;
setTimeout(function() {
timeout = process.hrtime(start);
assert.ok(stop, 'timer should not fire before process exits');
assert.strictEqual(timeout[0], 1, 'timer should take as long as sleep');
}, TIMER);
console.log('sleep started');
var start = process.hrtime();
var ret = spawnSync('sleep', ['1']);
var stop = process.hrtime(start);
assert.strictEqual(ret.status, 0, 'exit status should be zero');
console.log('sleep exited', stop);
assert.strictEqual(stop[0], 1, 'sleep should not take longer or less than 1 second');
// Error test when command does not exist
var ret_err = spawnSync('command_does_not_exist');
assert.strictEqual(ret_err.error.code, 'ENOENT');
// Verify that the cwd option works - GH #7824
(function() {
var response;
var cwd;
if (process.platform === 'win32') {
cwd = 'c:\\';
response = spawnSync('cmd.exe', ['/c', 'cd'], {cwd: cwd});
} else {
cwd = '/';
response = spawnSync('pwd', [], {cwd: cwd});
}
assert.strictEqual(response.stdout.toString().trim(), cwd);
})();