Test evidence: Fiesta's module, gate and CI steps open
On branch fiesta-1
Test evidence for Task 1 of the Fiesta packaging, copied from the implementer's report so it sits on the branch.
Commits
RED: the exec-bit test, by name
With go.mod, doc.go, the two test files and .amadan/ci.d/10-gofmt staged at 100644, no Makefile yet:
$ git ls-files -s .amadan/
100644 e234af55ba4293233da090f44f9ca5878f4ae9a4 0 .amadan/ci.d/10-gofmt
$ go test -run 'TestAmadan' -count=1 .
--- FAIL: TestAmadanFilesAreExecutableInGit (0.00s)
ci_test.go:69: .amadan/ci.d/10-gofmt is committed with mode 100644, not 100755 — a runner reading the index (not the working tree) would resolve this job "skipped", which renders as a pass
ci_test.go:79: .amadan/ci is not tracked in git's index at all
--- FAIL: TestAmadanCITargetsMatchStepFiles (0.00s)
ci_test.go:144: reading Makefile: open Makefile: no such file or directory
--- FAIL: TestAmadanSuiteShardsMatchRoles (0.00s)
ci_test.go:198: no .amadan/ci.d step execs `make suite`, so the suite's roles run nowhere under amadan
FAILGREEN: make ci after step 3
go test -run '^(TestFiestaNeverImportsRastrillo|TestThePublicPackagesLinkNoBrowser)$' -count=1 .
ok amadan.net/rastrillo/fiesta 0.030s
==> make root
FIESTA_TEST_REQUIRE_NODE=1 go test -count=1 ./...
ok amadan.net/rastrillo/fiesta 0.033s
==> make staticcheck
==> make govulncheck
No vulnerabilities found.
==> make gitleaks
... 1 commits scanned ... no leaks found
exit: 0go test -run 'TestAmadan|TestSlices' -count=1 -v .: the four TestAmadan* tests PASS; TestSlicesPartitionTheirPackages SKIP ("no package is sliced"). Shard mechanics: AMADAN_SHARD_COUNT=4 AMADAN_SHARD=1 make -s suite ran only make staticcheck; AMADAN_SHARD_COUNT=3 was refused ("started as 3 shards, but the Makefile's SUITE has 4 roles", exit 2).
Negative controls: the two new tests, each with a one-line mutation
Baseline before any mutation: both PASS. A first attempt in the worktree (a scratch file importing rastrillo, and one importing chromedp) ended in [setup failed], a build error rather than the test's message, so the resolving mutations ran in a scratch copy under $TMPDIR whose go.mod had been given the requirement first.
TestFiestaNeverImportsRastrillo, mutation B (worktree): require amadan.net/rastrillo/rastrillo v0.0.0 appended to go.mod.
--- FAIL: TestFiestaNeverImportsRastrillo (0.03s)
norastrillo_test.go:65: go.mod mentions amadan.net/rastrillo/rastrillo; Fiesta never requires RastrilloTestFiestaNeverImportsRastrillo, mutation A' (scratch copy): import _ "amadan.net/rastrillo/rastrillo".
--- FAIL: TestFiestaNeverImportsRastrillo (0.04s)
norastrillo_test.go:65: go.mod mentions amadan.net/rastrillo/rastrillo; Fiesta never requires Rastrillo
norastrillo_test.go:73: go list -deps -test -tags browser ./... reaches amadan.net/rastrillo/rastrillo/background; Fiesta never imports Rastrillo in any build, tag or test
... (five packages in all)Control, same scratch module without the import: only the go.mod line fails, which is the go.mod half doing its job.
TestThePublicPackagesLinkNoBrowser, mutation C' (scratch copy): import _ "github.com/chromedp/chromedp" in the root package.
--- FAIL: TestThePublicPackagesLinkNoBrowser (0.03s)
norastrillo_test.go:89: go list -deps . reaches github.com/chromedp/sysutil; the public packages never link a browser
... (57 chromedp lines in all)
norastrillo_test.go:89: go list -deps . reaches github.com/chromedp/chromedp; the public packages never link a browserControl, same scratch module without the import: ok amadan.net/rastrillo/fiesta 0.007s.
Every mutation was removed; the scratch copies were deleted by their traps.