child_process: fix test implementation for options.detached

This commit is contained in:
Charlie McConnell 2012-05-31 21:23:05 -07:00 коммит произвёл isaacs
Родитель 25e8ea17e1
Коммит 2eb181d28c
2 изменённых файлов: 26 добавлений и 6 удалений

13
test/fixtures/parent-process-nonpersistent.js поставляемый Normal file
Просмотреть файл

@ -0,0 +1,13 @@
var spawn = require('child_process').spawn,
path = require('path'),
childPath = path.join(__dirname, 'child-process-persistent.js');
var child = spawn(process.execPath, [ childPath ], {
detached: true,
stdio: 'ignore'
});
console.log(child.pid);
child.unref();

Просмотреть файл

@ -24,15 +24,22 @@ var assert = require('assert');
var path = require('path');
var spawn = require('child_process').spawn;
var childPath = path.join(__dirname, '..', 'fixtures', 'child-process-persistent.js');
var childPath = path.join(__dirname, '..', 'fixtures', 'parent-process-nonpersistent.js');
var persistentPid = -1;
var child = spawn(process.execPath, [ childPath ], {
detached: true,
stdio: 'ignore'
var child = spawn(process.execPath, [ childPath ]);
child.stdout.on('data', function (data) {
persistentPid = parseInt(data, 10);
});
process.on('exit', function () {
process.kill(child.pid);
assert.throws(process.kill(child.pid), Error);
assert(persistentPid !== -1);
assert.throws(function () {
process.kill(child.pid);
});
assert.doesNotThrow(function () {
process.kill(persistentPid);
});
});