0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-21 21:19:50 +01:00
nodejs/test/parallel/test-child-process-spawn-event.js
Matthew Francis Brunetti 3df5afb367 child_process: add ChildProcess 'spawn' event
The new event signals that the subprocess has spawned successfully and
no 'error' event will be emitted from failing to spawn.

Fixes: https://github.com/nodejs/node/issues/35288
PR-URL: https://github.com/nodejs/node/pull/35369
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
2020-10-28 12:32:50 +05:30

28 lines
852 B
JavaScript

'use strict';
const common = require('../common');
const spawn = require('child_process').spawn;
const assert = require('assert');
const subprocess = spawn('echo', ['ok']);
let didSpawn = false;
subprocess.on('spawn', function() {
didSpawn = true;
});
function mustCallAfterSpawn() {
return common.mustCall(function() {
assert.ok(didSpawn);
});
}
subprocess.on('error', common.mustNotCall());
subprocess.on('spawn', common.mustCall());
subprocess.stdout.on('data', mustCallAfterSpawn());
subprocess.stdout.on('end', mustCallAfterSpawn());
subprocess.stdout.on('close', mustCallAfterSpawn());
subprocess.stderr.on('data', common.mustNotCall());
subprocess.stderr.on('end', mustCallAfterSpawn());
subprocess.stderr.on('close', mustCallAfterSpawn());
subprocess.on('exit', mustCallAfterSpawn());
subprocess.on('close', mustCallAfterSpawn());