import * as common from '../common/index.mjs'; import * as fixtures from '../common/fixtures.mjs'; import assert from 'node:assert'; common.skipIfInspectorDisabled(); const debuggerPort = common.getPort(); async function spawnRunner({ execArgv, expectedPort, expectedHost, expectedInitialPort, inspectPort }) { const { code, signal } = await common.spawnPromisified( process.execPath, ['--expose-internals', '--no-warnings', ...execArgv, fixtures.path('test-runner/run_inspect.js')], { env: { ...process.env, expectedPort, inspectPort, expectedHost, expectedInitialPort } }); assert.strictEqual(code, 0); assert.strictEqual(signal, null); } let offset = 0; const defaultPortCase = spawnRunner({ execArgv: ['--inspect'], expectedPort: 9230, }); await spawnRunner({ execArgv: ['--inspect=65535'], expectedPort: 1024, }); let port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: [`--inspect=${port}`], expectedPort: port + 1, }); port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: ['--inspect', `--inspect-port=${port}`], expectedPort: port + 1, }); port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: ['--inspect', `--debug-port=${port}`], expectedPort: port + 1, }); port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: [`--inspect=0.0.0.0:${port}`], expectedPort: port + 1, expectedHost: '0.0.0.0', }); port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: [`--inspect=127.0.0.1:${port}`], expectedPort: port + 1, expectedHost: '127.0.0.1' }); if (common.hasIPv6) { port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: [`--inspect=[::]:${port}`], expectedPort: port + 1, expectedHost: '::' }); port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: [`--inspect=[::1]:${port}`], expectedPort: port + 1, expectedHost: '::1' }); } // These tests check that setting inspectPort in run // would take effect and override port incrementing behavior port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: [`--inspect=${port}`], inspectPort: port + 2, expectedPort: port + 2, }); port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: [`--inspect=${port}`], inspectPort: 'addTwo', expectedPort: port + 2, }); port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: [`--inspect=${port}`], inspectPort: 'string', }); port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: [`--inspect=${port}`], inspectPort: 'null', expectedPort: port + 1, }); port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: [`--inspect=${port}`], inspectPort: 'bignumber', }); port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: [`--inspect=${port}`], inspectPort: 'negativenumber', }); port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: [`--inspect=${port}`], inspectPort: 'bignumberfunc' }); port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: [`--inspect=${port}`], inspectPort: 'strfunc', }); port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: [`--inspect=${port}`], inspectPort: 0, expectedInitialPort: 0, }); await defaultPortCase; port = debuggerPort + offset++ * 5; await spawnRunner({ execArgv: ['--inspect'], inspectPort: port + 2, expectedInitialPort: port + 2, });