Repository navigation
FIX: reduce CI test runtime and stabilise benchmark timeout coverage - #76
Merged
Merged
Conversation
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.
Why
The default-branch macOS jobs are exhausting Go's default ten-minute package timeout while still doing useful rendering work. The UI package repeats its complete localised layout/click-surface suite sequentially for 17 locales under race and coverage instrumentation, leaving little headroom for runner variation. A separate benchmark recovery test can also expire its 20 ms wall-clock deadline during setup instead of the turn it intends to test.
This PR improves test scheduling and diagnostics without changing application behaviour or dropping locale checks, assertions, race detection or coverage instrumentation.
Changes
Bound and separate the rendering workload
-race -coverand has an explicit ten-minute package timeout.Reduce redundant work and remove flaky clock assumptions
testing/synctest: its existing timeout and delayed protocol events use deterministic virtual time rather than runner-dependent wall-clock scheduling. The assertions for interruption, measured failure, retained usage and successful continuation are unchanged.Preserve evidence
Validation
go test -race -cover -timeout 10m -skip '^TestLocalisedScreens$' ./...passes locally (UI package 36.4 s).go vet ./...,gofmt,git diff --checkand actionlint on both workflows pass.No production code, dependencies or embedded web assets change. Cross-platform runtime improvements will be verified by this PR's CI.