Skip to content

OpenVMM VMM test: enable openvmm_uefi_x64_guest_test_x64_crash_dump_on_triple_fault #99

Description

Goal

Enable the OpenVMM VMM test openvmm_uefi_x64_guest_test_x64_crash_dump_on_triple_fault in NVX's existing KVM, MSHV, and WHP OpenVMM test matrix.

Coverage added

Forces a UEFI guest triple fault, invokes DumpState, and verifies that OpenVMM writes a well-formed VMRS crash-state file.

Source: openvmm\vmm_tests\vmm_tests\tests\tests\x86_64.rs.

Upstream evidence

The corresponding canonical test passed on Linux/KVM, Linux/MSHV, and Windows/WHP in microsoft/openvmm workflow run 35255255183 on September 17, 2026. NVX currently executes only openvmm_microvm_test_pvh_x64_phase_1_lifecycle and test_ttrpc_microvm_pvh_snapshot; neither canonical test exists in Microsoft upstream at commit e7de393, so this issue adds complementary upstream coverage rather than duplicating the current fork-only checks.

The nanvix/openvmm version may contain additional fork behavior. Treat the first backend-complete run as canary evidence and diagnose any difference rather than weakening or silently skipping the test.

Required artifacts and prerequisites

Requires OpenVMM, mu_msvm UEFI firmware restored by Flowey, and the locally built guest_test_uefi image where applicable. No full guest-OS VHD is required.

The issue should not introduce a dependency on the multi-gigabyte Windows, Ubuntu, Alpine, or FreeBSD guest-image set used by the full upstream standard suite.

Implementation notes

  • Add test(openvmm_uefi_x64_guest_test_x64_crash_dump_on_triple_fault) to the documented selector set used by OPENVMM_MICROVM_TEST_FILTER in scripts\nvx_tools\ci.py, preserving the two existing tests.
  • Refactor the filter into named artifact-class groups if needed so future additions remain reviewable.
  • Update scripts\test_nvx_tools.py to prove the selector is present and the existing --release --ci-profile --skip-vhd-prompt behavior remains intact.
  • Ensure Flowey installs/builds the required Rust targets and artifacts on Linux and Windows without relying on preexisting runner state.
  • Reuse the shared OpenVMM input/cache work from Improve CI reliability with shared OpenVMM input caches and binary artifacts #73 and Improve CI reliability with shared OpenVMM caches and artifacts #76; cache misses must remain correct.
  • Keep the existing backend validation and failure-log upload behavior.

Acceptance criteria

  • The exact test openvmm_uefi_x64_guest_test_x64_crash_dump_on_triple_fault is executed, not skipped, on Linux/KVM.
  • The exact test openvmm_uefi_x64_guest_test_x64_crash_dump_on_triple_fault is executed, not skipped, on Linux/MSHV.
  • The exact test openvmm_uefi_x64_guest_test_x64_crash_dump_on_triple_fault is executed, not skipped, on Windows/WHP.
  • Existing fork-specific PVH lifecycle and ttrpc snapshot tests still pass on all three backends.
  • Cold-cache and warm-cache CI runs both succeed.
  • Failure logs identify the test and preserve Petri/OpenVMM diagnostics.
  • python scripts\nvx.py verify and the directly affected NVX Python tests pass.

Rollout

  • If the first matrix run exposes a fork-specific instability, land it as an explicitly visible non-blocking canary only with a linked follow-up; promote it to required coverage before closing this issue.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions