From 9e91089a565eb3647c47da06f0be0a29a661114f Mon Sep 17 00:00:00 2001 From: "Joshua D. Drake" Date: Tue, 13 Oct 2026 01:31:16 +0000 Subject: [PATCH] test: date part 590's clean-exit arm; its counter-restore arm cannot be dated (#1236) The two never-red checks left in part 590 after #1313. A declared suite gaining a clean exit 0 that skips pgc_summary reddens 'every clean exit in a declared suite reaches its summary first' on all five majors; merged with --mutation and --target. Census 1684 -> 1683. Removing one of the part's counter restores reddens 'the suite's own counters are restored after every driving block' on all five majors too, but it corrupts the run's own accounting (1223 records against 'checks run: 30'), and pgc_ledger merge refuses such a log as evidence. Any real failure of the restore does the same, so that arm stays never, and the budget says why. The m590e logs predate #1313's renames; the three old-name rows they carried back were removed, orphan-scan clean. Co-Authored-By: Claude Opus 5.5 --- test/check_ledger.tsv | 2 +- test/check_ledger_budget.txt | 22 +++++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/test/check_ledger.tsv b/test/check_ledger.tsv index 2b10749e2..aada27184 100644 --- a/test/check_ledger.tsv +++ b/test/check_ledger.tsv @@ -1602,7 +1602,7 @@ harness_selftest 590-a-declared-suite-must-account and a log with no accounting harness_selftest 590-a-declared-suite-must-account and it is marked TERMINATED, so a reader can tell it from a full run 15;16;17;18;19 2026-09-23 the EXIT trap reverted to the bare pgc_teardown, so the eight pgc_setup exits emit no accounting harness_selftest 590-a-declared-suite-must-account and nothing still arms the bare teardown 15;16;17;18;19 2026-09-23 the EXIT trap reverted to the bare pgc_teardown, so the eight pgc_setup exits emit no accounting harness_selftest 590-a-declared-suite-must-account and pgc_setup still calls pgc_summary on none of them 15;16;17;18;19 2026-10-12 lib.sh's pgc_setup calls pgc_summary before one of its exit 1 paths -harness_selftest 590-a-declared-suite-must-account every clean exit in a declared suite reaches its summary first 15;16;17;18;19 never - +harness_selftest 590-a-declared-suite-must-account every clean exit in a declared suite reaches its summary first 15;16;17;18;19 2026-10-13 a declared suite (ttl_expire.sh) gains a clean exit 0 that skips pgc_summary harness_selftest 590-a-declared-suite-must-account premise: declared suites do have clean exits of their own to check 15;16;17;18;19 never - harness_selftest 590-a-declared-suite-must-account premise: lib.sh is where the exits and the trap both live 15;16;17;18;19 2026-09-23 the EXIT trap reverted to the bare pgc_teardown, so the eight pgc_setup exits emit no accounting harness_selftest 590-a-declared-suite-must-account premise: pgc_setup still has the eight exits this covers 15;16;17;18;19 never - diff --git a/test/check_ledger_budget.txt b/test/check_ledger_budget.txt index 3d758c7eb..280ab7deb 100644 --- a/test/check_ledger_budget.txt +++ b/test/check_ledger_budget.txt @@ -1370,4 +1370,24 @@ suites_not_covered 247 # fresh runs on this tree: a clean run (1223/1223) and both 590 mutations, on # each of 15-19, merged with --mutation and --target. Those runs also re-observe # 20 of the other dated rows, whose last-observed-red date moves to 2026-10-13. -checks_never_observed_red 1684 +# +# #1236 follow-up (part 590's last two): 1684 -> 1683. +# 'every clean exit in a declared suite reaches its summary first' is dated by +# a declared suite (ttl_expire.sh) gaining a clean exit 0 that skips +# pgc_summary, run on all five majors and merged with --mutation and --target. +# Those logs predate #1313's renames, so the three old-name rows they carried +# back were removed again; orphan-scan against a clean run with today's names: +# orphans=0. +# +# 'the suite's own counters are restored after every driving block' STAYS +# never, and not for want of a mutation. Removing a restore reddens it on all +# five majors, but it also corrupts the run's own counters (measured: 1223 +# records against 'checks run: 30'), and the ledger refuses a log that does not +# reconcile as evidence about anything. Any real failure of the restore corrupts +# the counts the same way, so this arm can be seen red but never dated. +# +# ledger rows 1984 + 0 = 1984 +# never 1684 - 1 = 1683 +# dated 300 + 1 = 301 +# 1683 + 301 == 1984 +checks_never_observed_red 1683