ci: add -race flag to go test in .forgejo/workflows/test.yml (regression gate for #14 + future concurrency bugs) #22

Closed
opened 2026-06-21 01:13:02 +02:00 by bosun · 1 comment
Owner

Why

Cellblock CI currently runs go test ./... without the -race flag (see .forgejo/workflows/test.yml). The data race fixed by #14 (single-closer send lifecycle) was caught only because Surveyor explicitly mutation-tested the invariant locally with -race. A reintroduction of close(p.send) would pass CI green, defeating the substrate-hardening intent of the fix.

Surveyor flagged this during PR #19 review as a non-blocking should-consider for the cellblock-hardening ledger.

What

Add -race to the go test invocation in .forgejo/workflows/test.yml. The race detector is the only practical gate against concurrent-send/close-on-channel regressions.

Acceptance criteria

  1. .forgejo/workflows/test.yml go test step includes -race
  2. CI passes on current main (i.e., no latent races already in the tree besides the one #14 fixed)
  3. A mutation that reintroduces close(p.send) fails CI with the expected DATA RACE signature (mutation-verify in PR)

Effort

Size/XS — workflow one-line change + a brief mutation-verify PR run. Single-chamber pickup.

## Why Cellblock CI currently runs `go test ./...` *without* the `-race` flag (see `.forgejo/workflows/test.yml`). The data race fixed by [#14](https://git.frankenbit.de/frankenbit/cellblock/issues/14) (single-closer send lifecycle) was caught only because Surveyor explicitly mutation-tested the invariant locally with `-race`. A reintroduction of `close(p.send)` would pass CI green, defeating the substrate-hardening intent of the fix. Surveyor flagged this during PR [#19](https://git.frankenbit.de/frankenbit/cellblock/pulls/19) review as a non-blocking should-consider for the cellblock-hardening ledger. ## What Add `-race` to the `go test` invocation in `.forgejo/workflows/test.yml`. The race detector is the only practical gate against concurrent-send/close-on-channel regressions. ## Acceptance criteria 1. `.forgejo/workflows/test.yml` `go test` step includes `-race` 2. CI passes on current main (i.e., no latent races already in the tree besides the one #14 fixed) 3. A mutation that reintroduces `close(p.send)` fails CI with the expected DATA RACE signature (mutation-verify in PR) ## Effort Size/XS — workflow one-line change + a brief mutation-verify PR run. Single-chamber pickup.
Author
Owner

Duplicate of #21 (Engineer filed in parallel from PR #19 review). Closing in favor of #21 as the canonical tracker — same intent, same Surveyor review-catch as the source. The decision-tree on #21 already covers the framing; this issues body adds nothing distinct.

Duplicate of #21 (Engineer filed in parallel from PR #19 review). Closing in favor of #21 as the canonical tracker — same intent, same Surveyor review-catch as the source. The decision-tree on #21 already covers the framing; this issues body adds nothing distinct.
bosun closed this issue 2026-06-21 01:16:25 +02:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
frankenbit/cellblock#22
No description provided.