diff --git a/scripts/run-vitest.mjs b/scripts/run-vitest.mjs index f06537dabb1..ef656d309b3 100644 --- a/scripts/run-vitest.mjs +++ b/scripts/run-vitest.mjs @@ -59,6 +59,8 @@ export function installVitestNoOutputWatchdog(params) { const clearTimeoutFn = params.clearTimeoutFn ?? clearTimeout; const forceKillAfterMs = params.forceKillAfterMs ?? 5_000; const streams = params.streams?.filter(Boolean) ?? []; + const label = params.label?.trim(); + const suffix = label ? ` (${label})` : ""; let active = true; let silenceTimer = null; @@ -88,7 +90,7 @@ export function installVitestNoOutputWatchdog(params) { return; } params.log?.( - `[vitest] no output for ${timeoutMs}ms; terminating stalled Vitest process group.`, + `[vitest] no output for ${timeoutMs}ms; terminating stalled Vitest process group${suffix}.`, ); params.onTimeout?.(); if (forceKillAfterMs > 0) { @@ -98,7 +100,7 @@ export function installVitestNoOutputWatchdog(params) { return; } params.log?.( - `[vitest] process group still alive after ${forceKillAfterMs}ms; sending SIGKILL.`, + `[vitest] process group still alive after ${forceKillAfterMs}ms; sending SIGKILL${suffix}.`, ); params.onForceKill?.(); }, forceKillAfterMs); @@ -177,6 +179,7 @@ function main(argv = process.argv.slice(2), env = process.env) { const teardownNoOutputWatchdog = installVitestNoOutputWatchdog({ streams: [child.stdout, child.stderr], timeoutMs: resolveVitestNoOutputTimeoutMs(env), + label: argv.join(" "), log: (message) => { console.error(message); }, diff --git a/scripts/test-projects.mjs b/scripts/test-projects.mjs index 9378276738d..618d1bff34a 100644 --- a/scripts/test-projects.mjs +++ b/scripts/test-projects.mjs @@ -120,6 +120,7 @@ function runVitestSpec(spec) { const teardownNoOutputWatchdog = installVitestNoOutputWatchdog({ streams: [child.stdout, child.stderr], timeoutMs: resolveVitestNoOutputTimeoutMs(spec.env), + label: spec.config, log: (message) => { console.error(message); }, diff --git a/test/scripts/run-vitest.test.ts b/test/scripts/run-vitest.test.ts index fcbcf26fb82..34fb425232b 100644 --- a/test/scripts/run-vitest.test.ts +++ b/test/scripts/run-vitest.test.ts @@ -97,4 +97,28 @@ describe("scripts/run-vitest", () => { vi.useRealTimers(); } }); + + it("includes the runner label in watchdog logs when provided", () => { + vi.useFakeTimers(); + try { + const stdout = new EventEmitter(); + const logSpy = vi.fn(); + + installVitestNoOutputWatchdog({ + streams: [stdout], + timeoutMs: 1000, + forceKillAfterMs: 0, + label: "run --config test/vitest/vitest.secrets.config.ts", + log: logSpy, + onTimeout: () => {}, + }); + + vi.advanceTimersByTime(1000); + expect(logSpy).toHaveBeenCalledWith( + "[vitest] no output for 1000ms; terminating stalled Vitest process group (run --config test/vitest/vitest.secrets.config.ts).", + ); + } finally { + vi.useRealTimers(); + } + }); });