Skip to content

ci: run OpenVMM workspace unit tests - #130

Merged
Pedro Henrique Penna (ppenna) merged 4 commits into
devfrom
feat-openvmm-unittests
Sep 19, 2026
Merged

Pedro Henrique Penna (ppenna) merged 4 commits into
devfrom
feat-openvmm-unittests

Conversation

@ppenna

Copy link
Copy Markdown
Contributor

Summary

  • add a test-openvmm-unit CLI command that runs OpenVMM workspace tests with cargo-nextest's agent profile and ci feature
  • discover and exclude fuzz crates alongside packages that require specialized test harnesses, with actionable failure diagnostics
  • validate the CLI entry point and run the unit suite across the Linux KVM/MSHV and Windows WHP CI jobs
  • document the command and cover CLI parsing, command construction, exclusions, and failure handling

Why

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.

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 AI balanced review requested due to automatic review settings September 19, 2026 18:44

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.

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-unit with 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.

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.

Copilot review overview

🟡 Changes recommended

The unconditional flowey_core exclusion omits existing workspace unit tests on every backend.

Get a fresh assessment by requesting another Copilot review.

Review effort: Balanced
Findings: 1 Medium severity

Open (1)

Comment thread scripts/nvx_tools/ci.py
@ppenna
Pedro Henrique Penna (ppenna) marked this pull request as ready for review September 19, 2026 19:28
@ppenna
Pedro Henrique Penna (ppenna) merged commit 5bc9700 into dev Sep 19, 2026
30 checks passed
@ppenna
Pedro Henrique Penna (ppenna) deleted the feat-openvmm-unittests branch September 19, 2026 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants