node/test/parallel/test-child-process-fork.js
cjihrig 2dcb7f3826 child_process: add public API for IPC channel
This commit adds a public channel property to ChildProcess. The
existing _channel property is aliased to the new property, with
the intention of deprecating and removing it in the future.

Fixes: https://github.com/nodejs/node/issues/9313
PR-URL: https://github.com/nodejs/node/pull/9322
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
2016-11-01 20:37:57 -04:00

27 lines
767 B
JavaScript

'use strict';
const common = require('../common');
var assert = require('assert');
var fork = require('child_process').fork;
var args = ['foo', 'bar'];
var n = fork(common.fixturesDir + '/child-process-spawn-node.js', args);
assert.strictEqual(n.channel, n._channel);
assert.deepStrictEqual(args, ['foo', 'bar']);
n.on('message', function(m) {
console.log('PARENT got message:', m);
assert.ok(m.foo);
});
// https://github.com/joyent/node/issues/2355 - JSON.stringify(undefined)
// returns "undefined" but JSON.parse() cannot parse that...
assert.throws(function() { n.send(undefined); }, TypeError);
assert.throws(function() { n.send(); }, TypeError);
n.send({ hello: 'world' });
n.on('exit', common.mustCall(function(c) {
assert.strictEqual(c, 0);
}));