node/test/parallel/test-preload.js
Michaël Zasso 2eda3c7c75
lib,test: use consistent operator linebreak style
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>
2017-01-31 20:04:31 -05:00

93 lines
2.6 KiB
JavaScript

'use strict';
const common = require('../common');
const assert = require('assert');
const path = require('path');
const child_process = require('child_process');
var nodeBinary = process.argv[0];
var preloadOption = function(preloads) {
var option = '';
preloads.forEach(function(preload, index) {
option += '-r ' + preload + ' ';
});
return option;
};
var fixture = function(name) {
return path.join(common.fixturesDir, name);
};
var fixtureA = fixture('printA.js');
var fixtureB = fixture('printB.js');
var fixtureC = fixture('printC.js');
var fixtureThrows = fixture('throws_error4.js');
// test preloading a single module works
child_process.exec(nodeBinary + ' ' +
preloadOption([fixtureA]) + ' ' +
fixtureB,
function(err, stdout, stderr) {
if (err) throw err;
assert.strictEqual(stdout, 'A\nB\n');
});
// test preloading multiple modules works
child_process.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
child_process.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
child_process.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 placement at other points in the cmdline
// also test that duplicated preload only gets loaded once
child_process.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');
});
child_process.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);
child_process.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));
});