Address review findings on the E2E incompleteness reporting

Commit

Stefan Haubold3d ago

Five findings from the trail review.

A failure now outranks an incomplete test in the footer banner. incomplete > 0 was the first arm of the switch, so a run with real failures plus any interrupted test printed INCOMPLETE (1/2 tests completed) and no FAILED banner โ€” the shape a -timeout panic or a killed test binary produces. The arms are now total == 0, failed > 0, incomplete > 0, and a run that both failed and was cut off reports FAILED (0/2 passed, 1 incomplete).

-fail-on-empty becomes -fail-on-incomplete, and gates on what it detects. The old condition was satisfied by a single completed parent, so a run where 5 of 6 finished and one was cut off exited 0 and left detection of the partial case entirely to gotestsum's exit code โ€” which reflects the tests that reported a result, not the one that never reported at all. The flag has not shipped, so the rename costs nothing.

Counting moves into countParents, so the report body and the exit status cannot disagree about what completed, and completedParent stays the single definition of "completed".

The error message names standard input instead of rendering "" when events arrive on stdin, and distinguishes "nothing ran" from "n of m did not complete".

Two test gaps, both found by mutation testing. Nothing pinned the FAILED banner: deleting the whole case failed > 0: arm left the suite green. And the case named rerun was fail then pass with no run between, so it never exercised the reset at the heart of the retry handling โ€” real gotestsum --rerun-fails emits fail, run, pass. Added both shapes plus the fail-and-incomplete precedence case; all four mutations are now caught.

The test asserted on the raw input path, which %q escapes on Windows, so that branch could never match there. It compares the quoted form now.

Reflowed the README section, which had Nightly retains its orphaned on its own line.

Verified: mise run test:e2e:canary green (53 vogon + 4 roger-roger, no incomplete parents); a real gotestsum --rerun-fails=1 stream over a genuinely flaky test (run, fail, run, pass) still exits 0; shellcheck and mise run lint clean.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com Entire-Checkpoint: 01M6E78DJG4F1R0CQNXVP2DX78