From 3933e6bdfaf62277424af7b2404e4a8ffce83d6f Mon Sep 17 00:00:00 2001 From: sneak Date: Mon, 10 Aug 2026 13:51:34 +0000 Subject: [PATCH] Add -count=1 to the canonical Go make test example (closes #44) The canonical Go `test` target in `REPO_POLICIES.md` omitted `-count=1`, so Go replayed cached successful results and the target could exit 0 having executed no test. Every repo that copied it inherited the false green. Both invocations get the flag; the rerun needs it so a failure is reproduced rather than replayed. --- TODO.md | 3 +++ prompts/REPO_POLICIES.md | 11 ++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/TODO.md b/TODO.md index fac919c..1683d24 100644 --- a/TODO.md +++ b/TODO.md @@ -21,6 +21,9 @@ fmt-check, and commit. # Completed Steps +- 2026-08-10: Added `-count=1` to both `go test` invocations in the canonical Go + `make test` example in `REPO_POLICIES.md`, so the target cannot report a + cached pass it did not earn. - 2026-08-07: Set the canonical `.golangci.yml` to the org-standard v2-schema config already deployed byte-identical across the org's Go repos (settings under `linters.settings` so thresholds like lll/funlen/cyclop/dupl actually diff --git a/prompts/REPO_POLICIES.md b/prompts/REPO_POLICIES.md index 79d2fb7..f6e0b12 100644 --- a/prompts/REPO_POLICIES.md +++ b/prompts/REPO_POLICIES.md @@ -1,6 +1,6 @@ --- title: Repository Policies -last_modified: 2026-08-07 +last_modified: 2026-08-10 --- This document covers repository structure, tooling, and workflow standards. Code @@ -209,11 +209,16 @@ style conventions are in separate documents: ```makefile test: - @go test -timeout 30s -race -cover ./... || \ + @go test -count=1 -timeout 30s -race -cover ./... || \ { echo "--- Rerunning with -v for details ---"; \ - go test -timeout 30s -race -v ./...; exit 1; } + go test -count=1 -timeout 30s -race -v ./...; exit 1; } ``` + `-count=1` is required on both invocations: it defeats Go's test _result_ + cache, so the target cannot report a pass it did not earn, and the rerun + reproduces a failure instead of replaying it. It leaves the build cache + alone, so it costs the runtime of the suite and no recompilation. + Python example: ```makefile -- 2.49.1