1import * as common from '../common/index.mjs'; 2import * as fixtures from '../common/fixtures.mjs'; 3import assert from 'node:assert'; 4 5common.skipIfInspectorDisabled(); 6 7 8const debuggerPort = common.getPort(); 9 10async function spawnRunner({ execArgv, expectedPort, expectedHost, expectedInitialPort, inspectPort }) { 11 const { code, signal } = await common.spawnPromisified( 12 process.execPath, 13 ['--expose-internals', '--no-warnings', ...execArgv, fixtures.path('test-runner/run_inspect.js')], { 14 env: { ...process.env, 15 expectedPort, 16 inspectPort, 17 expectedHost, 18 expectedInitialPort } 19 }); 20 assert.strictEqual(code, 0); 21 assert.strictEqual(signal, null); 22} 23 24let offset = 0; 25 26const defaultPortCase = spawnRunner({ 27 execArgv: ['--inspect'], 28 expectedPort: 9230, 29}); 30 31await spawnRunner({ 32 execArgv: ['--inspect=65535'], 33 expectedPort: 1024, 34}); 35 36let port = debuggerPort + offset++ * 5; 37 38await spawnRunner({ 39 execArgv: [`--inspect=${port}`], 40 expectedPort: port + 1, 41}); 42 43port = debuggerPort + offset++ * 5; 44 45await spawnRunner({ 46 execArgv: ['--inspect', `--inspect-port=${port}`], 47 expectedPort: port + 1, 48}); 49 50port = debuggerPort + offset++ * 5; 51 52await spawnRunner({ 53 execArgv: ['--inspect', `--debug-port=${port}`], 54 expectedPort: port + 1, 55}); 56 57port = debuggerPort + offset++ * 5; 58 59await spawnRunner({ 60 execArgv: [`--inspect=0.0.0.0:${port}`], 61 expectedPort: port + 1, expectedHost: '0.0.0.0', 62}); 63 64port = debuggerPort + offset++ * 5; 65 66await spawnRunner({ 67 execArgv: [`--inspect=127.0.0.1:${port}`], 68 expectedPort: port + 1, expectedHost: '127.0.0.1' 69}); 70 71if (common.hasIPv6) { 72 port = debuggerPort + offset++ * 5; 73 74 await spawnRunner({ 75 execArgv: [`--inspect=[::]:${port}`], 76 expectedPort: port + 1, expectedHost: '::' 77 }); 78 79 port = debuggerPort + offset++ * 5; 80 81 await spawnRunner({ 82 execArgv: [`--inspect=[::1]:${port}`], 83 expectedPort: port + 1, expectedHost: '::1' 84 }); 85} 86 87// These tests check that setting inspectPort in run 88// would take effect and override port incrementing behavior 89 90port = debuggerPort + offset++ * 5; 91 92await spawnRunner({ 93 execArgv: [`--inspect=${port}`], 94 inspectPort: port + 2, 95 expectedPort: port + 2, 96}); 97 98port = debuggerPort + offset++ * 5; 99 100await spawnRunner({ 101 execArgv: [`--inspect=${port}`], 102 inspectPort: 'addTwo', 103 expectedPort: port + 2, 104}); 105 106port = debuggerPort + offset++ * 5; 107 108await spawnRunner({ 109 execArgv: [`--inspect=${port}`], 110 inspectPort: 'string', 111}); 112 113port = debuggerPort + offset++ * 5; 114 115await spawnRunner({ 116 execArgv: [`--inspect=${port}`], 117 inspectPort: 'null', 118 expectedPort: port + 1, 119}); 120 121port = debuggerPort + offset++ * 5; 122 123await spawnRunner({ 124 execArgv: [`--inspect=${port}`], 125 inspectPort: 'bignumber', 126}); 127 128port = debuggerPort + offset++ * 5; 129 130await spawnRunner({ 131 execArgv: [`--inspect=${port}`], 132 inspectPort: 'negativenumber', 133}); 134 135port = debuggerPort + offset++ * 5; 136 137await spawnRunner({ 138 execArgv: [`--inspect=${port}`], 139 inspectPort: 'bignumberfunc' 140}); 141 142port = debuggerPort + offset++ * 5; 143 144await spawnRunner({ 145 execArgv: [`--inspect=${port}`], 146 inspectPort: 'strfunc', 147}); 148 149port = debuggerPort + offset++ * 5; 150 151await spawnRunner({ 152 execArgv: [`--inspect=${port}`], 153 inspectPort: 0, 154 expectedInitialPort: 0, 155}); 156 157await defaultPortCase; 158 159port = debuggerPort + offset++ * 5; 160await spawnRunner({ 161 execArgv: ['--inspect'], 162 inspectPort: port + 2, 163 expectedInitialPort: port + 2, 164}); 165