check / check (push) Failing after 0s
script/test now runs `go test -timeout 30s -race -cover ./...`, quiet on success and rerunning verbose with `exit 1` on failure, per policy. -race surfaced a real data race on the process-global apex/log logger: Init reconfigures it (SetHandler/SetLevel) each CLI run while other goroutines read it to log. internal/log now mutates the global under the write lock and reads it under the read lock (new emit helper, DebugReal), and drops WithError, whose returned Entry logged outside that lock. That Entry was also the only thing printing a failed command's error to stderr, so run() now reports it via log.Errorf (shown under -q too). The corruption fuzz test shrinks (20000->1500 files, 500->100 iters) to keep the suite under 20s with -race. Model: opus-4-8
29 lines
690 B
Bash
Executable File
29 lines
690 B
Bash
Executable File
#!/bin/sh
|
|
# script/test: run the test suite.
|
|
set -eu
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
|
|
|
|
# Regenerate mfer/mf.pb.go from mfer/mf.proto if it is missing or stale
|
|
# (mirrors the old Makefile prerequisite; the generated file is
|
|
# committed, so this is normally a no-op).
|
|
ensure_pb() {
|
|
if [ ! -f mfer/mf.pb.go ] ||
|
|
[ -n "$(find mfer/mf.proto -newer mfer/mf.pb.go 2>/dev/null)" ]; then
|
|
(cd mfer && go generate .)
|
|
fi
|
|
}
|
|
|
|
main() {
|
|
cd "$ROOT"
|
|
ensure_pb
|
|
go test -timeout 30s -race -cover ./... ||
|
|
{
|
|
echo "--- Rerunning with -v for details ---"
|
|
go test -timeout 30s -race -v ./...
|
|
exit 1
|
|
}
|
|
}
|
|
|
|
main "$@"
|