ww: test sources are *_test.ww only (Go contract)

Go compiles only _test.go files as tests; discovery now keys on the
_test.ww suffix alone. The line-leading-@test compatibility allowance
(noncanonical filenames admitted as test sources) is removed from both
driver stages and the coordinator. An @test declaration outside a
*_test.ww file is rejected loudly ("@test declaration outside
*_test.ww", wording byte-identical cs/ww) instead of silently running
under compose or silently dropping in a non-T build (#6). Tree audit
found zero real carriers; the two allowance fixtures flip canonical
(dep_test.ww, widget_test.ww). New pins: direnum attest-noncanon
reject row (both-stage stderr parity) and the coordinator
noncanonical_attest_rejected package row.
This commit is contained in:
2026-08-08 20:38:02 +09:00
parent 0cf9643be8
commit 659e859f34
10 changed files with 109 additions and 47 deletions

View File

@@ -194,7 +194,10 @@ and nonempty-version-constant assertions.
`ww test` delegates directory package requests to the native package
coordinator. The coordinator owns discovery, package grouping, same-package and
external-package test composition, filtering, result aggregation, and its
internal temporary workspace. A trailing `...` path element (`ww test lib/...`,
internal temporary workspace. Test sources are exclusively `*_test.ww` (Go's
`_test.go` contract): a line-leading `@test` declaration in any other source is
rejected loudly — by both driver stages at directory enumeration and by the
coordinator at source classification. A trailing `...` path element (`ww test lib/...`,
Go's `./...` form) is recognized by both driver stages before path resolution
and walks the tree rooted at the prefix: every subdirectory whose name does not
begin with `.` or `_` is descended with the same lstat/no-symlink discipline,