ci: run OpenVMM workspace unit tests - #130
Merged
Merged
Conversation
Expose a test-openvmm-unit command through the NVX CLI that runs the OpenVMM workspace tests with cargo-nextest's agent profile and ci feature. Discover fuzz crates through cargo xtask and exclude them alongside packages that require specialized test harnesses. Stop with actionable diagnostics if fuzz-crate discovery fails before starting nextest. Document the new command and add coverage for CLI parsing, command construction, dynamic exclusions, and failure handling.
Run test-openvmm-unit --help during NVX CLI validation on both Linux and Windows. This verifies that the command remains registered and importable without executing the full OpenVMM unit-test suite as part of the lightweight CLI validation action.
Copilot started reviewing on behalf of
Pedro Henrique Penna (ppenna)
September 19, 2026 18:44
View session
Contributor
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The implementation is consistent, tested, documented, and correctly integrated across supported CI platforms.
Review effort: Balanced
Findings: None
What changed in this PR
Adds OpenVMM workspace unit testing to the NVX CLI and backend CI matrix.
Changes:
- Adds
test-openvmm-unitwith fuzz and specialized-crate exclusions. - Runs the suite across Linux KVM/MSHV and Windows WHP jobs.
- Adds CLI, failure-handling, workflow, and documentation coverage.
| File | Description |
|---|---|
scripts/nvx.py |
Registers the new CLI command. |
scripts/nvx_tools/ci.py |
Builds and executes the nextest command. |
scripts/test_nvx_tools.py |
Tests parsing, exclusions, failures, and CI wiring. |
.github/workflows/ci.yml |
Runs unit tests in each backend lane. |
.github/actions/validate-nvx/action.yml |
Validates the CLI entry point cross-platform. |
doc/usage.md |
Documents the command and behavior. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Invoke the test-openvmm-unit target from the existing OpenVMM test matrix before running the microVM integration tests. Run the unit suite on both Linux matrix entries to validate the KVM and MSHV runner environments, and run it separately on the Windows WHP runner. Reuse the existing OpenVMM checkout, Cargo caches, and sccache configuration for each backend.
Explicitly install perl-FindBin, perl-IPC-Cmd, perl-Time-Piece, and perl-lib in both the generic Linux runner and MSHV setup paths. Azure Linux packages these core modules separately, and vendored OpenSSL compilation fails during OpenVMM unit-test builds when they are unavailable. Keep the Perl metapackage while listing the required modules directly so new and partially provisioned hosts converge on the same build environment. Add regression coverage to ensure both Linux setup scripts retain the required OpenVMM Perl dependencies.
Pedro Henrique Penna (ppenna)
force-pushed
the
feat-openvmm-unittests
branch
from
September 19, 2026 19:22
14d7343 to
01bef9f
Compare
Copilot started reviewing on behalf of
Pedro Henrique Penna (ppenna)
September 19, 2026 19:23
View session
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
test-openvmm-unitCLI command that runs OpenVMM workspace tests with cargo-nextest'sagentprofile andcifeatureWhy
This makes OpenVMM workspace unit coverage part of NVX's existing per-backend CI while reusing the current checkout, Cargo caches, and sccache setup. The lightweight CLI validation checks registration without executing the full suite.