Skip to content

Commit 569af93

Browse files
test(stress): raise default FixtureTimeout 15s -> 30s (#408)
Eliminates the dominant stress-failure mode (CI VM variance overshooting tight per-fixture budgets). 5 of 8 failures in CI Stress run 26364109146 were 15 s timeout trips across 5 different fixtures - the pattern that per-fixture overrides in PRs #395, #397, #399 chased without converging. Local timing measurements (documented in INVESTIGATION.md) show the Framerate.* family completing in ~7 s on a dev box; CI VMs under contention run 2-4x slower, putting fixture work at ~28 s on the worst tick. 30 s matches the explicit override budget already used by four fixtures and leaves a clean signal gap below the 60 s HangWatchdogLoop dump-on-hang threshold. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent d05fb4e commit 569af93

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

tests/Reactor.AppTests.Host/SelfTest/SelfTestFixtureBase.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,15 @@ internal abstract class SelfTestFixtureBase
99

1010
protected SelfTestFixtureBase(Harness harness) => H = harness;
1111

12-
public virtual TimeSpan FixtureTimeout => TimeSpan.FromSeconds(15);
12+
// 30 s default chosen empirically from stress-run timing data: the
13+
// Framerate.* fixture family completes in ~7 s on a dev box, and
14+
// CI VMs under contention run 2-4x slower, putting fixture work at
15+
// ~28 s on the worst tick. Previously several fixtures had explicit
16+
// 30 s overrides (PR #397, #399); raising the default folds them in
17+
// and prevents new sister fixtures from inheriting a budget that
18+
// doesn't survive CI variance. The host-level HangWatchdogLoop at
19+
// 60 s (SelfTestRunner.cs) continues to catch true dispatcher hangs.
20+
public virtual TimeSpan FixtureTimeout => TimeSpan.FromSeconds(30);
1321

1422
public abstract Task RunAsync();
1523
}

0 commit comments

Comments
 (0)