Skip to content

doc: name every guest the validation suites boot - #472

Merged
Pedro Henrique Penna (ppenna) merged 1 commit into
devfrom
doc-sync/validation-guests
Oct 10, 2026
Merged

Pedro Henrique Penna (ppenna) merged 1 commit into
devfrom
doc-sync/validation-guests

Conversation

@ppenna

Copy link
Copy Markdown
Contributor

Summary

The Validation chapter said the NVX-owned microVM suite boots the "Alpine or Ubuntu" initramfs. It now also supports Azure Linux. The chapter also left out which initramfs the management-RPC test under test-openvmm uses. This PR names the guests at both test levels and links to the existing per-guest coverage instead of repeating it.

Changes

doc/design/validation.md only:

Statement Evidence
The management-RPC lifecycle, SMP, and snapshot test boots NVX's kernel and Alpine initramfs run_openvmm_tests in scripts/nvx_tools/ci.py sets OPENVMM_MICROVM_TEST_INITRD to AlpineBuildConstants.INITRAMFS_NAME. This matches the existing wording in doc/contribute.md#test-ownership.
NVX-owned process tests boot the selected Alpine, Ubuntu, or Azure Linux initramfs python scripts/nvx.py test-microvm --help offers --guest {alpine,ubuntu,azurelinux}. .github/workflows/run-nvx-microvm-tests.yml runs test-microvm --guest azurelinux on every backend.
Alpine, the only sandbox-control guest, supports every NVX-owned scenario scripts/nvx_tools/guests.py sets sandbox_control=True only for Alpine. run_microvm_tests in scripts/nvx_tools/microvm_tests.py removes scenarios only for Ubuntu (UBUNTU_UNSUPPORTED_SCENARIOS) and for guests without sandbox control (SANDBOX_CONTROL_SCENARIOS).
Ubuntu and Azure Linux reject the scenarios test-microvm lists, and their guest chapters list what CI runs Links to doc/usage.md#test-microvm, doc/guests/ubuntu-guest.md#validation, and doc/guests/azurelinux-guest.md#validation. Each matches the scenario lists in run-nvx-microvm-tests.yml.

I also checked the rest of the chapter against source, and those statements hold:

  • Harness lifecycle test: portb I/O, status shutdown, host-save and pulse-save rejection, and a snapshot request without a destination (openvmm/vmm_tests/vmm_tests/tests/tests/x86_64/microvm.rs).
  • Management-RPC test: 1/2/4/8 vCPUs only with NVX's kernel, a 512-MiB capacity, two restores, and unchanged artifacts (openvmm/vmm_tests/vmm_tests/tests/tests/ttrpc/microvm.rs).
  • Restore scenarios: restore-processors VP binding and restore-memory 512 MiB / 1 GiB / 2 GiB (scripts/nvx_tools/microvm_tests.py).

OpenVMM SHA (pinned submodule, unchanged): 7bf0ee28b826374a2d386067df0456b81bcae818, on dev at e054b2af7249f0533bdb5b88968324dc779dcc22.

I took the conservative option on scope:

Follow-ups

  • scripts/setup/README.md is contributor documentation outside doc/. Moving it means editing its links in doc/ci.md and doc/setup.md (both touched by open PRs) and the path check in scripts/test_nvx_tools.py. Leave it until those PRs land.
  • doc/openvmm-upstream-roadmap.md is a dated plan for fork tip 2728f33ea. The pinned OpenVMM is now 7bf0ee28b. It needs a deliberate refresh by its owner.
  • Suspected code issue, not changed here: unittest_results.txt is a 50-KB unittest log tracked at the repository root since the initial commit. It looks accidental.
  • Suspected code issue, not changed here: nvx.py --help describes init as "initialize the private submodule", but openvmm/ is the public nanvix/openvmm.

Validation

  • python -m unittest scripts.test_nvx_tools.CliTests scripts.test_performance.PerformanceTests: Ran 110 tests, OK (skipped=1).
  • A throwaway checker outside the repository confirmed that, in doc/design/validation.md and the 2 files that link to it, every relative link and anchor resolves. It also confirmed one H1 and balanced fences in the changed file, and that doc/design.md links every chapter in doc/design/. Result: OK.
  • git diff --check: clean.
  • python scripts/nvx.py verify: source tree and submodule metadata are consistent.
  • Every changed path matches ^(doc/|.*\.md$), so CI treats this PR as documentation-only.

The NVX-owned microVM suite boots Alpine, Ubuntu, or Azure Linux, and the
management-RPC test that test-openvmm runs uses NVX's Alpine initramfs. Say
so, and point to the scenarios each workload guest rejects and to the guest
chapters that list what CI runs on them.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 10, 2026 14:07
@ppenna Pedro Henrique Penna (ppenna) added the documentation Improvements or additions to documentation label Oct 10, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The documentation accurately matches the implementation and existing validation references.

0 open findings

What changed in this PR

Clarifies which guest initramfs each validation layer boots.

Changes:

  • Identifies Alpine as the management-RPC test guest.
  • Adds Azure Linux to NVX process-test coverage and links guest-specific validation details.
File Description
doc/​design/​validation.md Documents guest selection and scenario support.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

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

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants