#!/bin/sh # 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. 180s is 1.85x the # worst figure above, and still bounds a genuinely hung package to a wait a # human will sit through. # # REPO_POLICIES.md still states 30s. That figure predates this suite; do not # restore it without re-measuring internal/handlers under load. set -eu ROOT="$(cd "$(dirname "$0")/.." && pwd -P)" main() { cd "$ROOT" go test -v -race -timeout 180s ./... } main "$@"