Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 20 additions & 13 deletions tests/qemu/facility_defects.sh
Original file line number Diff line number Diff line change
Expand Up @@ -579,14 +579,24 @@ rms-dirfind-exact-version-ignored"
# scoping out.
# ---------------------------------------------------------------------------
SCOPE_OUT_UNIT_DIRS=""
SCOPE_OUT_SUITES=""
SCOPE_OUT_SUITES="test_syssvc_ssh_kex"

scope_out_why() {
cat <<'EOF'
(none) -- vms-165 retired the vmsfs.ko VFS driver, which owned the only
executive-independent suites this gate scoped out. Every derived suite now
exercises an executive facility (the vms.ko lock manager / ASTs / event flags /
access modes / Files-11 ACP), so there is nothing to declare out of scope.
test_syssvc_ssh_kex -- a full OpenSSH end-to-end ACCEPTANCE test (its own header:
"THE Rule-9 acceptance for the OpenSSH-on-veneer arc", vms-22a), not a
single-facility negative control. A veneer-linked `ssh` runs a REAL SSH key
exchange + pubkey auth + remote command against a stock in-guest `sshd` over the
BSD-sockets veneer (ovmx_socket/ovmx_connect -> BGn: -> $QIO -> host loopback),
and can EXIT_SKIP when no executive is present. It has NO isolatable single-site
injection: runtime-MEASURED, it does not redden under bg-recv-length-zeroed (it
does not use the classic vms_ioctl_bg_recv path) NOR under bgsock-recv-length-
zeroed (both reddened exactly their own suites, ssh_kex stayed green) -- OpenSSH's
own framing + retries absorb a single recv-length fault, so no per-facility defect
turns it red honestly. Its value is as an integration acceptance test, kept and
run; it is simply not a per-facility negctl target, so it is declared out of the
coverage gate rather than carried as a fake anchor (INV-6). Prior state: it was
named ONLY by bg-recv-length-zeroed, whose claim over it was stale/non-reddening.
EOF
}

Expand Down Expand Up @@ -6271,21 +6281,18 @@ EOF
bg-recv-length-zeroed)
case "$_f" in
facility) echo "INET pseudo-device BGn: -- the IO\$_READVBLK (recv) handler of the executive-resident BGn: driver (vms_ioctl_bg_recv, src/kernel/vms_bg.c, vms-527). The first network facility: a VMS program \$ASSIGNs TCPIP\$DEVICE:, \$QIOs connect/send/recv/close to a TCP peer, and the socket lives IN the executive (host in-kernel socket API), not in userspace.";;
targets) echo "kernel/vms_bg.c";;
suites_red) echo "test_syssvc_bg_echo test_syssvc_ssh_kex";;
targets) echo "kernel-core/vms_bg.c";;
suites_red) echo "test_syssvc_bg_echo";;
blind_suites) echo "";;
blind_why) echo "";;
isolation) echo "isolated";;
why) echo "vms_ioctl_bg_recv() reports the received byte count as 0 instead of the count the host kernel's kernel_recvmsg returned, so the echo comes back with a zero IOSB byte count (and the userspace wrapper then copies 0 bytes out). The read still returns SS\$_NORMAL -- a completed recv of nothing is not an error to the driver -- so only the byte-exact echo assertion sees it. One assignment zeroed.";;
why) echo "vms_ioctl_bg_recv() reports the received byte count as 0 instead of the count the host kernel's kernel_recvmsg returned, so the echo comes back with a zero IOSB byte count (and the userspace wrapper then copies 0 bytes out). The read still returns SS\$_NORMAL -- a completed recv of nothing is not an error to the driver -- so only the byte-exact echo assertion sees it. One assignment zeroed. NOTE (vms-387): test_syssvc_ssh_kex was previously named here as a knock-on, but runtime measurement shows it does NOT redden under this defect -- its OpenSSH veneer rides ovmx_socket, not this classic vms_ioctl_bg_recv path, and OpenSSH's own framing absorbs a single recv-length fault. That stale/fake claim is removed; ssh_kex is a full E2E acceptance test declared in SCOPE_OUT_SUITES rather than carried as a fake anchor.";;
require_fail) cat <<'EOF'
BG $QIO IO$_READVBLK returns the exact bytes the echo peer sent back
EOF
;;
knock_on_fail) cat <<'EOF'
the remote command output came back BYTE-EXACT over the veneer (real KEX proven)
EOF
;;
knock_on_why) echo "test_syssvc_ssh_kex drives the veneer-linked OpenSSH ssh through a REAL SSH KEX + session over BGn:; ssh's packet reads bottom out in this same vms_ioctl_bg_recv. Zeroing the recv count makes ssh read EOF mid-handshake, so the session never completes and OVMX_SSH_OK never returns -- the one-assignment fault reddens the KEX proof as a knock-on of the byte-count echo assertion.";;
knock_on_fail) echo "";;
knock_on_why) echo "";;
esac;;

tcpip-ftp-get-length-dropped)
Expand Down
1 change: 0 additions & 1 deletion tests/qemu/test_syssvc_ssh_kex.c
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,6 @@ int main(void)
"veneer-linked ssh completed the SSH handshake + session (exit 0)");
CHECK(!saw_afunix,
"NO AF_UNIX socket fd in the ssh process during the handshake -- the socketpair pump is EXCISED; bytes ride the executive seam, not a fabricated Unix socket (vms-9ac)");
/* negctl: bg-recv-length-zeroed */
CHECK(strstr(buf, "OVMX_SSH_OK") != NULL,
"the remote command output came back BYTE-EXACT over the veneer (real KEX proven)");
if (strstr(buf, "OVMX_SSH_OK") == NULL) {
Expand Down
Loading