Skip to content

OpenVMM VMM test: enable openvmm_linux_x64_boot #83

Description

Goal

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

Coverage added

Adds the canonical Linux-direct boot, pipette connection, clean guest poweroff, and VMM teardown smoke test used by upstream.

Source: openvmm\vmm_tests\vmm_tests\tests\tests\multiarch.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, the packaged Linux-direct test kernel/initrd, and a locally built pipette guest agent. These are handled by cargo xflowey vmm-tests-run; 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_linux_x64_boot) 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_linux_x64_boot is executed, not skipped, on Linux/KVM.
  • The exact test openvmm_linux_x64_boot is executed, not skipped, on Linux/MSHV.
  • The exact test openvmm_linux_x64_boot 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

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions