Skip to content

fix(ci): two blind-window reds — faithful GETSYI VERSION pad + RC3.EXE parity (vms-a5d, vms-431) - #877

Merged
baron-3dl merged 1 commit into
mainfrom
work/blind-window-red-fixes
Aug 28, 2026
Merged

baron-3dl merged 1 commit into
mainfrom
work/blind-window-red-fixes

Conversation

@baron-3dl

Copy link
Copy Markdown
Contributor

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).

Note: RED 1 (DLM Harness H0 / vms-dae) is intentionally not in this PR — the H5 DLM-wire PR #875 already fixes H0's stale DEQ probe in its own domain.

RED 2 — test_lexical_getsyi (vms-a5d)

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.

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.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 — 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 (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/).

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.EXE shows in allowlisted_x86_64_only. Gate teeth proven by test_unallowlisted_gap_fails.

🤖 Generated with Claude Code

…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>
@baron-3dl
baron-3dl merged commit 3f18370 into main Aug 28, 2026
105 checks passed
@baron-3dl
baron-3dl deleted the work/blind-window-red-fixes branch August 28, 2026 23:06
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