diff --git a/test/sequential/test-cluster-inspect-brk.js b/test/sequential/test-cluster-inspect-brk.js new file mode 100644 index 00000000000000..0fb0b9eaab5b68 --- /dev/null +++ b/test/sequential/test-cluster-inspect-brk.js @@ -0,0 +1,36 @@ +'use strict'; +const common = require('../common'); + +// A test to ensure that cluster properly interoperates with the +// --inspect-brk option. + +const assert = require('assert'); +const cluster = require('cluster'); +const debuggerPort = common.PORT; + +if (cluster.isMaster) { + function test(execArgv) { + + cluster.setupMaster({ + execArgv: execArgv, + stdio: ['pipe', 'pipe', 'pipe', 'ipc', 'pipe'] + }); + + const worker = cluster.fork(); + + // Debugger listening on port [port]. + worker.process.stderr.once('data', common.mustCall(function() { + worker.process.kill('SIGTERM'); + })); + + worker.process.on('exit', common.mustCall(function(code, signal) { + assert.strictEqual(signal, 'SIGTERM'); + })); + } + + test(['--inspect-brk']); + test([`--inspect-brk=${debuggerPort}`]); +} else { + // Cluster worker is at a breakpoint, should not reach here. + assert.fail('Test failed: cluster worker should be at a breakpoint.'); +}