node/test/parallel/test-spawn-cmd-named-pipe.js
Rich Trott 676e61872f test: apply correct assert.fail() arguments
The assert.fail function signature has the message as the third argument
but, understandably, it is often assumed that it is the first argument
(or at least the first argument if no other arguments are passed).

This corrects the assert.fail() invocations in the Node.js tests.

Before:
assert.fail('message');
// result: AssertionError: 'message' undefined undefined

After:
assert.fail(null, null, 'message');
// result: AssertionError: message

PR-URL: https://github.com/nodejs/node/pull/3378
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-10-16 00:31:04 -07:00

59 lines
1.5 KiB
JavaScript

'use strict';
const common = require('../common');
const assert = require('assert');
// This test is intended for Windows only
if (!common.isWindows) {
console.log('1..0 # Skipped: this test is Windows-specific.');
return;
}
if (!process.argv[2]) {
// parent
const net = require('net');
const spawn = require('child_process').spawn;
const path = require('path');
const pipeNamePrefix = path.basename(__filename) + '.' + process.pid;
const stdinPipeName = '\\\\.\\pipe\\' + pipeNamePrefix + '.stdin';
const stdoutPipeName = '\\\\.\\pipe\\' + pipeNamePrefix + '.stdout';
const stdinPipeServer = net.createServer(function(c) {
c.on('end', common.mustCall(function() {
}));
c.end('hello');
});
stdinPipeServer.listen(stdinPipeName);
const output = [];
const stdoutPipeServer = net.createServer(function(c) {
c.on('data', function(x) {
output.push(x);
});
c.on('end', common.mustCall(function() {
assert.strictEqual(output.join(''), 'hello');
}));
});
stdoutPipeServer.listen(stdoutPipeName);
const comspec = process.env['comspec'];
if (!comspec || comspec.length === 0) {
assert.fail(null, null, 'Failed to get COMSPEC');
}
const args = ['/c', process.execPath, __filename, 'child',
'<', stdinPipeName, '>', stdoutPipeName];
const child = spawn(comspec, args);
child.on('exit', common.mustCall(function(exitCode) {
stdinPipeServer.close();
stdoutPipeServer.close();
assert.strictEqual(exitCode, 0);
}));
} else {
// child
process.stdin.pipe(process.stdout);
}