Skip to content

ci: enable WHP FreeBSD PCAT ISO boot test - #162

Merged
Pedro Henrique Penna (ppenna) merged 1 commit into
devfrom
enable-whp-freebsd-pcat-iso
Sep 21, 2026
Merged

Pedro Henrique Penna (ppenna) merged 1 commit into
devfrom
enable-whp-freebsd-pcat-iso

Conversation

@ppenna

@ppenna Pedro Henrique Penna (ppenna) commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • enable multiarch::openvmm_pcat_x64_freebsd_13_2_x64_iso_boot_no_agent in the WHP VMM lane
  • remove only its anchored exact exclusion
  • keep both Windows PCAT cases excluded

No OpenVMM pin change is required.

Validation

  • 247 NVX tests passed with 1 expected skip
  • 4 host-inventory tests passed
  • 21 Specula CI tests passed on Linux
  • Ruff and Pyright passed for Linux and Windows
  • focused bare-metal WHP test:
    • fresh cache: 95.284s
    • warm cache: 67.263s
  • complete WHP VMM lane: 27/27 passed in 107.000s
    • FreeBSD PCAT ISO boot: 89.076s

Related: #135

CI runner prerequisite

The required virtual WHP lane failed before VM creation because the runner image enabled HypervisorPlatform but not Microsoft-Hyper-V. Consequently, vmfirmwarepcat.dll/vmfirmware.dll and VmEmulatedDevices.dll were absent from System32.

The passing bare-metal host has full Hyper-V enabled and all three in-box firmware files. This PR now:

  • enables Microsoft-Hyper-V during runner-only provisioning;
  • validates the PCAT and SVGA firmware during setup;
  • fails runner validation early when the firmware is absent;
  • documents the additional runner prerequisite.

The existing Windows runner pool must be reprovisioned and rebooted with the updated setup script before the PCAT lane can pass.

Copilot AI balanced review requested due to automatic review settings September 21, 2026 13:34

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 test should explicitly verify that both Windows PCAT exclusions remain.

Get a fresh assessment by requesting another Copilot review.

Review effort: Balanced
Findings: 1 Medium severity

Open (1)
What changed in this PR

Enables the FreeBSD 13.2 PCAT ISO boot test in the WHP CI lane.

Changes:

  • Removes the test’s exact WHP exclusion.
  • Updates unit-test expectations for two remaining exclusions.
File Description
scripts/​nvx_tools/​ci.py Enables the FreeBSD ISO boot test.
scripts/​test_nvx_tools.py Updates WHP exclusion assertions.

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

Comment thread scripts/test_nvx_tools.py Outdated
Copilot AI review requested due to automatic review settings September 21, 2026 13: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 focused filter change is correct, exact-match behavior is preserved, and regression coverage reflects the intended exclusions.

Review effort: Balanced
Findings: None

Resolved since last review (1)

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 required virtual-machine runner validation has not yet passed, despite being an explicit acceptance criterion.

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
@@ -134,7 +134,6 @@ def _exclude_openvmm_tests(
"x86_64::openvmm_uefi_x64_windows_datacenter_core_2022_x64_battery_capacity",
)
OPENVMM_WHP_EXCLUDED_TESTS = (
@ppenna

Copy link
Copy Markdown
Contributor Author

CI root-cause resolution

The failing WHP VMM job was caused by runner provisioning, not the FreeBSD images:

  • the Azure Windows runners enabled HypervisorPlatform but not Microsoft-Hyper-V;
  • vmfirmwarepcat.dll/vmfirmware.dll and VmEmulatedDevices.dll were therefore absent from System32;
  • both FreeBSD PCAT tests failed before VM creation while locating in-box firmware.

Commit b95acc3 updates runner-only setup to enable Hyper-V, validates the PCAT/SVGA firmware during setup and job startup, and documents the prerequisite.

The updated setup was rolled through all five azure-windows-* runners. Runners 4 and 5 required restarts before the firmware payload appeared. Every runner now passes setup validation and exposes all required files.

The exact-head failed jobs were rerun successfully: https://github.com/microsoft/nvx/actions/runs/35612178865

Enable the full Microsoft Hyper-V feature for runner-only Windows WHP
hosts so OpenVMM can access the in-box PCAT and SVGA firmware.

Preserve restart requirements while enabling multiple optional features,
and validate that the required firmware DLLs are present during both
runner setup and CI runner validation.

Remove the FreeBSD 13.2 PCAT ISO boot test from the WHP exclusion list
now that its firmware dependency is available. Update configuration
tests and setup documentation to cover the new runner requirements.

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

🔵 Needs a closer look

The required virtual-machine runner has not yet passed the newly enabled test and is documented as currently lacking its prerequisites.

Review effort: Balanced
Findings: 1 Medium severity

Open (1)

@ppenna
Pedro Henrique Penna (ppenna) merged commit 717345a into dev Sep 21, 2026
43 of 46 checks passed
@ppenna
Pedro Henrique Penna (ppenna) deleted the enable-whp-freebsd-pcat-iso branch September 21, 2026 22:58
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