Problem
The report table format has 4 conditional column groups (CPU, Allocs, Alloc Bytes, Frees, Free Bytes) producing 8 distinct column combinations. The alignment test (format_table_columns_aligned) covers 5 of 8: base, cpu-only, alloc-only, free-only, and all.
Missing combinations:
- CPU + Alloc (no Free)
- CPU + Free (no Alloc)
- Alloc + Free (no CPU)
The columns are independent push_str calls so they are likely correct by construction, but this is unproven. The same gap exists in the diff table format.
Discovered during systematic debugging of the error handling spec gap that permitted 7 manifest bugs to survive the CBC rewrite.
Scope
- Add 3 missing column combinations to
format_table_columns_aligned
- Add equivalent alignment test for diff table format
- Add alignment test for
format_per_thread_tables
- Map all report format tests to enumerated spec claims (like the runtime spec)
Context
The report layer has 66 tests but no formal enumeration matrix. The error handling layer had 1 test covering 7 bugs -- that gap was closed with a 16-cell proof matrix in PR #607. The report layer needs the same treatment.
Problem
The report table format has 4 conditional column groups (CPU, Allocs, Alloc Bytes, Frees, Free Bytes) producing 8 distinct column combinations. The alignment test (
format_table_columns_aligned) covers 5 of 8: base, cpu-only, alloc-only, free-only, and all.Missing combinations:
The columns are independent
push_strcalls so they are likely correct by construction, but this is unproven. The same gap exists in the diff table format.Discovered during systematic debugging of the error handling spec gap that permitted 7 manifest bugs to survive the CBC rewrite.
Scope
format_table_columns_alignedformat_per_thread_tablesContext
The report layer has 66 tests but no formal enumeration matrix. The error handling layer had 1 test covering 7 bugs -- that gap was closed with a 16-cell proof matrix in PR #607. The report layer needs the same treatment.