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 f8dbf3be5832..321dddb51372 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 c189cb3f5b22..71d960b5186b 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 4da400e44758..a4a3e5e73d32 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 e2efa8182e4a..56a816df6bf3 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 91349e105a11..06f2199a1f15 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 3f75161a6b6e..52fc9d48784c 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 661061f11e03..6846e495d676 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 2b6c50ab61ff..e5bc380b65d6 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 a7de32ad4e2c..53cc6b47ed74 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 96c3ed0e1a55..25cd8abad129 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 1fb710d62801..08ff874d926c 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 594874e140b3..578947dedc95 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 93c8e1b62559..b75efcdcec47 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 7404eae39634..892550aa32e3 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 7730039aed71..1a51bc054e7d 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 06818c2132d9..280f7a7f5e78 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 31f57ee06da6..b489bea08ad8 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 a7e74c0dbae6..9256b3cd1d02 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 06f927b4db9d..2fed5f8acab1 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 5803d0ad2620..196e08c4dda1 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 8ea8b74035ed..db04711c01e4 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 e2267156b742..f39803536cb4 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 b0f611bd1c64..009ad3e5eb6f 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 dd5fde1fe691..a439136aa6d4 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 ae82a9fc8235..3ff5aab17ee6 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 46307c18d555..0e92d19a748b 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 a25ab6be5f04..a4dd634990e0 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 5ecb91c07fef..8d98ed1160d9 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 a810ca37f2fb..143f018d65ab 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');