fix(ci): two blind-window reds — faithful GETSYI VERSION pad + RC3.EXE parity (vms-a5d, vms-431) - #877
Merged
Conversation
…E parity (vms-a5d, vms-431)
Two CI gates whose checks never ran at merge (YAML-broken-CI blind window).
Each fix makes the gate assert the CORRECT current product behavior; neither
weakens, allowlists-out, or deletes a gate (INV-6).
RED 2 (vms-a5d) — tests/dcl/test_lexical_getsyi.sh:
F$GETSYI("VERSION") now emits the FAITHFUL fixed 8-char space-padded
SYI$_VERSION field ("V9.2-3 "), landed by #866/vms-28a
(ovmx_compat_version_field, OVMX_VMS_VERSION_FIELD_LEN=8). The old regex
required the closing quote immediately after the version, so the faithful
trailing pad failed it. Updated to (1) assert the version VALUE is well-formed,
tolerating the pad, and (2) POSITIVELY assert the field is exactly 8 chars
wide (regex X = "[^"]{8}") — the padding is the point, so the test asserts it
rather than ignoring it. Value assertion + EXPECT_NOT V7.3/%DCL- preserved.
Verified: built DCL.EXE emits `X = "V9.2-3 "`; harness reports
`PASS: F$GETSYI returns system information`. A mis-padded 7-char field is
still rejected (teeth intact). Connects to vms-f5d.
RED 3 (vms-431) — tools/parity/image-parity-allowlist.json:
RC3.EXE (the x86_64 DCL $STATUS-propagation RUN fixture, #853/vms-707) is a
LINK.EXE-built VMS-native image (zero DT_NEEDED/DT_HASH, PT_INTERP=IMGACT.EXE)
staged into SYS$SYSTEM: so `RUN SYS$SYSTEM:RC3.EXE` exercises the reworked
IMGACT.EXE-over-ACP RUN path. It is legitimately x86_64-only: VAX activates
images via NetBSD's own ld.elf_so (Decision A, vms-42d) — the same reason
IMGACT.EXE itself is already allowlisted — and no VAX test references RC3
(it appears only under tests/qemu/). Added a Decision-A allowlist entry with
that documented reason; did NOT blind-allowlist.
Verified: parity gate suite 17/17 pass; x86_64_only == set(); RC3.EXE shows
in allowlisted_x86_64_only. Gate teeth proven by test_unallowlisted_gap_fails.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two CI gates whose checks never ran at merge (the YAML-broken-CI blind window). Both fixes make the gate assert the correct current product behavior — neither weakens, allowlists-out, or deletes a gate (INV-6).
RED 2 —
test_lexical_getsyi(vms-a5d)F$GETSYI("VERSION")now emits the faithful fixed 8-char space-paddedSYI$_VERSIONfield ("V9.2-3 "), landed by #866/vms-28a (ovmx_compat_version_field,OVMX_VMS_VERSION_FIELD_LEN=8). The old regex required the closing quote immediately after the version, so the faithful trailing pad failed it.Change (
tests/dcl/test_lexical_getsyi.sh): (1) assert the version VALUE is well-formed, tolerating the pad; (2) positively assert the field is exactly 8 chars wide (regex:X = "[^"]{8}"). Value assertion +EXPECT_NOT V7.3/%DCL-preserved.Proof: built
DCL.EXEemitsX = "V9.2-3 "; harness reportsPASS: F$GETSYI returns system information. A mis-padded 7-char field is still rejected (teeth intact). Connects to vms-f5d.RED 3 — Cross-Arch Image Parity / RC3.EXE (vms-431)
RC3.EXE(the x86_64 DCL$STATUS-propagation RUN fixture, #853/vms-707) is a LINK.EXE-built VMS-native image (zeroDT_NEEDED/DT_HASH,PT_INTERP=IMGACT.EXE) staged intoSYS$SYSTEM:soRUN SYS$SYSTEM:RC3.EXEexercises the reworked IMGACT.EXE-over-ACP RUN path. It is legitimately x86_64-only: VAX activates images via NetBSD's ownld.elf_so(Decision A, vms-42d) — the same reasonIMGACT.EXEitself is already allowlisted — and no VAX test references RC3 (it appears only undertests/qemu/).Change (
tools/parity/image-parity-allowlist.json): added a Decision-A allowlist entry with that documented reason. Not a blind-allowlist.Proof: parity gate suite 17/17 pass;
x86_64_only == set();RC3.EXEshows inallowlisted_x86_64_only. Gate teeth proven bytest_unallowlisted_gap_fails.🤖 Generated with Claude Code