Adopt the mandated test target pattern (closes #2) #9
8
Makefile
8
Makefile
@@ -30,6 +30,10 @@ fmt-check:
|
||||
lint:
|
||||
golangci-lint run $(GO_PKGS)
|
||||
|
||||
# Run the test suite.
|
||||
# Run the test suite. Quiet on success; on failure, rerun verbosely for the
|
||||
# full output and still fail the target (the first run already proved the
|
||||
# tests are broken, so a flaky pass on the rerun must not rescue the build).
|
||||
test:
|
||||
go test $(GO_PKGS)
|
||||
@go test -timeout 30s -race -cover $(GO_PKGS) || \
|
||||
{ echo "--- Rerunning with -v for details ---"; \
|
||||
go test -timeout 30s -race -v $(GO_PKGS); exit 1; }
|
||||
|
||||
13
TODO.md
13
TODO.md
@@ -34,6 +34,19 @@ wizard commands).
|
||||
|
||||
# Completed Steps
|
||||
|
||||
- 2026-08-09 Policy-shaped `make test` (`make-test-policy-pattern`): the `test:`
|
||||
target was a bare `go test $(GO_PKGS)` and now runs
|
||||
`-timeout 30s -race -cover` with the mandated conditional verbose rerun (on
|
||||
failure it reruns with `-v` and then `exit 1`, so a flaky pass on the second
|
||||
attempt cannot rescue the build). `$(GO_PKGS)` is kept rather than hardcoding
|
||||
`./...`. The substance was `-race`, not the Makefile edit: this is the first
|
||||
time the suite has run under the race detector, and it is clean — no data
|
||||
races across five consecutive uncached runs, including the tcell terminal
|
||||
layer and the `os.Exit`-path playthrough tests. Wall clock 5.1s cold
|
||||
(including the race build) and ~2.3s warm, against the 20s policy budget. The
|
||||
failure path was exercised with a throwaway failing test to confirm the rerun
|
||||
fires and `make` exits non-zero. Build tooling only; no game behavior change.
|
||||
|
||||
- 2026-08-07 Canonical linter config (`golangci-v2.12.2`): replaced
|
||||
`.golangci.yml` with the shared canonical config (v2 schema; settings now live
|
||||
under `linters.settings`, so the `lll`/`funlen`/`cyclop`/`dupl` thresholds
|
||||
|
||||
Reference in New Issue
Block a user