Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 21 additions & 21 deletions test/check_ledger.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -915,12 +915,14 @@ harness_selftest 390-a-registered-suite-must-account a declared suite that produ
harness_selftest 390-a-registered-suite-must-account a declared suite the driver never dispatched reconciles 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account a file that does not exist is reported absent, not exempt 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account a hash inside a word does not hide the call after it 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account a lib.sh accounting line is seen by the narrow reader 15;16;17;18;19 2026-10-13 part 590's reader of a producer's accounting line answers 'terminated' where it found the line
harness_selftest 390-a-registered-suite-must-account a log carrying lib.sh's accounting line is accounted 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account a log carrying neither is not accounted 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account a log claiming PASSED without the accounting line shows none 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account a log claiming PASSED without the accounting line shows none 15;16;17;18;19 2026-10-13 part 590's narrow reader answers yes where it found no accounting line
harness_selftest 390-a-registered-suite-must-account a long suite that calls pgc_summary still declares accounting 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account a longer name containing pgc_summary is not a declaration 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account a passing log shows accounting 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account a passing log shows accounting 15;16;17;18;19 2026-10-13 part 590's reader of a producer's accounting line answers 'terminated' where it found the line
harness_selftest 390-a-registered-suite-must-account a private tally is NOT seen by the narrow reader 15;16;17;18;19 2026-10-13 part 590's narrow reader answers yes where it found no accounting line
harness_selftest 390-a-registered-suite-must-account a registered suite that is accounted by nothing FAILS 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account a suite recorded as known debt passes 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account a suite recorded as never dispatched that DID account is caught 15;16;17;18;19 never -
Expand All @@ -931,25 +933,26 @@ harness_selftest 390-a-registered-suite-must-account a suite that now accounts b
harness_selftest 390-a-registered-suite-must-account a suite the driver never dispatched passes 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account a trailing comment after the call does not hide it 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account an absent log shows no accounting rather than erroring 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account an accounting line that does not start its line is refused 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account an accounting line that does not start its line is refused 15;16;17;18;19 2026-10-13 part 590's narrow reader answers yes where it found no accounting line
harness_selftest 390-a-registered-suite-must-account an indented comment is still a comment 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account an undeclared suite that DID account is caught too 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and a failed population reconciliation fails the major 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and a failed reconciliation sets the per-major failure flag 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and a log carrying only its OWN checks-run line is accounted too 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and a reworded producer line is refused, so the arm can fail 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and a skip, which reached the summary and counted zero 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and a log with neither is seen by neither 15;16;17;18;19 2026-10-13 part 590's narrow reader answers yes where it found no accounting line
harness_selftest 390-a-registered-suite-must-account and a reworded producer line is refused, so the arm can fail 15;16;17;18;19 2026-10-13 part 590's narrow reader answers yes where it found no accounting line
harness_selftest 390-a-registered-suite-must-account and a skip, which reached the summary and counted zero 15;16;17;18;19 2026-10-13 part 590's reader of a producer's accounting line answers 'terminated' where it found the line
harness_selftest 390-a-registered-suite-must-account and absent is distinguishable from a present file that does not declare 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and an incomplete 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and an incomplete 15;16;17;18;19 2026-10-13 part 590's reader of a producer's accounting line answers 'terminated' where it found the line
harness_selftest 390-a-registered-suite-must-account and debt naming a suite that is not registered is reported too 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and it agrees with the real reader on a SHORT file, which is why it survived review 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and it is NAMED, so the reader does not have to diff two lists 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and it is named as that fault, not as one of the other two 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and it is named as the opposite fault, not the same one 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and it is named, which the symmetry check could never do 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and names nothing when the two readers agree 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and prose containing the word does not count as the line 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and so does a failing one, which is the point 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and prose containing the word does not count as the line 15;16;17;18;19 2026-10-13 part 590's narrow reader answers yes where it found no accounting line
harness_selftest 390-a-registered-suite-must-account and so does a failing one, which is the point 15;16;17;18;19 2026-10-13 part 590's reader of a producer's accounting line answers 'terminated' where it found the line
harness_selftest 390-a-registered-suite-must-account and sorts its inputs, because the runner appends them in SUITES order 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and the excused one is not named as a failure 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account and the headline a reader sees is that number 15;16;17;18;19 never -
Expand All @@ -964,9 +967,6 @@ harness_selftest 390-a-registered-suite-must-account equal sets reconcile 15;16;
harness_selftest 390-a-registered-suite-must-account every registered suite has a file 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account nor no for every one of them 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account opposite errors do not cancel: both directions are reported 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account premise: a lib.sh accounting line is seen by the narrow reader 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account premise: a private tally is NOT seen by the narrow reader 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account premise: and a log with neither is seen by neither 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account premise: and produced exactly one accounting line to be read 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account premise: and so is the wide reader it is paired with 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account premise: and that count excludes the definition line, which mentions it 15;16;17;18;19 never -
Expand Down Expand Up @@ -1001,7 +1001,7 @@ harness_selftest 390-a-registered-suite-must-account the identity catches comm r
harness_selftest 390-a-registered-suite-must-account the own-mechanism difference names the suite the readers disagree about 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account the partition over the real suite list adds up 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account the population partitions, and prints inputs == sum(buckets) 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account the reader accepts the line the producer actually emits 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account the reader accepts the line the producer actually emits 15;16;17;18;19 2026-10-13 part 590's reader of a producer's accounting line answers 'terminated' where it found the line
harness_selftest 390-a-registered-suite-must-account the reader does not answer yes for every registered suite 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account the reconciliation prints inputs == sum(buckets) 15;16;17;18;19 never -
harness_selftest 390-a-registered-suite-must-account the record cannot introduce a suite the source never declared 15;16;17;18;19 never -
Expand Down Expand Up @@ -1509,14 +1509,14 @@ harness_selftest 530-a-record-must-name-its-major premise: the runner defines th
harness_selftest 530-a-record-must-name-its-major the runner calls the reader over every suite's log 15;16;17;18;19 never -
harness_selftest 530-a-record-must-name-its-major the word in a REASON is not a record that names no major 15;16;17;18;19 never -
harness_selftest 540-an-arm-must-carry-its-measurement a comment quoting an arm is not an instance of one 15;16;17;18;19 2026-09-24 whole-line comments read as code again, so a comment QUOTING a recorder call is swept as an instance of it
harness_selftest 540-an-arm-must-carry-its-measurement a new arm that cannot say what it measured is refused by name 15;16;17;18;19 never -
harness_selftest 540-an-arm-must-carry-its-measurement a repaired arm must have its row removed, so the list only shrinks 15;16;17;18;19 never -
harness_selftest 540-an-arm-must-carry-its-measurement control: a determinate or carrying arm is not swept up 15;16;17;18;19 never -
harness_selftest 540-an-arm-must-carry-its-measurement control: a determinate or carrying awk arm is not swept up 15;16;17;18;19 never -
harness_selftest 540-an-arm-must-carry-its-measurement a new arm that cannot say what it measured is refused by name 15;16;17;18;19 2026-10-12 part 540's awk sweep never reports an indeterminate verdict (the print guarded by 0);part 540's awk_determinate treats a comparison against > 0 as indeterminate (return 1 made return 0);part 540's sweep stops skipping arms whose text ends in $ (the awk 'if (arms ~ /\$/) next' made 'if (0) next')
harness_selftest 540-an-arm-must-carry-its-measurement a repaired arm must have its row removed, so the list only shrinks 15;16;17;18;19 2026-10-12 part 540's awk sweep never reports an indeterminate verdict (the print guarded by 0);part 540's sweep stops skipping arms whose text ends in $ (the awk 'if (arms ~ /\$/) next' made 'if (0) next')
harness_selftest 540-an-arm-must-carry-its-measurement control: a determinate or carrying arm is not swept up 15;16;17;18;19 2026-10-12 part 540's sweep stops skipping arms whose text ends in $ (the awk 'if (arms ~ /\$/) next' made 'if (0) next')
harness_selftest 540-an-arm-must-carry-its-measurement control: a determinate or carrying awk arm is not swept up 15;16;17;18;19 2026-10-12 part 540's awk sweep never reports an indeterminate verdict (the print guarded by 0);part 540's awk_determinate treats a comparison against > 0 as indeterminate (return 1 made return 0)
harness_selftest 540-an-arm-must-carry-its-measurement control: the carve-outs hold and the innocent arm above the helper is not named 15;16;17;18;19 2026-09-24 else echo 0; fi)` is invisible again (mutation B, the same-line recorder conjunct removed from the `[` rule, reddens the SAME two arms -- they are not independent); then echo 1;the shell if/then/else spelling removed from the matcher, so `$(if [ C ]
harness_selftest 540-an-arm-must-carry-its-measurement control: the sweep sees a shell if/then/else that discards its operand 15;16;17;18;19 2026-09-24 else echo 0; fi)` is invisible again (mutation B, the same-line recorder conjunct removed from the `[` rule, reddens the SAME two arms -- they are not independent); then echo 1;the shell if/then/else spelling removed from the matcher, so `$(if [ C ]
harness_selftest 540-an-arm-must-carry-its-measurement control: the sweep sees a threshold arm and a floor arm 15;16;17;18;19 never -
harness_selftest 540-an-arm-must-carry-its-measurement control: the sweep sees an awk verdict that discards its operands 15;16;17;18;19 never -
harness_selftest 540-an-arm-must-carry-its-measurement control: the sweep sees a threshold arm and a floor arm 15;16;17;18;19 2026-10-12 part 540's sweep stops skipping arms whose text ends in $ (the awk 'if (arms ~ /\$/) next' made 'if (0) next')
harness_selftest 540-an-arm-must-carry-its-measurement control: the sweep sees an awk verdict that discards its operands 15;16;17;18;19 2026-10-12 part 540's awk sweep never reports an indeterminate verdict (the print guarded by 0);part 540's awk_determinate treats a comparison against > 0 as indeterminate (return 1 made return 0)
harness_selftest 540-an-arm-must-carry-its-measurement premise: the comment fixture quotes a whole recorder call, not a fragment 15;16;17;18;19 never -
harness_selftest 540-an-arm-must-carry-its-measurement premise: the sweep read the corpus and classified arms in it 15;16;17;18;19 never -
harness_selftest 550-a-header-edit-must-rebuild and the dependency files are ignored, so a built tree is still clean 15;16;17;18;19 never -
Expand Down Expand Up @@ -1594,14 +1594,14 @@ harness_selftest 580-a-hand-rebuild-must-record the hand rebuild tool records wh
harness_selftest 580-a-hand-rebuild-must-record the recorder refuses when it is not told what was installed 15;16;17;18;19 2026-09-23 the argument guard removed from pgc_record_source_stamp
harness_selftest 580-a-hand-rebuild-must-record the stack canary object is exempt, whatever the architecture calls it 15;16;17;18;19 2026-10-12 pgc_symbol_is_toolchain deleted from the real lib.sh;the symbol exemption matches nothing, so every toolchain name rebuild.sh has always ignored is reported as an unresolved symbol
harness_selftest 580-a-hand-rebuild-must-record without the exemption it refuses EARLIER, naming the missing function 15;16;17;18;19 2026-09-25 rebuild.sh's fail-closed assertion is removed, so a missing exemption function leaves the undefined list empty and the check reports success
harness_selftest 590-a-declared-suite-must-account a completed suite still reads as having reached its summary 15;16;17;18;19 never -
harness_selftest 590-a-declared-suite-must-account a completed suite still reads as having reached its summary 15;16;17;18;19 2026-10-13 part 590's reader of a producer's accounting line answers 'terminated' where it found the line
harness_selftest 590-a-declared-suite-must-account a suite that DID reach its summary is not given a second one 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 a suite that never reached its summary is given the accounting it owes 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 a terminated suite reads as terminated, not as a completed one 15;16;17;18;19 2026-09-23 pgc_log_shows_accounting folded back to two values, so a terminated log reads as a completed one
harness_selftest 590-a-declared-suite-must-account and a log with no accounting still reads as none 15;16;17;18;19 never -
harness_selftest 590-a-declared-suite-must-account and a log with no accounting still reads as none 15;16;17;18;19 2026-10-13 part 590's narrow reader answers yes where it found no accounting line
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 never -
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 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
Expand Down
25 changes: 24 additions & 1 deletion test/check_ledger_budget.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1347,4 +1347,27 @@ suites_not_covered 247
# never 1700 + 5 = 1705
# dated 272 + 7 = 279
# 1705 + 279 == 1984
checks_never_observed_red 1705
#
# #1236 follow-up (parts 540 and 590): 1705 -> 1684. Six mutations of part 540's
# sweep and part 590's readers, each run on all five majors, merged one log at a
# time with --mutation and --target. They date 21 existing checks: 6 in part 540,
# 3 in part 590 and 12 in part 390, which 590's mutations also redden. The logs
# were run on c1e253f; between it and this base, test/selftest/{390,540,590}*
# are unchanged and lib.sh changed only in pgc_skip's pyarrow branch, which
# these parts do not read. All 21 names exist in a clean run on #1286's tree.
# The logs also carried three names #1284 had since renamed (190 x1, 570 x2);
# merge added them back as never rows and they were removed again, as #1284 did.
# orphan-scan against that clean run: orphans=0.
#
# ledger rows 1984 + 0 = 1984
# never 1705 - 21 = 1684
# dated 279 + 21 = 300
# 1684 + 300 == 1984
#
# Of the 21, three were 'premise:' checks in part 390 that a 590 mutation
# reddened; by #1236 they are arms, so the prefix was dropped (OffgridwithJD's
# review of #1313). The old-name rows were removed and the new names dated from
# 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
Loading
Loading