vmm_tests_run: cleanup and multi suite support#3420
Merged
tjones60 merged 7 commits intomicrosoft:mainfrom May 6, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Refactors vmm_tests_run to discover and resolve required artifacts across multiple nextest rust suites, while also centralizing shared artifact metadata and adding options around nextest profile selection and prepped-VHD reuse.
Changes:
- Reworked artifact discovery to parse all
cargo nextest listrust suites and resolve artifact IDs from shared Rust types/constants instead of ad-hoc JSON/string mapping. - Moved shared artifact serialization and Azure blob metadata into common crates, updating download/resolver code to consume the shared definitions.
- Added pipeline/runtime controls for nextest CI profile selection and optional reuse of prepped VHDs, plus matching nextest profile configuration.
Reviewed changes
Copilot reviewed 17 out of 18 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| xtask/src/tasks/guest_test/download_image.rs | Switches image download code to shared storage-account/container constants. |
| vmm_tests/vmm_test_images/src/lib.rs | Re-exports shared blob-storage constants for test-image consumers. |
| vmm_tests/prep_steps/src/main.rs | Adds optional reuse of already-prepped VHDs via environment variable. |
| vmm_tests/petri_artifacts_vmm_test/src/lib.rs | Defines shared Azure blob storage constants in artifact metadata crate. |
| vmm_tests/petri_artifact_resolver_openvmm_known_paths/src/lib.rs | Refactors known-artifact resolution to use KnownTestArtifacts directly. |
| petri/src/test.rs | Switches artifact list output to shared struct/string serialization. |
| petri/petri_artifacts_core/src/lib.rs | Adds shared ArtifactListOutput and string serialization for erased artifact handles. |
| petri/petri_artifacts_core/Cargo.toml | Adds serde dependency needed for shared artifact-list structs. |
| flowey/flowey_lib_hvlite/src/lib.rs | Removes the old artifact-to-build mapping module export. |
| flowey/flowey_lib_hvlite/src/init_vmm_tests_env.rs | Threads prepped-VHD reuse into the VMM test environment setup. |
| flowey/flowey_lib_hvlite/src/download_openvmm_vmm_tests_artifacts.rs | Reuses shared blob-storage constants during artifact downloads. |
| flowey/flowey_lib_hvlite/src/artifact_to_build_mapping.rs | Deletes the old artifact-mapping implementation and its tests. |
| flowey/flowey_lib_hvlite/src/_jobs/local_build_and_run_nextest_vmm_tests.rs | Adds nextest-profile and prepped-VHD reuse parameters to the local VMM test job. |
| flowey/flowey_lib_hvlite/src/_jobs/consume_and_test_nextest_vmm_tests_archive.rs | Updates archive-consumption job to pass the new prepped-VHD reuse parameter. |
| flowey/flowey_hvlite/src/pipelines/vmm_tests_run.rs | Rewrites the pipeline to support multi-suite discovery, inline artifact resolution, and new CLI options. |
| flowey/flowey_hvlite/Cargo.toml | Adds artifact crates needed by the inlined resolver logic. |
| .config/nextest.toml | Adds default-profile timeout overrides for VMM test packages. |
Comments suppressed due to low confidence (1)
flowey/flowey_lib_hvlite/src/lib.rs:1
- Removing this public module changes the exported API of
flowey_lib_hvlite. If downstream code importsflowey_lib_hvlite::artifact_to_build_mapping, this becomes a hard breaking change with no deprecation shim or migration path in the crate surface.
// Copyright (c) Microsoft Corporation.
smalis-msft
reviewed
May 4, 2026
smalis-msft
reviewed
May 4, 2026
smalis-msft
reviewed
May 4, 2026
smalis-msft
reviewed
May 5, 2026
smalis-msft
approved these changes
May 6, 2026
chris-oo
approved these changes
May 6, 2026
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.
This change refactors vmm-tests-run to improve readability and maintainability, while also fixing an issue where requirements for tests outside of the vmm_tests crate where lot detected. (This was causing tmk tests to fail).
Some highlights:
cargo nextest listJSON output to fix mentioned bug.--list-required-artifactsinstead of manually parsing the data. Use theGLOBAL_UNIQUE_IDconstant when serializingErasedArtifactHandleand for comparison when parsing the output on the other side so that the compiler enforces their existence rather than having arbitrary strings the must match.