|
|
|
'use strict';
|
|
|
|
// Flags: --inspect={PORT}
|
|
|
|
const common = require('../common');
|
|
|
|
common.skipIfInspectorDisabled();
|
|
|
|
const assert = require('assert');
|
|
|
|
const cluster = require('cluster');
|
|
|
|
const debuggerPort = common.PORT;
|
|
|
|
|
|
|
|
if (cluster.isMaster) {
|
|
|
|
function checkExitCode(code, signal) {
|
|
|
|
assert.strictEqual(code, 0);
|
|
|
|
assert.strictEqual(signal, null);
|
|
|
|
}
|
|
|
|
|
|
|
|
function fork(offset, execArgv) {
|
|
|
|
if (execArgv)
|
|
|
|
cluster.setupMaster({execArgv});
|
|
|
|
|
|
|
|
const check = common.mustCall(checkExitCode);
|
|
|
|
cluster.fork({portSet: debuggerPort + offset}).on('exit', check);
|
|
|
|
}
|
|
|
|
|
|
|
|
assert.strictEqual(process.debugPort, debuggerPort);
|
|
|
|
|
|
|
|
fork(1);
|
|
|
|
fork(2, ['--inspect']);
|
|
|
|
fork(3, [`--inspect=${debuggerPort}`]);
|
|
|
|
fork(4, ['--inspect', `--debug-port=${debuggerPort}`]);
|
|
|
|
fork(5, [`--inspect-port=${debuggerPort}`]);
|
|
|
|
fork(6, ['--inspect', `--inspect-port=${debuggerPort}`]);
|
|
|
|
} else {
|
|
|
|
const hasDebugArg = process.execArgv.some(function(arg) {
|
|
|
|
return /inspect/.test(arg);
|
|
|
|
});
|
|
|
|
|
|
|
|
assert.strictEqual(hasDebugArg, true);
|
|
|
|
assert.strictEqual(process.debugPort, +process.env.portSet);
|
|
|
|
process.exit();
|
|
|
|
}
|