Raise script/test's per-package timeout to 90s (closes #194)
All checks were successful
check / check (push) Successful in 2m55s
All checks were successful
check / check (push) Successful in 2m55s
`go test -timeout` is per package, so the budget has to clear the slowest
single package: internal/handlers. Measured in a cache-defeated builder
stage on the 48-core shared build host, 2026-08-18:
16.9s host load 5-20, GOMAXPROCS 48
45.9s / 47.3s / 49.0s three runs at deliberate host load 31-73
30.6s / 39.7s host load 5-20, GOMAXPROCS 6 / 4
67.3s / 97.5s host load 5-20, GOMAXPROCS 2 / 1
67.3s GOMAXPROCS 4 at deliberate host load 52-68
The old 30s budget was breached by every loaded run and by every
GOMAXPROCS at or below 6. At GOMAXPROCS 4 it failed outright on plain
33e4fa4 with no other change ("panic: test timed out after 30s"); with
90s the same run passes at 41.816s.
90s is the org-wide backstop in REPO_POLICIES.md. It holds against these
measurements: the worst case under native parallelism is 49.0s, and the
compound GOMAXPROCS-4-under-load case at 67.3s sits at 75% of it. The
rows above 90s come from GOMAXPROCS 1 and 2, a synthetic core floor
rather than a condition CI runs under.
No test is changed, skipped, shortened or desampled.
#194
This commit is contained in:
24
script/test
24
script/test
@@ -1,12 +1,34 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# script/test: run the test suite.
|
# script/test: run the test suite.
|
||||||
|
#
|
||||||
|
# -timeout is applied by `go test` per package, not to the run as a whole, so
|
||||||
|
# it only has to clear the slowest single package. That is internal/handlers,
|
||||||
|
# measured in a cache-defeated builder stage on the 48-core shared build host
|
||||||
|
# (2026-08-18, this tree):
|
||||||
|
#
|
||||||
|
# 16.9s host load 5-20, GOMAXPROCS 48
|
||||||
|
# 45.9s / 47.3s / 49.0s three runs at deliberate host load 31-73
|
||||||
|
# 30.6s / 39.7s host load 5-20, GOMAXPROCS 6 / 4
|
||||||
|
# 67.3s / 97.5s host load 5-20, GOMAXPROCS 2 / 1
|
||||||
|
# 67.3s GOMAXPROCS 4 at deliberate host load 52-68
|
||||||
|
#
|
||||||
|
# The old 30s budget was breached by every loaded run and by every GOMAXPROCS
|
||||||
|
# at or below 6; at GOMAXPROCS 4 it failed outright ("panic: test timed out
|
||||||
|
# after 30s"), reproduced on 33e4fa4 with no other change.
|
||||||
|
#
|
||||||
|
# 90s matches the org-wide backstop in REPO_POLICIES.md and is sized here
|
||||||
|
# against the figures above: the worst case under native parallelism is 49.0s,
|
||||||
|
# and the compound GOMAXPROCS-4-under-load case at 67.3s sits at 75% of it.
|
||||||
|
# The rows above 90s come from GOMAXPROCS 1 and 2, a synthetic core floor
|
||||||
|
# rather than a condition CI runs under. If a CPU-limited runner ever puts a
|
||||||
|
# real run near 67s, that is the datum to revisit the org figure with.
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
|
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
cd "$ROOT"
|
cd "$ROOT"
|
||||||
go test -v -race -timeout 30s ./...
|
go test -v -race -timeout 90s ./...
|
||||||
}
|
}
|
||||||
|
|
||||||
main "$@"
|
main "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user