From bfbb355d7d85274f7f86dabff2f00183286b99bc Mon Sep 17 00:00:00 2001 From: inoway46 Date: Sun, 8 Mar 2026 01:27:22 +0900 Subject: [PATCH] test: reduce waitForInitialBreak() flakiness in debugger tests --- test/parallel/test-debugger-auto-resume.mjs | 2 ++ test/parallel/test-debugger-backtrace.js | 1 + test/parallel/test-debugger-break.js | 1 + test/parallel/test-debugger-breakpoint-exists.js | 1 + test/parallel/test-debugger-clear-breakpoints.js | 3 ++- test/parallel/test-debugger-exceptions.js | 2 +- test/parallel/test-debugger-exec-scope.mjs | 1 + test/parallel/test-debugger-exec.js | 1 + test/parallel/test-debugger-extract-function-name.mjs | 1 + test/parallel/test-debugger-heap-profiler.js | 1 + test/parallel/test-debugger-help.mjs | 1 + test/parallel/test-debugger-list.js | 1 + test/parallel/test-debugger-low-level.js | 1 + test/parallel/test-debugger-object-type-remote-object.js | 1 + test/parallel/test-debugger-preserve-breaks.js | 3 +++ test/parallel/test-debugger-profile-command.js | 1 + test/parallel/test-debugger-profile.js | 1 + test/parallel/test-debugger-random-port-with-inspect-port.js | 2 +- test/parallel/test-debugger-random-port.js | 3 ++- test/parallel/test-debugger-restart-message.js | 1 + test/parallel/test-debugger-run-after-quit-restart.js | 3 ++- test/parallel/test-debugger-sb-before-load.js | 1 + test/parallel/test-debugger-scripts.js | 1 + test/parallel/test-debugger-set-context-line-number.mjs | 1 + test/parallel/test-debugger-use-strict.js | 3 ++- test/parallel/test-debugger-watch-validation.js | 3 ++- test/parallel/test-debugger-watchers.mjs | 1 + test/sequential/test-debugger-custom-port.js | 2 +- test/sequential/test-debugger-launch.mjs | 1 + 29 files changed, 37 insertions(+), 8 deletions(-) diff --git a/test/parallel/test-debugger-auto-resume.mjs b/test/parallel/test-debugger-auto-resume.mjs index f8dbf3be583237..321dddb513726b 100644 --- a/test/parallel/test-debugger-auto-resume.mjs +++ b/test/parallel/test-debugger-auto-resume.mjs @@ -23,7 +23,9 @@ addLibraryPath(process.env); const cli = startCLI([script], [], { env }); + await cli.waitForPrompt(); await cli.waitForInitialBreak(); + await cli.waitForPrompt(); assert.deepStrictEqual(cli.breakInfo, { filename: script, line: 10, diff --git a/test/parallel/test-debugger-backtrace.js b/test/parallel/test-debugger-backtrace.js index c189cb3f5b22e6..71d960b5186b72 100644 --- a/test/parallel/test-debugger-backtrace.js +++ b/test/parallel/test-debugger-backtrace.js @@ -17,6 +17,7 @@ const path = require('path'); async function runTest() { try { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); await cli.stepCommand('c'); diff --git a/test/parallel/test-debugger-break.js b/test/parallel/test-debugger-break.js index 4da400e4475821..a4a3e5e73d3223 100644 --- a/test/parallel/test-debugger-break.js +++ b/test/parallel/test-debugger-break.js @@ -14,6 +14,7 @@ const script = path.relative(process.cwd(), scriptFullPath); const cli = startCLI([script]); (async () => { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); assert.deepStrictEqual( diff --git a/test/parallel/test-debugger-breakpoint-exists.js b/test/parallel/test-debugger-breakpoint-exists.js index e2efa8182e4ade..56a816df6bf3ae 100644 --- a/test/parallel/test-debugger-breakpoint-exists.js +++ b/test/parallel/test-debugger-breakpoint-exists.js @@ -13,6 +13,7 @@ const cli = startCLI([script]); (async () => { try { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); await cli.command('setBreakpoint(1)'); diff --git a/test/parallel/test-debugger-clear-breakpoints.js b/test/parallel/test-debugger-clear-breakpoints.js index 91349e105a1160..06f2199a1f15b1 100644 --- a/test/parallel/test-debugger-clear-breakpoints.js +++ b/test/parallel/test-debugger-clear-breakpoints.js @@ -20,7 +20,8 @@ const path = require('path'); throw error; } - return cli.waitForInitialBreak() + return cli.waitForPrompt() + .then(() => cli.waitForInitialBreak()) .then(() => cli.waitForPrompt()) .then(() => cli.command('sb("break.js", 3)')) .then(() => cli.command('sb("break.js", 9)')) diff --git a/test/parallel/test-debugger-exceptions.js b/test/parallel/test-debugger-exceptions.js index 3f75161a6b6e3d..52fc9d48784ce1 100644 --- a/test/parallel/test-debugger-exceptions.js +++ b/test/parallel/test-debugger-exceptions.js @@ -17,8 +17,8 @@ const path = require('path'); (async () => { try { - await cli.waitForInitialBreak(); await cli.waitForPrompt(); + await cli.waitForInitialBreak(); await cli.waitForPrompt(); assert.deepStrictEqual(cli.breakInfo, { filename: script, line: 1 }); diff --git a/test/parallel/test-debugger-exec-scope.mjs b/test/parallel/test-debugger-exec-scope.mjs index 661061f11e035b..6846e495d67665 100644 --- a/test/parallel/test-debugger-exec-scope.mjs +++ b/test/parallel/test-debugger-exec-scope.mjs @@ -10,6 +10,7 @@ import assert from 'assert'; const cli = startCLI([fixtures.path('debugger/backtrace.js')]); try { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); await cli.stepCommand('c'); diff --git a/test/parallel/test-debugger-exec.js b/test/parallel/test-debugger-exec.js index 2b6c50ab61ff2b..e5bc380b65d684 100644 --- a/test/parallel/test-debugger-exec.js +++ b/test/parallel/test-debugger-exec.js @@ -12,6 +12,7 @@ const cli = startCLI([fixtures.path('debugger/alive.js')]); async function waitInitialBreak() { try { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); await cli.command('exec [typeof heartbeat, typeof process.exit]'); diff --git a/test/parallel/test-debugger-extract-function-name.mjs b/test/parallel/test-debugger-extract-function-name.mjs index a7de32ad4e2cf5..53cc6b47ed74ec 100644 --- a/test/parallel/test-debugger-extract-function-name.mjs +++ b/test/parallel/test-debugger-extract-function-name.mjs @@ -10,6 +10,7 @@ import assert from 'assert'; const cli = startCLI([fixtures.path('debugger', 'three-lines.js')]); try { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); await cli.command('exec a = function func() {}; a;'); diff --git a/test/parallel/test-debugger-heap-profiler.js b/test/parallel/test-debugger-heap-profiler.js index 96c3ed0e1a556e..25cd8abad1291e 100644 --- a/test/parallel/test-debugger-heap-profiler.js +++ b/test/parallel/test-debugger-heap-profiler.js @@ -20,6 +20,7 @@ const filename = tmpdir.resolve('node.heapsnapshot'); async function waitInitialBreak() { try { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); await cli.command('takeHeapSnapshot()'); diff --git a/test/parallel/test-debugger-help.mjs b/test/parallel/test-debugger-help.mjs index 1fb710d6280160..08ff874d926c23 100644 --- a/test/parallel/test-debugger-help.mjs +++ b/test/parallel/test-debugger-help.mjs @@ -10,6 +10,7 @@ import assert from 'assert'; const cli = startCLI([fixtures.path('debugger', 'empty.js')]); try { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); await cli.command('help'); diff --git a/test/parallel/test-debugger-list.js b/test/parallel/test-debugger-list.js index 594874e140b306..578947dedc95e2 100644 --- a/test/parallel/test-debugger-list.js +++ b/test/parallel/test-debugger-list.js @@ -11,6 +11,7 @@ const assert = require('assert'); const cli = startCLI([fixtures.path('debugger/three-lines.js')]); (async () => { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); await cli.command('list(0)'); diff --git a/test/parallel/test-debugger-low-level.js b/test/parallel/test-debugger-low-level.js index 93c8e1b625591d..b75efcdcec477e 100644 --- a/test/parallel/test-debugger-low-level.js +++ b/test/parallel/test-debugger-low-level.js @@ -14,6 +14,7 @@ const assert = require('assert'); async function testDebuggerLowLevel() { try { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); await cli.command('scripts'); diff --git a/test/parallel/test-debugger-object-type-remote-object.js b/test/parallel/test-debugger-object-type-remote-object.js index 7404eae3963447..892550aa32e310 100644 --- a/test/parallel/test-debugger-object-type-remote-object.js +++ b/test/parallel/test-debugger-object-type-remote-object.js @@ -11,6 +11,7 @@ const assert = require('assert'); const cli = startCLI([fixtures.path('debugger/empty.js')]); (async () => { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); await cli.command('exec new Date(0)'); diff --git a/test/parallel/test-debugger-preserve-breaks.js b/test/parallel/test-debugger-preserve-breaks.js index 7730039aed71b8..1a51bc054e7d48 100644 --- a/test/parallel/test-debugger-preserve-breaks.js +++ b/test/parallel/test-debugger-preserve-breaks.js @@ -16,6 +16,7 @@ const script = path.relative(process.cwd(), scriptFullPath); (async () => { const cli = startCLI([script]); try { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); await cli.command('breakpoints'); @@ -29,7 +30,9 @@ const script = path.relative(process.cwd(), scriptFullPath); await cli.stepCommand('c'); // hit line 3 assert.deepStrictEqual(cli.breakInfo, { filename: script, line: 3 }); await cli.command('restart'); + await cli.waitForPrompt(); await cli.waitForInitialBreak(); + await cli.waitForPrompt(); assert.deepStrictEqual(cli.breakInfo, { filename: script, line: 1 }); await cli.stepCommand('c'); assert.deepStrictEqual(cli.breakInfo, { filename: script, line: 2 }); diff --git a/test/parallel/test-debugger-profile-command.js b/test/parallel/test-debugger-profile-command.js index 06818c2132d9c5..280f7a7f5e78a5 100644 --- a/test/parallel/test-debugger-profile-command.js +++ b/test/parallel/test-debugger-profile-command.js @@ -15,6 +15,7 @@ const cli = startCLI([fixtures.path('debugger/empty.js')]); const rootDir = path.resolve(__dirname, '..', '..'); (async () => { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); await cli.command('profile'); diff --git a/test/parallel/test-debugger-profile.js b/test/parallel/test-debugger-profile.js index 31f57ee06da65d..b489bea08ad8c6 100644 --- a/test/parallel/test-debugger-profile.js +++ b/test/parallel/test-debugger-profile.js @@ -30,6 +30,7 @@ function delay(ms) { try { (async () => { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); await cli.command('exec console.profile()'); diff --git a/test/parallel/test-debugger-random-port-with-inspect-port.js b/test/parallel/test-debugger-random-port-with-inspect-port.js index a7e74c0dbae6d6..9256b3cd1d02ca 100644 --- a/test/parallel/test-debugger-random-port-with-inspect-port.js +++ b/test/parallel/test-debugger-random-port-with-inspect-port.js @@ -13,7 +13,7 @@ const script = fixtures.path('debugger', 'three-lines.js'); const cli = startCLI(['--inspect-port=0', script], [], {}, { randomPort: false }); (async () => { - await cli.waitForInitialBreak(); + await cli.waitFor(/Debugger attached\./); await cli.waitForPrompt(); assert.match(cli.output, /debug>/, 'prints a prompt'); assert.match( diff --git a/test/parallel/test-debugger-random-port.js b/test/parallel/test-debugger-random-port.js index 06f927b4db9d14..2fed5f8acab19d 100644 --- a/test/parallel/test-debugger-random-port.js +++ b/test/parallel/test-debugger-random-port.js @@ -14,7 +14,8 @@ const assert = require('assert'); const cli = startCLI([script]); - cli.waitForInitialBreak() + cli.waitForPrompt() + .then(() => cli.waitForInitialBreak()) .then(() => cli.waitForPrompt()) .then(() => { assert.match(cli.output, /debug>/, 'prints a prompt'); diff --git a/test/parallel/test-debugger-restart-message.js b/test/parallel/test-debugger-restart-message.js index 5803d0ad262058..196e08c4dda127 100644 --- a/test/parallel/test-debugger-restart-message.js +++ b/test/parallel/test-debugger-restart-message.js @@ -20,6 +20,7 @@ const startCLI = require('../common/debugger'); async function onWaitForInitialBreak() { try { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); assert.strictEqual(cli.output.match(listeningRegExp).length, 1); diff --git a/test/parallel/test-debugger-run-after-quit-restart.js b/test/parallel/test-debugger-run-after-quit-restart.js index 8ea8b74035edf6..db04711c01e416 100644 --- a/test/parallel/test-debugger-run-after-quit-restart.js +++ b/test/parallel/test-debugger-run-after-quit-restart.js @@ -15,7 +15,8 @@ const path = require('path'); const script = path.relative(process.cwd(), scriptFullPath); const cli = startCLI([script]); - cli.waitForInitialBreak() + cli.waitForPrompt() + .then(() => cli.waitForInitialBreak()) .then(() => cli.waitForPrompt()) .then(() => cli.stepCommand('n')) .then(() => { diff --git a/test/parallel/test-debugger-sb-before-load.js b/test/parallel/test-debugger-sb-before-load.js index e2267156b7420b..f39803536cb439 100644 --- a/test/parallel/test-debugger-sb-before-load.js +++ b/test/parallel/test-debugger-sb-before-load.js @@ -20,6 +20,7 @@ const otherScript = path.relative(process.cwd(), otherScriptFullPath); const cli = startCLI([script]); (async () => { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); await cli.command('sb("other.js", 2)'); diff --git a/test/parallel/test-debugger-scripts.js b/test/parallel/test-debugger-scripts.js index b0f611bd1c6491..009ad3e5eb6fe8 100644 --- a/test/parallel/test-debugger-scripts.js +++ b/test/parallel/test-debugger-scripts.js @@ -15,6 +15,7 @@ const assert = require('assert'); (async () => { try { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); await cli.command('scripts'); diff --git a/test/parallel/test-debugger-set-context-line-number.mjs b/test/parallel/test-debugger-set-context-line-number.mjs index dd5fde1fe69143..a439136aa6d402 100644 --- a/test/parallel/test-debugger-set-context-line-number.mjs +++ b/test/parallel/test-debugger-set-context-line-number.mjs @@ -21,6 +21,7 @@ function getLastLine(output) { // Stepping through breakpoints. try { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); diff --git a/test/parallel/test-debugger-use-strict.js b/test/parallel/test-debugger-use-strict.js index ae82a9fc82352b..3ff5aab17ee6b6 100644 --- a/test/parallel/test-debugger-use-strict.js +++ b/test/parallel/test-debugger-use-strict.js @@ -18,7 +18,8 @@ const assert = require('assert'); throw error; } - return cli.waitForInitialBreak() + return cli.waitForPrompt() + .then(() => cli.waitForInitialBreak()) .then(() => cli.waitForPrompt()) .then(() => { const brk = cli.breakInfo; diff --git a/test/parallel/test-debugger-watch-validation.js b/test/parallel/test-debugger-watch-validation.js index 46307c18d55526..0e92d19a748b95 100644 --- a/test/parallel/test-debugger-watch-validation.js +++ b/test/parallel/test-debugger-watch-validation.js @@ -11,7 +11,8 @@ const assert = require('assert'); const cli = startCLI([fixtures.path('debugger/break.js')]); (async () => { - await cli.waitForInitialBreak(); + await cli.waitFor(/Debugger attached\./); + await cli.waitForPrompt(); await cli.command('watch()'); await cli.waitFor(/ERR_INVALID_ARG_TYPE/); assert.match(cli.output, /TypeError \[ERR_INVALID_ARG_TYPE\]: The "expression" argument must be of type string\. Received undefined/); diff --git a/test/parallel/test-debugger-watchers.mjs b/test/parallel/test-debugger-watchers.mjs index a25ab6be5f041b..a4dd634990e0bd 100644 --- a/test/parallel/test-debugger-watchers.mjs +++ b/test/parallel/test-debugger-watchers.mjs @@ -16,6 +16,7 @@ function onFatal(error) { // Stepping through breakpoints. try { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); await cli.command('watch("x")'); diff --git a/test/sequential/test-debugger-custom-port.js b/test/sequential/test-debugger-custom-port.js index 5ecb91c07fef98..8d98ed1160d9da 100644 --- a/test/sequential/test-debugger-custom-port.js +++ b/test/sequential/test-debugger-custom-port.js @@ -14,7 +14,7 @@ const script = fixtures.path('debugger', 'three-lines.js'); const cli = startCLI([`--port=${common.PORT}`, script], [], {}, { randomPort: false }); (async function() { try { - await cli.waitForInitialBreak(); + await cli.waitFor(/Debugger attached\./); await cli.waitForPrompt(); assert.match(cli.output, /debug>/, 'prints a prompt'); assert.match( diff --git a/test/sequential/test-debugger-launch.mjs b/test/sequential/test-debugger-launch.mjs index a810ca37f2fb6c..143f018d65ab47 100644 --- a/test/sequential/test-debugger-launch.mjs +++ b/test/sequential/test-debugger-launch.mjs @@ -10,6 +10,7 @@ import assert from 'assert'; const script = fixtures.path('debugger', 'three-lines.js'); const cli = startCLI([script], [], {}, { randomPort: false }); try { + await cli.waitForPrompt(); await cli.waitForInitialBreak(); await cli.waitForPrompt(); assert.match(cli.output, /debug>/, 'prints a prompt');