Go tests run with -race and -cover under Go's own timeout (closes #88)
check / check (push) Successful in 2m31s

backend/script/test runs go test -timeout 30s -race -cover and, if
that fails, runs it again with -v and fails. The root script/test drops
its one 30-second timeout around both halves: from a cold Go build
cache, compiling the tests with -race used it all up on four cores.
Each half keeps its own limit. The builder stage of the Dockerfile
gains gcc and musl-dev for the race detector; make build still sets
CGO_ENABLED=0. New tests: the health check's answer, a valid report's
answer, a report file's exact lines, and the flush at the 10 MiB
threshold. The handlers TestImport stub is gone.

Model: opus-5-5
This commit is contained in:
2026-10-03 13:04:21 +00:00
parent 4ce0814b14
commit 24d4ea6ba4
11 changed files with 312 additions and 32 deletions
+10 -2
View File
@@ -1,12 +1,20 @@
#!/bin/sh
# script/test: run the backend test suite.
# script/test: run the backend test suite with the race detector and
# coverage. Go's own -timeout bounds the tests and not their compile,
# so a cold build cache cannot fail it. The race detector needs cgo,
# and so a C compiler. If the tests fail, they run again with -v for
# the details, and the script fails even if that run passes.
set -eu
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
main() {
cd "$ROOT"
timeout 30 go test ./...
go test -timeout 30s -race -cover ./... || {
echo "--- Rerunning with -v for details ---"
go test -timeout 30s -race -v ./...
exit 1
}
}
main "$@"