Skip to content

verify: drop dangling pathB_stream fixture entry + fail loud on missing files#75

Merged
mdheller merged 1 commit into
mainfrom
fix/verify-fixtures-drop-stale-pathb-stream
Jul 4, 2026
Merged

verify: drop dangling pathB_stream fixture entry + fail loud on missing files#75
mdheller merged 1 commit into
mainfrom
fix/verify-fixtures-drop-stale-pathb-stream

Conversation

@mdheller

@mdheller mdheller commented Jul 4, 2026

Copy link
Copy Markdown
Member

Problem

tools/verify_fixtures_strict.py's sets list referenced ("vectors_hex_pathB_stream.txt", "…​.nonces"), but fixtures/vectors_hex_pathB_stream.txt does not exist and verify_file() silently returned on the missing path — so that lane was never verified and the gap was invisible (no CI failure).

Decision: remove the entry (option b), not generate vectors (option a)

Evidence the lane isn't real:

  • Never existed — absent from all of git history (git log --all empty); the sets entry has been a dangling no-op since the repo was assembled.
  • Not a documented contract — the only reference to pathB_stream anywhere is that one sets line. Path-B (docs/THEORY.md §5) is a ternary payload-encoding axis compatible with the same envelope/AEAD; streaming is a separate axis already covered by vectors_hex_stream_avrochunk/avronested.
  • No in-repo generator — frames carry BLAKE2b-MAC tags produced out-of-repo. Fabricating self-consistent frames (option a) would cross-check against nothing and fake coverage.

Changes

  1. Remove the stale pathB_stream sets entry.
  2. verify_file now fails (exit 2) with a clear message when a listed fixture/nonces file is missing, instead of silently skipping — so future dangling references surface in CI immediately.

Verification

  • verify_fixtures_strict.py[OK] All fixture AEAD tags verified, exit 0.
  • Fail-loud path confirmed to exit non-zero on a missing file.
  • make verify → exit 0 (all lanes real).

…ng files

verify_fixtures_strict.py's `sets` list referenced
("vectors_hex_pathB_stream.txt", ...), but that fixture NEVER existed (absent
from all of git history) and is not a real contract: Path-B (THEORY.md §5) is a
ternary payload-encoding axis, not a streaming lane — streaming is covered by the
avro stream fixtures (avrochunk/avronested). There is no in-repo generator, so
manufacturing self-consistent-but-meaningless frames would only fake coverage.
`verify_file` silently `return`ed on the missing file, so this lane was never
verified and the gap was invisible.

- Remove the stale pathB_stream entry (reflects reality: no such lane).
- Make verify_file FAIL (exit 2) instead of silently skipping when a listed
  fixture/nonces file is missing, so future dangling references surface in CI
  immediately rather than becoming silent no-ops.

All remaining lanes have real files; `make verify` stays green (exit 0).
@mdheller mdheller merged commit 80b8c05 into main Jul 4, 2026
8 checks passed
@mdheller mdheller deleted the fix/verify-fixtures-drop-stale-pathb-stream branch July 4, 2026 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant