test(issue-42): review R2 - a passthrough code must be in the exit table

raised == passthrough forced the declaration, but nothing checked the
declared code against the table: dropping create's exit 4 from both the
table and the data still passed. Assert passthrough <= table codes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
GodopuandClaude Opus 5.5 committed 2026-10-03 14:10:59 +00:00
1 parent e6a46cd7c4
commit 8d26106195
1 file changed
+2
+2
View File
@@ -152,6 +152,8 @@ def test_exit_table_agrees_with_script(script):
raised = _scan_exits(script)[1]
assert {c: f"{script}:{n}" for c, n in raised.items()} == passthrough, \
f"{script}: SystemExit codes in heredocs {raised} must be declared as passthrough (and in the table)"
assert set(passthrough) <= numeric, \
f"{script}: passthrough codes {sorted(set(passthrough) - numeric)} missing from the exit table"
assert numeric <= literal | set(passthrough), \
f"table codes {sorted(numeric - literal - set(passthrough))} come from nowhere in {script}"
for code, ref in passthrough.items():