test: bound all-crate spawners and add a hang backstop to nextest#76
Merged
Merged
Conversation
…R-1405) The stdio-spawners group only bounded `package(mcptest)` integration tests, but mcptest-core (stdio_transport_integration, auto_discover_doctor_corpus) and mcptest-agent (the agent end-to-end suites) fork child processes too, so a full local `cargo nextest run --workspace` could still oversubscribe the CPU and hang. Broaden the group filter from `package(mcptest) & kind(test)` to `kind(test)` so every workspace integration test is bounded, with no per-crate or per-test list to drift as suites are added. Add a slow-timeout backstop (period 60s, terminate-after 3) so the run always terminates: a genuine hang becomes a 180s timeout-failure naming the test instead of an indefinite freeze. No default-feature test approaches 60s, so a healthy run never trips it; profiles inherit it, so ci gets the same guard. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The
stdio-spawnerstest group caps how many process-spawning integrationtests run at once, so the swarm of
/bin/shandmcptest-child round-triptests cannot oversubscribe the CPU and starve each other into a hung full local
cargo nextest run. But the override only matchedpackage(mcptest) & kind(test),leaving the child-spawners in other crates unbounded:
mcptest-core:stdio_transport_integration,auto_discover_doctor_corpusmcptest-agent: the agent end-to-end suitesThose residual spawners could still co-saturate the cores on a full-workspace run.
Change
package(mcptest) & kind(test)tokind(test),so every workspace integration test is bounded. Scoping by kind alone is robust
(no per-crate or per-test list to drift as suites are added) and correct (unit
tests, kind lib/bin, stay fully parallel).
slow-timeoutbackstop (period = 60s,terminate-after = 3). Thefailure mode this file guards against turns a starved test into an indefinite
hang that freezes the whole run with no output. The backstop guarantees the run
always terminates: a genuine hang becomes a 180s timeout-failure that names the
test, instead of an infinite freeze. No default-feature test approaches 60s, so
a healthy run never trips it. Profiles inherit unset settings from
default, sothe ci profile gets the same guard.
Config-only and non-regressing: it only lowers concurrency for integration tests
and adds a generous per-test timeout, so it cannot break a suite that already
passes.