Skip to content

HV: add end-to-end Linux boot integration test #252

Closed

Description

@AprilNEA

Problem

virt/arcbox-vmm/src/vmm/darwin_hv/mod.rs contains ~15 unit tests covering address math, PL011, fd duplication, and MMIO overlap — but zero of them boot a guest kernel. The existing 9/9 passing E2E suite recorded in internal-docs/status.md runs against the VZ backend.

There is no documented evidence in the repo or CI history that a Linux guest has booted end-to-end on HV with the full VirtIO device set mounted, networking reaching the host, and filesystem shares accessible.

Scope

Add at least one CI-runnable integration test that:

  1. Boots a minimal Linux guest through initialize_darwin_hv() with VmBackend::Hv.
  2. Confirms network reachability (ICMP to host gateway or HTTP fetch through vmnet bridge).
  3. Confirms a VirtioFS share is mounted and at least one file readable.
  4. Confirms vsock connectivity to the in-guest agent.
  5. Cleanly shuts down (vCPU join, worker join, DAX munmap).

Not in scope (track separately if needed)

  • Performance benchmarks (ABX-289 covers VirtioFS benchmarks).
  • Rosetta x86_64 emulation path.
  • Balloon device testing (blocked by sibling sub-issue).

Files

  • tests/ — new HV integration test.
  • tests/fixtures/ — minimal kernel + initramfs if not reusable from existing boot-assets.
  • .github/workflows/ — wire into macOS CI runners.

Acceptance

  • CI runs the test on every PR touching virt/arcbox-vmm/ or virt/arcbox-virtio*.
  • Test completes in under 30s on an M-series runner.
  • Failure modes produce actionable logs (vCPU state, virtqueue state, last MMIO access).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions