check / check (push) Waiting to run
script/test ended with a verbose rerun whose exit status became the script's, so a test that failed once and passed on the retry gave a green build. It now follows the REPO_POLICIES.md pattern: go vet, then go test -count=1 -timeout 30s -race -cover; on failure a verbose rerun for the details, then exit 1. -count=1 stays on both go test lines because the Dockerfile keeps Go's build cache between builds. The tests that gave the secret binary a minute, and the PGP unlocker test's 30-second timer, now use 10 seconds, so a hang fails with the test's own message before the package's 30-second timeout. The README describes the new run. Model: opus-5-5
23 lines
742 B
Bash
Executable File
23 lines
742 B
Bash
Executable File
#!/bin/sh
|
|
# script/test: run the test suite (vet first, then the tests with the race
|
|
# detector; a verbose rerun on failure).
|
|
set -eu
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
|
|
|
|
main() {
|
|
cd "$ROOT"
|
|
# CGO is required (Makefile exports this too)
|
|
export CGO_ENABLED=1
|
|
go vet ./...
|
|
# -count=1: run every test, never take a result from Go's test cache,
|
|
# which the Dockerfile keeps between builds. The rerun only prints
|
|
# details: `exit 1` keeps the script failing even if a flaky test
|
|
# passes on the second attempt.
|
|
go test -count=1 -timeout 30s -race -cover ./... || \
|
|
{ echo "--- Rerunning with -v for details ---"; \
|
|
go test -count=1 -timeout 30s -race -v ./...; exit 1; }
|
|
}
|
|
|
|
main "$@"
|