Adopt the mandated test target pattern (closes #2) #9
8
Makefile
8
Makefile
@@ -30,6 +30,10 @@ fmt-check:
|
|||||||
lint:
|
lint:
|
||||||
golangci-lint run $(GO_PKGS)
|
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:
|
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
|
# 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
|
- 2026-08-07 Canonical linter config (`golangci-v2.12.2`): replaced
|
||||||
`.golangci.yml` with the shared canonical config (v2 schema; settings now live
|
`.golangci.yml` with the shared canonical config (v2 schema; settings now live
|
||||||
under `linters.settings`, so the `lll`/`funlen`/`cyclop`/`dupl` thresholds
|
under `linters.settings`, so the `lll`/`funlen`/`cyclop`/`dupl` thresholds
|
||||||
|
|||||||
Reference in New Issue
Block a user