We have a tacit rule that for multiline statements, the operator should be placed before the linebreak. This commit commit fixes the few violations of this rule in the code base. This allows us to enable the corresponding ESLint rule. PR-URL: https://github.com/nodejs/node/pull/10178 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Roman Reiss <me@silverwind.io> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Teddy Katz <teddy.katz@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
149 lines
3.9 KiB
JavaScript
149 lines
3.9 KiB
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
const assert = require('assert');
|
|
const path = require('path');
|
|
const childProcess = require('child_process');
|
|
|
|
// Refs: https://github.com/nodejs/node/pull/2253
|
|
if (common.isSunOS) {
|
|
common.skip('unreliable on SunOS');
|
|
return;
|
|
}
|
|
|
|
const nodeBinary = process.argv[0];
|
|
|
|
const preloadOption = function(preloads) {
|
|
var option = '';
|
|
preloads.forEach(function(preload, index) {
|
|
option += '-r ' + preload + ' ';
|
|
});
|
|
return option;
|
|
};
|
|
|
|
const fixture = function(name) {
|
|
return path.join(common.fixturesDir, name);
|
|
};
|
|
|
|
const fixtureA = fixture('printA.js');
|
|
const fixtureB = fixture('printB.js');
|
|
const fixtureC = fixture('printC.js');
|
|
const fixtureD = fixture('define-global.js');
|
|
const fixtureThrows = fixture('throws_error4.js');
|
|
|
|
// test preloading a single module works
|
|
childProcess.exec(nodeBinary + ' ' +
|
|
preloadOption([fixtureA]) + ' ' +
|
|
fixtureB,
|
|
function(err, stdout, stderr) {
|
|
if (err) throw err;
|
|
assert.strictEqual(stdout, 'A\nB\n');
|
|
});
|
|
|
|
// test preloading multiple modules works
|
|
childProcess.exec(nodeBinary + ' ' +
|
|
preloadOption([fixtureA, fixtureB]) + ' ' +
|
|
fixtureC,
|
|
function(err, stdout, stderr) {
|
|
if (err) throw err;
|
|
assert.strictEqual(stdout, 'A\nB\nC\n');
|
|
});
|
|
|
|
// test that preloading a throwing module aborts
|
|
childProcess.exec(nodeBinary + ' ' +
|
|
preloadOption([fixtureA, fixtureThrows]) + ' ' +
|
|
fixtureB,
|
|
function(err, stdout, stderr) {
|
|
if (err) {
|
|
assert.strictEqual(stdout, 'A\n');
|
|
} else {
|
|
throw new Error('Preload should have failed');
|
|
}
|
|
});
|
|
|
|
// test that preload can be used with --eval
|
|
childProcess.exec(nodeBinary + ' ' +
|
|
preloadOption([fixtureA]) +
|
|
'-e "console.log(\'hello\');"',
|
|
function(err, stdout, stderr) {
|
|
if (err) throw err;
|
|
assert.strictEqual(stdout, 'A\nhello\n');
|
|
});
|
|
|
|
// test that preload can be used with stdin
|
|
const stdinProc = childProcess.spawn(
|
|
nodeBinary,
|
|
['--require', fixtureA],
|
|
{stdio: 'pipe'}
|
|
);
|
|
stdinProc.stdin.end("console.log('hello');");
|
|
var stdinStdout = '';
|
|
stdinProc.stdout.on('data', function(d) {
|
|
stdinStdout += d;
|
|
});
|
|
stdinProc.on('close', function(code) {
|
|
assert.strictEqual(code, 0);
|
|
assert.strictEqual(stdinStdout, 'A\nhello\n');
|
|
});
|
|
|
|
// test that preload can be used with repl
|
|
const replProc = childProcess.spawn(
|
|
nodeBinary,
|
|
['-i', '--require', fixtureA],
|
|
{stdio: 'pipe'}
|
|
);
|
|
replProc.stdin.end('.exit\n');
|
|
var replStdout = '';
|
|
replProc.stdout.on('data', function(d) {
|
|
replStdout += d;
|
|
});
|
|
replProc.on('close', function(code) {
|
|
assert.strictEqual(code, 0);
|
|
const output = [
|
|
'A',
|
|
'> '
|
|
].join('\n');
|
|
assert.strictEqual(replStdout, output);
|
|
});
|
|
|
|
// test that preload placement at other points in the cmdline
|
|
// also test that duplicated preload only gets loaded once
|
|
childProcess.exec(nodeBinary + ' ' +
|
|
preloadOption([fixtureA]) +
|
|
'-e "console.log(\'hello\');" ' +
|
|
preloadOption([fixtureA, fixtureB]),
|
|
function(err, stdout, stderr) {
|
|
if (err) throw err;
|
|
assert.strictEqual(stdout, 'A\nB\nhello\n');
|
|
});
|
|
|
|
// test that preload works with -i
|
|
const interactive = childProcess.exec(nodeBinary + ' ' +
|
|
preloadOption([fixtureD]) +
|
|
'-i',
|
|
common.mustCall(function(err, stdout, stderr) {
|
|
assert.ifError(err);
|
|
assert.strictEqual(stdout, "> 'test'\n> ");
|
|
}));
|
|
|
|
interactive.stdin.write('a\n');
|
|
interactive.stdin.write('process.exit()\n');
|
|
|
|
childProcess.exec(nodeBinary + ' ' +
|
|
'--require ' + fixture('cluster-preload.js') + ' ' +
|
|
fixture('cluster-preload-test.js'),
|
|
function(err, stdout, stderr) {
|
|
if (err) throw err;
|
|
assert.ok(/worker terminated with code 43/.test(stdout));
|
|
});
|
|
|
|
// https://github.com/nodejs/node/issues/1691
|
|
process.chdir(common.fixturesDir);
|
|
childProcess.exec(nodeBinary + ' ' +
|
|
'--expose_debug_as=v8debug ' +
|
|
'--require ' + fixture('cluster-preload.js') + ' ' +
|
|
'cluster-preload-test.js',
|
|
function(err, stdout, stderr) {
|
|
if (err) throw err;
|
|
assert.ok(/worker terminated with code 43/.test(stdout));
|
|
});
|