Skip to content

test(hub-client): raise WASM testTimeout to 120s — hang detection, not a perf budget - #440

Merged
cscheid merged 1 commit into
mainfrom
bugfix/wasm-test-timeout
Jul 30, 2026
Merged

test(hub-client): raise WASM testTimeout to 120s — hang detection, not a perf budget#440
cscheid merged 1 commit into
mainfrom
bugfix/wasm-test-timeout

Conversation

@cscheid

@cscheid cscheid commented Jul 30, 2026

Copy link
Copy Markdown
Member

What

Raises testTimeout in hub-client/vitest.wasm.config.ts from 30s to 120s, and adds a research note documenting the diagnosis and the heuristics behind the number.

Why

The TS Test Suite failed on main at 727b050: the smoke-all WASM sweep (smokeAll.wasm.test.ts, which renders every fixture inside a single it()) timed out at 30.5s on the ubuntu leg. It was not a code regression — the sweep was already running at ~85–90% of the 30s budget on ubuntu runners (25.5s pre-#438, 26.5s on #438's own green pre-merge CI); #438 added ~1s of SCSS work and normal runner variance tipped it over. The macOS leg of the same run passed in 20.1s.

A test timeout's job is hang detection, not performance enforcement, so it should sit at 5–10× typical duration (cf. Go's 10-minute default, Bazel's coarse size buckets, nextest's warn-vs-kill split). The new value is marked as such in a comment so it doesn't get re-tightened in a cleanup pass.

Full incident table + heuristics: claude-notes/research/2026-07-30-test-timeouts-are-hang-detection.md.

Follow-up (deliberately deferred, rule-of-three): bd-0yyy4ipi — split the monolithic sweep into per-fixture tests via top-level await + it.each.

Verification

  • npm run test:wasm locally after a fresh npm run build:wasm: 21 files / 130 tests pass, smoke-all sweep included.
  • No changelog entry: not user-facing (per changelog.md's own contract).

🤖 Generated with Claude Code

…t a perf budget

The smoke-all sweep (one it() over every fixture) ran at ~85-90% of the
30s testTimeout on ubuntu CI runners; #438 added ~1s of SCSS work and
runner variance tipped it over, failing main at 727b050. Timeouts
should sit at 5-10x typical duration and only catch genuine hangs.

Per-fixture refactor deferred to bd-0yyy4ipi. Full diagnosis and the
heuristics behind the number:
claude-notes/research/2026-07-30-test-timeouts-are-hang-detection.md

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@posit-snyk-bot

posit-snyk-bot commented Jul 30, 2026

Copy link
Copy Markdown

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@cscheid
cscheid merged commit e8421f3 into main Jul 30, 2026
8 checks passed
@cscheid
cscheid deleted the bugfix/wasm-test-timeout branch July 30, 2026 21:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants