Skip to content

tests: delete the runtime adapter, its runner and its CI (SL5.2) - #1499

Draft
Pedro Henrique Penna (ppenna) wants to merge 2 commits into
feature/nvx-refactorfrom
agents/slim-sl5-2-remove-adapter
Draft

Pedro Henrique Penna (ppenna) wants to merge 2 commits into
feature/nvx-refactorfrom
agents/slim-sl5-2-remove-adapter

Conversation

@ppenna

@ppenna Pedro Henrique Penna (ppenna) commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Leaving code only. This PR changes only code that this effort removes from NVX: the test adapter (tests/runtime-adapter), its runner, and its CI jobs and gates, with the edits that remove references to it. Nothing that stays changes, and no later PR uses what it changes, so the size limits for kept code don't apply.

Part of #1119 (SL5.2, "The 44K-line test adapter is gone"). Parent #1086, umbrella #1076.

Needs SL5.1c (#1118, "Snapshots work end to end on real VMs"), which hasn't merged: this PR merges only after it, and rebases over it and over SL5.1b (#1496), which edit the same workflow, microVM harness and case matrix.

#859 (the runtime adapter's consumer-contract scenarios C2, C3, C6 and C7 on real VMs) is closed as not planned, now that #816 is rescoped; the adapter's deletion is tracked in #1119, which this PR completes.

What and why

The case matrix, doc/acceptance-case-matrix.md, gives each test of the runtime adapter a fate, and the acceptance that replaces the adapter runs on real VMs (SL5.1a to SL5.1c, #1118). So the adapter goes, consumers first:

  • CI stops building, running and gating on it (first commit).
    • ci.yml: distro-artifacts no longer builds and uploads the adapter's guest agent; the WHP job of its scenarios, nvx-microvm-adapter-whp, is gone, and the KVM and MSHV guest and sandbox jobs no longer set runtime-adapter; Required status check, Publish development release and Record performance results stop waiting for that job.
    • run-nvx-microvm-tests.yml: the runtime-adapter selector goes, with the adapter's build, download and scenario steps, and the download of the Ubuntu distro layer for the adapter alone. The default suite and the uploads of failure logs and duration reports take back the conditions that they had before that selector (73b168a).
    • check-nvx-rs no longer checks the adapter's protocol-only, host-only and guest-only configurations; validate-nvx no longer checks test-runtime-adapter --help.
    • scripts/nvx_tools/ci.py: check-required-ci no longer requires the adapter's job, and the change classifier no longer counts tests/runtime-adapter/ among the inputs of the microVM tests.
    • The tests of CI's wiring follow the matrix: the three that only checked the adapter's wiring retire, with RuntimeAdapterSuiteTests' test of the suite's CI steps; the six that stay lose their adapter parts (see Changes to existing tests).
    • doc/ci.md, doc/contribute.md, the repository instructions, the setup workflow's comment and the OpenVMM promotion skill stop describing the adapter's jobs and checks. The measurement that moved WHP's adapter scenarios to a job of their own (ci: shorten the runs that restore the VMM tests or skip both OpenVMM suites #982) goes with that job, and the paragraphs that it changed take back their wording from before it.
  • The adapter and its runner go (second commit): tests/runtime-adapter (its manifest, lockfile, README, scenarios.txt and 64 Rust sources: 68 files and 49,689 lines at f834bcb9, with 157 scenarios and 169 other tests), scripts/nvx_tools/runtime_adapter_tests.py, nvx.py's test-runtime-adapter, and RuntimeAdapterSuiteTests. check_test_changes.py no longer names the adapter's scenarios.txt as test data, .gitignore no longer ignores its target/, and the change classifier's list of modules that no benchmark job runs drops the runner. The docs stop describing the adapter: test-runtime-adapter in doc/usage.md, tests/ in doc/project-structure.md, the adapter's lockfile in doc/distribution.md, and the nvx README's and the vectors README's mentions of its configurations, excerpts and capture interfaces.
  • The case matrix keeps every fate. Its prose, and the README's index entry, say in the past tense what the deletion made past (that CI ran the adapter's scenarios, and that its README said what each proved). scripts/test-layout-allowlist.json held no entry of the adapter, so it doesn't change.
  • Nothing that stays used the adapter. It was a crate with a workspace and a lockfile of its own, and nothing in nvx-rs or in the scripts imports it.

Every removed test, and its fate

check_test_changes.py reports 304 removed tests. Each has its row in the case matrix, with its fate:

Removed tests Count Fate in the case matrix
The adapter's scenarios, tests/runtime-adapter/tests/: template_capture 3, template_operations 4, clone_start 11, host_session 26, staged_images 4, layered_launch 16, vm_restart 3, vm_steps 3, vm_template 8, vm_clone 36 114 The adapter's scenarios, one row each, under its target: 76 rewritten, 38 retired
vm_layered's 43 scenarios, which its scenarios! macro generates, so the report shows them as the removal of vm_layered.rs's module and helpers (43) vm_layered (43): 38 rewritten, 5 retired
The adapter's other tests: src/**/tests.rs 78, tests/guest_session.rs 66, tests/independent_build.rs 9, tests/initramfs.rs 4, tests/listener_client.rs 3, tests/runtime.rs 3, tests/sandbox_names.rs 1, tests/step_hook.rs 5 169 The adapter's other tests, by file: 9 rewritten, 160 retired
scripts/test_nvx_tools.py::RuntimeAdapterSuiteTests, all 16 16 CI, Python tests: retired, with the runner
scripts/test_nvx_tools.py::CiConfigurationTests: test_nvx_rs_checks_the_runtime_adapter_in_each_configuration, test_ci_change_classification_runs_microvm_tests_for_the_runtime_adapter, test_runtime_adapter_scenarios_take_a_guest_agent_that_linux_builds 3 CI, Python tests: retired, with the adapter's CI wiring
CI wiring in ci.yml: the job nvx-microvm-adapter-whp, and run-nvx-microvm-tests.yml, which ci.yml now names 9 times instead of 10 2 CI: nvx-microvm-adapter-whp retired; the adapter's steps of run-nvx-microvm-tests.yml and its three configurations of check-nvx-rs retired or rewritten as their rows say

Together, the 114 and vm_layered's 43 are the matrix's 157 rows of the adapter's scenarios, of which 114 are rewritten and 43 retired. The matrix keeps none of the adapter's tests, so no test that it keeps leaves. Each name that the report gives a removed or modified test has its row, and no row names any of them as coverage (git grep of each name in the matrix); the rows of the seven modified tests already say what this PR removes from them.

What the deletion leaves without a user

Not deleted here (SL6.x deletes providers after their consumers); listed for those slices. Each has no user outside its own module once the adapter goes, as git grep over the non-test code of nvx-rs/src shows:

Follow-ups, not in this PR

  • scripts/nvx_tools/kernel_features.py still names the adapter's tests ("the runtime adapter's clone tests", "GPT tests", "vm_layered test", and "the runtime adapter") among the validation of five kernel features, and stays unchanged here. One later PR updates every entry that names the adapter, after SL6.11b deletes guest::sys::entry's per-exec parts, which the diagnostics feature names as its consumer: that PR decides that feature's validator, today only the retired vm_layered::root_profiles_enter_the_root, and its setting, with one rebuild of the kernels, whose cache key the inventory is an input of.
  • nvx-rs/src/host/template/clone/restore.rs's rustdoc gives the test adapter as the origin of two deadlines of the old clone path; SL6.2b deletes the file.
  • scripts/local_gates.py, which exists on dev only, keeps its rules for the adapter's three check-nvx-rs steps and tests/runtime-adapter/ among its nvx-rs inputs; they go when feature/nvx-refactor merges into dev.

Size

Measured against feature/nvx-refactor f834bcb9:

  • Core lines: 9 changed, 0 new. Each of the 9 is a line that only loses the adapter's part: the five if: conditions of run-nvx-microvm-tests.yml that drop inputs.runtime-adapter, check-nvx-rs's description, the two lines of ci.py's path patterns that drop tests/runtime-adapter/ and runtime_adapter_tests, and check_test_changes.py's test-data pattern. The counted files lose 178 lines of code.
  • Counted files: 8, where the estimate says 6, all of which only lose lines: the six that the Scope names (ci.yml, run-nvx-microvm-tests.yml, check-nvx-rs, validate-nvx, ci.py, nvx.py), plus copilot-setup-steps.yml, whose comment said that check-nvx-rs checks the adapter, and check_test_changes.py, whose pattern named scenarios.txt. The 69 files that it only deletes don't count.

Commits

  1. ci: stop building, running and gating on the runtime adapter
  2. tests: delete the runtime adapter and its runner

Not in this PR

Rewriting tests that stay (SL5.1a to SL5.1c); deleting the providers above (SL6.x); the follow-ups above; changing retained VM, snapshot, CLI or library behavior; any other CI cleanup; and the later docs pass (SL6.10f), beyond the references that the deletion leaves dangling.

Validation

Locally on Windows, on this content (the rebase onto f834bcb9 changed no line of the two commits; git range-diff shows them equal):

Check Result
python -m ruff check scripts .github/specula, python -m ruff format --check scripts .github/specula passed
python -m pyright --pythonplatform Linux, --pythonplatform Windows 0 errors each
python scripts/check_markdown_links.py, python scripts/check_test_layout.py, python scripts/nvx.py check-kernel-config passed
validate-nvx's Windows step: python -m compileall -q scripts, python -m unittest of its 22 modules 1815 tests OK, 73 skipped
python scripts\test_adversarial.py, python .github\skills\nvx-host-connect\scripts\test_hosts.py, and the nvx.py --help checks 84 OK (11 skipped), 4 OK, all pass; nvx.py test-runtime-adapter --help now exits 2
The first commit alone: ruff, format, links, layout, pyright on both platforms, and python -m unittest test_nvx_tools.CiConfigurationTests test_nvx_tools.RuntimeAdapterSuiteTests test_test_changes.ClassifyTests passed; 107 tests OK, 6 skipped
nvx-rs, Rust 1.95.0, NVX_BUNDLE=skip: cargo clippy --locked -p nvx --lib --no-default-features -- -D warnings, cargo build --locked, cargo clippy --locked --all-targets --all-features -- -D warnings, cargo fmt --all --check, RUSTDOCFLAGS="-D warnings" cargo doc --locked --no-deps --all-features passed
cargo +1.89 check --locked --all-targets --all-features passed
cargo test --locked --no-default-features --test openvmm_vectors -- --ignored, --test openvmm_cpu_profiles -- --ignored 3 passed, 1 passed
cargo test --locked --all-features --lib error::tests, which reads nvx-rs/README.md 5 passed
The case matrix's reference check (below) passed

The case matrix's reference check. SL5.1a's check, a script outside the repository, verifies that each Rust test, microVM scenario, Python test class and path that a row names exists, and that the matrix has exactly one row for each of the adapter's scenarios and other tests. It read the adapter's inventory, scenarios.txt and the adapter's sources, from the checkout, which no longer has them. So the deletion forces one change on it, and only that one: the adapter's inventory, the Python tests that retire with it, and the runner that a retired row names as what leaves are read from the base revision, where they still exist. Everything else, every pointer to a test, scenario, class or path that covers a rewritten or kept test, is checked in this branch. It passes: 157 scenarios and 169 other tests of the adapter, 52 microVM scenarios and 26 CI Python tests, each with its one fate. A pointer to a missing test, a renamed scenario, and a retired test placed in a kept row each make it fail.

Dry selection.

  • local_gates.py, dev's copy, against this branch's own actions and workflows: with its three rules for the adapter's check-nvx-rs steps, it stops at "steps no longer present" for exactly those three; without them, every other scripted step of check-quality, check-nvx-rs, validate-nvx and ci.yml's CLI jobs is mapped, and it selects test-changes, markdown-links, test-layout, quality-code, openvmm-vectors, openvmm-cpu-profiles, the nvx-rs gates, nvx-cli and openvmm-ci on both systems.
  • nvx.py classify-ci-changes on this change selects every suite for pull_request, merge_group and push; on the adapter's paths alone, it now selects none.
  • nvx.py check-required-ci, fed the expected result of each job, passes for pull_request, merge_group and push; Required status check's needs equal ci.py's 31 jobs.
  • ci.yml, run-nvx-microvm-tests.yml, copilot-setup-steps.yml and both actions parse, every caller of run-nvx-microvm-tests.yml passes only inputs that it declares, and no job condition is unbalanced.

Left to CI: the Linux nvx-rs gates (public API, macOS, the guest binaries), which only the edited READMEs and action select, since no Rust code changes; the full nvx-rs test suites; and the hypervisor jobs (microVM, debug kernel, platform and packages). No microVM scenario ran: no runtime path changes.

Changes to existing tests

python3 scripts/check_test_changes.py --base origin/feature/nvx-refactor with dev's script, which the Test changes workflow runs, lists 1445 changes to existing tests, none relocated or added; this branch's own script lists 1444, all but scenarios.txt, which it no longer names as test data.

  • Removed: the adapter and its runner. The 304 removed tests above, with their 913 helpers, 23 modules, and 35 blocks each of inner attributes and imports; the runner's 18 helpers and imports, which the report counts as end-to-end tests; and tests/runtime-adapter/scenarios.txt, as test data. RuntimeAdapterSuiteTests goes with its helpers _scenarios and _run.
  • Test policy: scripts/check_test_changes.py. Its test-data pattern drops tests/runtime-adapter/scenarios.txt.
  • Modified tests, each of which only loses its adapter part, as the matrix's CI rows say ("SL5.2 removes the adapter's parts of what they check", "SL5.2 removes its adapter path"):
    • CiConfigurationTests.test_ci_jobs_download_exactly_the_guest_artifacts_that_they_read: its map of the nvx.py commands to the guest files that they read drops test-runtime-adapter.
    • CiConfigurationTests.test_ci_change_classification_selects_suites_by_input: drops the adapter's README from the documentation case, and the case of an adapter source as an input of the microVM tests alone.
    • CiConfigurationTests.test_ci_change_classification_covers_each_suite_input: drops its check that the microVM workflow builds in tests/runtime-adapter, and the adapter among the microVM tests' inputs.
    • CiConfigurationTests.test_ci_shares_openvmm_inputs_and_binary_artifacts: drops the adapter's job among the consumers of the OpenVMM artifacts; the microVM workflow downloads 10 artifacts, not 12 (the distro layer for the adapter alone, and the adapter's guest agent).
    • CiConfigurationTests.test_ci_runs_the_steps_after_the_default_microvm_suite_beside_it and CiConfigurationTests.test_every_microvm_job_uploads_its_scenario_durations: back to their form from before 73b168a, which split WHP's adapter job off, less the adapter's scenario step among the guest and sandbox steps: one selector, two jobs per backend, and every job uploads its failure logs and duration reports, with failure() and always().
    • ClassifyTests.test_paths_and_their_categories: drops the adapter's crate and its two paths, scenarios.txt and tests/runtime.rs. test_test_layout.py still checks crate_of across nested crates.
    • The imports of scripts/test_nvx_tools.py drop runtime_adapter_tests.
  • CI test wiring. 87 removed lines: the adapter's steps and selector in run-nvx-microvm-tests.yml, its three configurations in check-nvx-rs, validate-nvx's two help checks, and ci.yml's job, selectors, needs and environment. 14 modified lines: check-nvx-rs's description, and the conditions that drop inputs.runtime-adapter, which the report pairs with the removed lines of the distro layer's download for the adapter alone. 5 lines "that may skip": the same five if: conditions, which lose a term that skipped steps, so they skip less, not more: the download of the distro layer for the whole default run, the two default-suite steps, and the two uploads. 2 removed tests: the job nvx-microvm-adapter-whp, and ci.yml's ninth instead of tenth use of run-nvx-microvm-tests.yml.

SL5.2 deletes the runtime adapter, tests/runtime-adapter, now that the
case matrix gives each of its tests a fate and the acceptance that
replaces it runs on real VMs (#1118). CI, its only consumer, goes
first.

ci.yml no longer builds the adapter's guest agent in distro-artifacts
or runs the WHP job of its scenarios, nvx-microvm-adapter-whp, and the
KVM and MSHV guest and sandbox jobs no longer select those scenarios.
Required status check, Publish development release and Record
performance results stop waiting for that job, and check-required-ci
stops requiring it. run-nvx-microvm-tests.yml loses its runtime-adapter
selector, the build, download and scenario steps of the adapter, and
the download of the Ubuntu distro layer for the adapter alone; the
default suite and the upload of failure logs and duration reports take
back the conditions that they had before that selector. check-nvx-rs no
longer checks the adapter's protocol-only, host-only and guest-only
configurations, validate-nvx no longer checks test-runtime-adapter's
help, and the change classifier no longer counts the adapter among the
inputs of the microVM tests.

The tests of CI's wiring follow the case matrix: the three that only
checked the adapter's wiring retire, with RuntimeAdapterSuiteTests'
test of the suite's CI steps, and the six that stay lose their adapter
parts. Two of them take back their form from before WHP's adapter job.
doc/ci.md, doc/contribute.md, the repository instructions, the setup
workflow's comment and the OpenVMM promotion skill stop describing the
adapter's jobs and checks, and the measurement that moved WHP's adapter
scenarios to a job of their own goes with that job.

Part of #1119 (SL5.2).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
With CI no longer building or running it, the runtime adapter,
tests/runtime-adapter, leaves NVX: its manifest, lockfile, README,
scenarios.txt and 64 Rust sources, 49,689 lines in 68 files, with its
157 scenarios and 169 other tests, each of which
doc/acceptance-case-matrix.md gives a fate. Its runner,
scripts/nvx_tools/runtime_adapter_tests.py, goes with it, and so do
nvx.py's test-runtime-adapter and RuntimeAdapterSuiteTests, which
tested the runner.

check_test_changes.py no longer names the adapter's scenarios.txt as
test data, and its classification test drops the adapter's crate and
paths; .gitignore no longer ignores the adapter's target directory; and
the change classifier no longer lists the runner's module among those
that no benchmark job runs. The docs stop describing the adapter: the
usage of test-runtime-adapter, the tests/ directory of the project
structure, the adapter's lockfile in the distribution docs, and the
mentions of its configurations, excerpts and capture interfaces in the
nvx and vectors READMEs. The case matrix keeps every fate, and its
prose and the README's index say in the past tense what the deletion
made past.

Nothing in nvx-rs used the adapter, a crate with a workspace and a
lockfile of its own, and the test layout's allowlist held no entry of
it.

Part of #1119 (SL5.2).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@ppenna Pedro Henrique Penna (ppenna) added tests-modified Changes existing tests, test data, or test wiring feat-nvx-refactor labels Nov 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

This pull request changes existing tests

It modifies or removes 1445 existing test asset(s), listed below. Review each with care: a change to a test can hide a regression that the test caught. See doc/contribute.md#changes-to-existing-tests.

Test code

Change What Before After
modified imports the imports of scripts/test_nvx_tools.py scripts/test_nvx_tools.py:1 scripts/test_nvx_tools.py:1
modified test def CiConfigurationTests.test_ci_jobs_download_exactly_the_guest_artifacts_that_they_read in scripts/test_nvx_tools.py scripts/test_nvx_tools.py:6012 scripts/test_nvx_tools.py:6011
modified test def CiConfigurationTests.test_ci_change_classification_selects_suites_by_input in scripts/test_nvx_tools.py scripts/test_nvx_tools.py:7571 scripts/test_nvx_tools.py:7511
modified test def CiConfigurationTests.test_ci_change_classification_covers_each_suite_input in scripts/test_nvx_tools.py scripts/test_nvx_tools.py:8036 scripts/test_nvx_tools.py:7812
modified test def CiConfigurationTests.test_ci_shares_openvmm_inputs_and_binary_artifacts in scripts/test_nvx_tools.py scripts/test_nvx_tools.py:9060 scripts/test_nvx_tools.py:8831
modified test def CiConfigurationTests.test_ci_runs_the_steps_after_the_default_microvm_suite_beside_it in scripts/test_nvx_tools.py scripts/test_nvx_tools.py:10084 scripts/test_nvx_tools.py:9849
modified test def CiConfigurationTests.test_every_microvm_job_uploads_its_scenario_durations in scripts/test_nvx_tools.py scripts/test_nvx_tools.py:12904 scripts/test_nvx_tools.py:12586
modified test def ClassifyTests.test_paths_and_their_categories in scripts/test_test_changes.py scripts/test_test_changes.py:1107 scripts/test_test_changes.py:1107
removed attributes the inner attributes of exec::tests tests/runtime-adapter/src/exec/tests.rs:1
removed attributes the inner attributes of frame::tests tests/runtime-adapter/src/frame/tests.rs:1
removed attributes the inner attributes of generations::tests tests/runtime-adapter/src/generations/tests.rs:1
removed attributes the inner attributes of probe::tests tests/runtime-adapter/src/probe/tests.rs:1
removed attributes the inner attributes of root::tests tests/runtime-adapter/src/root/tests.rs:1
removed attributes the inner attributes of template::tests tests/runtime-adapter/src/template/tests.rs:1
removed attributes the inner attributes of worker::activation::tests tests/runtime-adapter/src/worker/activation/tests.rs:1
removed attributes the inner attributes of worker::capture::tests tests/runtime-adapter/src/worker/capture/tests.rs:1
removed attributes the inner attributes of worker::entries::tests tests/runtime-adapter/src/worker/entries/tests.rs:1
removed attributes the inner attributes of worker::executions::tests tests/runtime-adapter/src/worker/executions/tests.rs:1
removed attributes the inner attributes of worker::mapping::tests tests/runtime-adapter/src/worker/mapping/tests.rs:1
removed attributes the inner attributes of worker::probes::tests tests/runtime-adapter/src/worker/probes/tests.rs:1
removed attributes the inner attributes of worker::tests tests/runtime-adapter/src/worker/tests.rs:1
removed attributes the inner attributes of clone_start (tests) tests/runtime-adapter/tests/clone_start.rs:1
removed attributes the inner attributes of common/gpt (tests) tests/runtime-adapter/tests/common/gpt.rs:1
removed attributes the inner attributes of common/mod (tests) tests/runtime-adapter/tests/common/mod.rs:1
removed attributes the inner attributes of guest_session (tests) tests/runtime-adapter/tests/guest_session.rs:1
removed attributes the inner attributes of guest_session/clones (tests) tests/runtime-adapter/tests/guest_session.rs:4130
removed attributes the inner attributes of host_session (tests) tests/runtime-adapter/tests/host_session.rs:1
removed attributes the inner attributes of independent_build (tests) tests/runtime-adapter/tests/independent_build.rs:1
removed attributes the inner attributes of initramfs (tests) tests/runtime-adapter/tests/initramfs.rs:1
removed attributes the inner attributes of layered_launch (tests) tests/runtime-adapter/tests/layered_launch.rs:1
removed attributes the inner attributes of listener_client (tests) tests/runtime-adapter/tests/listener_client.rs:1
removed attributes the inner attributes of runtime (tests) tests/runtime-adapter/tests/runtime.rs:1
removed attributes the inner attributes of sandbox_names (tests) tests/runtime-adapter/tests/sandbox_names.rs:1
removed attributes the inner attributes of staged_images (tests) tests/runtime-adapter/tests/staged_images.rs:1
removed attributes the inner attributes of step_hook (tests) tests/runtime-adapter/tests/step_hook.rs:1
removed attributes the inner attributes of template_capture (tests) tests/runtime-adapter/tests/template_capture.rs:1
removed attributes the inner attributes of template_operations (tests) tests/runtime-adapter/tests/template_operations.rs:1
removed attributes the inner attributes of vm_clone (tests) tests/runtime-adapter/tests/vm_clone.rs:1
removed attributes the inner attributes of vm_clone/restore_exclusion (tests) tests/runtime-adapter/tests/vm_clone.rs:5375
removed attributes the inner attributes of vm_layered (tests) tests/runtime-adapter/tests/vm_layered.rs:1
removed attributes the inner attributes of vm_restart (tests) tests/runtime-adapter/tests/vm_restart.rs:1
removed attributes the inner attributes of vm_steps (tests) tests/runtime-adapter/tests/vm_steps.rs:1
removed attributes the inner attributes of vm_template (tests) tests/runtime-adapter/tests/vm_template.rs:1
removed helper class RuntimeAdapterSuiteTests in scripts/test_nvx_tools.py scripts/test_nvx_tools.py:20980
removed helper def RuntimeAdapterSuiteTests._scenarios in scripts/test_nvx_tools.py scripts/test_nvx_tools.py:20981
removed helper def RuntimeAdapterSuiteTests._run in scripts/test_nvx_tools.py scripts/test_nvx_tools.py:20989
removed helper const KEY in exec::tests tests/runtime-adapter/src/exec/tests.rs:20
removed helper fn shared in exec::tests tests/runtime-adapter/src/exec/tests.rs:24
removed helper fn timers in exec::tests tests/runtime-adapter/src/exec/tests.rs:31
removed helper fn numeric in exec::tests tests/runtime-adapter/src/exec/tests.rs:36

... and 1266 more, which the job's summary lists.

Test data

Change What Before After
removed file tests/runtime-adapter/scenarios.txt tests/runtime-adapter/scenarios.txt

End-to-end tests

Change What Before After
removed helper assignment ADAPTER_DIRECTORY in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:30
removed helper assignment PACKAGE in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:31
removed helper assignment SCENARIOS in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:32
removed helper assignment GUEST_AGENT in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:33
removed helper assignment _TEST_LINE in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:41
removed helper assignment _RESULT_LINE in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:42
removed helper class Target in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:46
removed helper def configure_parser in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:53
removed helper def read_scenarios in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:80
removed helper def cargo_test_targets in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:112
removed helper def cargo_test in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:130
removed helper def listed_tests in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:147
removed helper def naming_problems in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:157
removed helper def run_problems in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:175
removed helper def listing in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:199
removed helper def streamed in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:216
removed helper def suite_problems in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:240
removed helper def command_test_runtime_adapter in scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:276
removed imports the imports of scripts/nvx_tools/runtime_adapter_tests.py scripts/nvx_tools/runtime_adapter_tests.py:1

Test policy

Change What Before After
modified file scripts/check_test_changes.py scripts/check_test_changes.py scripts/check_test_changes.py

CI test wiring

Change What Before After
added a line that may skip line if: ${{ !inputs.guests-and-sandboxes && !inputs.debug-kernel && !inputs.shard }} .github/workflows/run-nvx-microvm-tests.yml:137
added a line that may skip line if: runner.os != 'Windows' && !inputs.guests-and-sandboxes .github/workflows/run-nvx-microvm-tests.yml:192
added a line that may skip line if: runner.os == 'Windows' && !inputs.guests-and-sandboxes .github/workflows/run-nvx-microvm-tests.yml:202
added a line that may skip line if: failure() .github/workflows/run-nvx-microvm-tests.yml:1243
added a line that may skip line if: always() .github/workflows/run-nvx-microvm-tests.yml:1261
modified line description: >- .github/actions/check-nvx-rs/action.yml:2 .github/actions/check-nvx-rs/action.yml:2
modified line Format, lint, document, and test the nvx crate, and the runtime adapter that builds on it .github/actions/check-nvx-rs/action.yml:3 .github/actions/check-nvx-rs/action.yml:2
modified line as an independent adapter .github/actions/check-nvx-rs/action.yml:4 .github/actions/check-nvx-rs/action.yml:2
modified line if: ${{ !inputs.guests-and-sandboxes && !inputs.runtime-adapter && !inputs.debug-kernel && !inputs.shard }} .github/workflows/run-nvx-microvm-tests.yml:146 .github/workflows/run-nvx-microvm-tests.yml:137
modified line uses: actions/download-artifact@​v8 .github/workflows/run-nvx-microvm-tests.yml:147 .github/workflows/run-nvx-microvm-tests.yml:137
modified line with: .github/workflows/run-nvx-microvm-tests.yml:148 .github/workflows/run-nvx-microvm-tests.yml:137
modified line name: guest-ubuntu-distro .github/workflows/run-nvx-microvm-tests.yml:149 .github/workflows/run-nvx-microvm-tests.yml:137
modified line path: build .github/workflows/run-nvx-microvm-tests.yml:150 .github/workflows/run-nvx-microvm-tests.yml:137
modified line - name: Download Ubuntu distro layer for the runtime adapter alone .github/workflows/run-nvx-microvm-tests.yml:155 .github/workflows/run-nvx-microvm-tests.yml:137
modified line if: ${{ inputs.runtime-adapter && !inputs.guests-and-sandboxes && !inputs.debug-kernel }} .github/workflows/run-nvx-microvm-tests.yml:156 .github/workflows/run-nvx-microvm-tests.yml:137
modified line if: runner.os != 'Windows' && !inputs.guests-and-sandboxes && !inputs.runtime-adapter .github/workflows/run-nvx-microvm-tests.yml:211 .github/workflows/run-nvx-microvm-tests.yml:192
modified line if: runner.os == 'Windows' && !inputs.guests-and-sandboxes && !inputs.runtime-adapter .github/workflows/run-nvx-microvm-tests.yml:221 .github/workflows/run-nvx-microvm-tests.yml:202
modified line if: failure() && (inputs.guests-and-sandboxes || !inputs.runtime-adapter) .github/workflows/run-nvx-microvm-tests.yml:1313 .github/workflows/run-nvx-microvm-tests.yml:1243
modified line if: always() && (inputs.guests-and-sandboxes || !inputs.runtime-adapter) .github/workflows/run-nvx-microvm-tests.yml:1331 .github/workflows/run-nvx-microvm-tests.yml:1261
removed line - name: Check the runtime adapter's protocol-only configuration .github/actions/check-nvx-rs/action.yml:173
removed line shell: bash .github/actions/check-nvx-rs/action.yml:174
removed line working-directory: tests/runtime-adapter .github/actions/check-nvx-rs/action.yml:175
removed line run: | .github/actions/check-nvx-rs/action.yml:176
removed line set -euo pipefail .github/actions/check-nvx-rs/action.yml:177
removed line cargo "+${{ steps.toolchains.outputs.toolchain }}" fmt --all --check .github/actions/check-nvx-rs/action.yml:178
removed line cargo "+${{ steps.toolchains.outputs.toolchain }}" clippy --locked --all-targets \ .github/actions/check-nvx-rs/action.yml:179
removed line -- -D warnings .github/actions/check-nvx-rs/action.yml:180
removed line cargo "+${{ steps.toolchains.outputs.toolchain }}" build --locked .github/actions/check-nvx-rs/action.yml:181
removed line cargo "+${{ steps.toolchains.outputs.toolchain }}" test --locked .github/actions/check-nvx-rs/action.yml:182
removed line RUSTDOCFLAGS="-D warnings" cargo "+${{ steps.toolchains.outputs.toolchain }}" doc \ .github/actions/check-nvx-rs/action.yml:183
removed line --locked --no-deps .github/actions/check-nvx-rs/action.yml:184
removed line cargo "+${{ steps.toolchains.outputs.msrv }}" check --locked --all-targets .github/actions/check-nvx-rs/action.yml:185
removed line - name: Check the runtime adapter's host-only configuration .github/actions/check-nvx-rs/action.yml:187
removed line shell: bash .github/actions/check-nvx-rs/action.yml:188
removed line working-directory: tests/runtime-adapter .github/actions/check-nvx-rs/action.yml:189
removed line run: | .github/actions/check-nvx-rs/action.yml:190
removed line set -euo pipefail .github/actions/check-nvx-rs/action.yml:191
removed line cargo "+${{ steps.toolchains.outputs.toolchain }}" clippy --locked --all-targets \ .github/actions/check-nvx-rs/action.yml:192
removed line --features host -- -D warnings .github/actions/check-nvx-rs/action.yml:193
removed line cargo "+${{ steps.toolchains.outputs.toolchain }}" build --locked --features host .github/actions/check-nvx-rs/action.yml:194
removed line cargo "+${{ steps.toolchains.outputs.toolchain }}" test --locked --features host .github/actions/check-nvx-rs/action.yml:195
removed line RUSTDOCFLAGS="-D warnings" cargo "+${{ steps.toolchains.outputs.toolchain }}" doc \ .github/actions/check-nvx-rs/action.yml:196
removed line --locked --no-deps --features host .github/actions/check-nvx-rs/action.yml:197
removed line cargo "+${{ steps.toolchains.outputs.msrv }}" check --locked --all-targets --features host .github/actions/check-nvx-rs/action.yml:198
removed line - name: Check the runtime adapter's guest-only configuration .github/actions/check-nvx-rs/action.yml:201
removed line if: runner.os == 'Linux' .github/actions/check-nvx-rs/action.yml:202
removed line shell: bash .github/actions/check-nvx-rs/action.yml:203
removed line working-directory: tests/runtime-adapter .github/actions/check-nvx-rs/action.yml:204
removed line run: | .github/actions/check-nvx-rs/action.yml:205
removed line set -euo pipefail .github/actions/check-nvx-rs/action.yml:206

... and 58 more, which the job's summary lists.

Relocated unchanged: 0; added: 0. Compared the merge base f834bcb9672e with a2fadde7715c.

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.

🔵 Needs a closer look

The adapter deletion depends on SL5.1b/SL5.1c replacements absent from this snapshot, so prerequisite rebases and successful KVM/MSHV/WHP cold-boot and snapshot acceptance still need confirmation.

No open issues 🎉

What changed in this PR

Removes NVX’s obsolete runtime adapter and its dedicated tooling as SL5.2 of the library-slimming workstream (#1119). This deletion depends on the replacement real-VM acceptance work in #1118; retained runtime behavior is outside its scope.

Changes:

  • Deletes the adapter crate, its tests and scenario inventory, and its CLI runner.
  • Removes adapter-specific CI builds, jobs, selectors and required-status dependencies.
  • Cleans up documentation and tooling references while preserving test dispositions in the acceptance matrix.
File Description
tests/​runtime-adapter/​tests/​vm_steps.rs Deletes VM launch-step scenarios.
tests/​runtime-adapter/​tests/​vm_restart.rs Deletes restart and runtime-identity scenarios.
tests/​runtime-adapter/​tests/​step_hook.rs Deletes step-hook tests.
tests/​runtime-adapter/​tests/​sandbox_names.rs Deletes sandbox-name regression test.
tests/​runtime-adapter/​tests/​runtime.rs Deletes artifact identity tests.
tests/​runtime-adapter/​tests/​listener_client.rs Deletes listener-client regressions.
tests/​runtime-adapter/​tests/​initramfs.rs Deletes adapter initramfs tests.
tests/​runtime-adapter/​src/​worker/​tests.rs Deletes worker child-management tests.
tests/​runtime-adapter/​src/​worker/​probes/​tests.rs Deletes worker probe tests.
tests/​runtime-adapter/​src/​worker/​order.rs Deletes mapping and startup sequencing.
tests/​runtime-adapter/​src/​worker/​mapping/​tests.rs Deletes mapping probe tests.
tests/​runtime-adapter/​src/​worker/​executions/​tests.rs Deletes execution cancellation regression.
tests/​runtime-adapter/​src/​worker/​entries/​tests.rs Deletes entry probe tests.
tests/​runtime-adapter/​src/​worker/​capture/​tests.rs Deletes capture and handshake tests.
tests/​runtime-adapter/​src/​runtime.rs Deletes adapter runtime discovery.
tests/​runtime-adapter/​src/​probe/​tests.rs Deletes probe encoding tests.
tests/​runtime-adapter/​src/​probe.rs Deletes probe and fact codecs.
tests/​runtime-adapter/​src/​lib.rs Deletes adapter module exports and constants.
tests/​runtime-adapter/​src/​initramfs.rs Deletes guest-agent initramfs assembly.
tests/​runtime-adapter/​src/​host/​order_error.rs Deletes host sequencing errors.
tests/​runtime-adapter/​src/​host/​map_reply.rs Deletes mapping reply type.
tests/​runtime-adapter/​src/​hook.rs Deletes launch pause and exit hooks.
tests/​runtime-adapter/​src/​generations/​tests.rs Deletes generation eviction tests.
tests/​runtime-adapter/​src/​generations.rs Deletes adapter generation management.
tests/​runtime-adapter/​scenarios.txt Deletes adapter scenario inventory.
tests/​runtime-adapter/​Cargo.toml Deletes adapter crate manifest.
scripts/​test_test_changes.py Removes adapter classification examples.
scripts/​nvx.py Removes test-runtime-adapter registration and import.
scripts/​nvx_tools/​ci.py Removes adapter gates and path classification.
scripts/​check_test_changes.py Removes adapter scenario-data pattern.
README.md Describes the adapter deletion in past tense.
nvx-rs/​tests/​vectors/​README.md Removes adapter vector-consumer documentation.
nvx-rs/​README.md Removes obsolete adapter references and links.
doc/​usage.md Removes adapter command documentation.
doc/​project-structure.md Removes adapter directory and build-output entries.
doc/​distribution.md Removes adapter lockfile guidance.
doc/​contribute.md Removes adapter validation and test-placement guidance.
doc/​acceptance-case-matrix.md Updates historical wording while retaining dispositions.
.gitignore Removes adapter build-output exclusion.
.github/​workflows/​run-nvx-microvm-tests.yml Removes adapter selector and steps; simplifies conditions.
.github/​workflows/​copilot-setup-steps.yml Updates only the Rust-version check comment.
.github/​workflows/​ci.yml Removes adapter artifacts, WHP job and dependencies.
.github/​skills/​nvx-openvmm-promote/​SKILL.md Removes adapter-specific validation guidance.
.github/​copilot-instructions.md Removes adapter validation instructions.
.github/​actions/​validate-nvx/​action.yml Removes adapter command-help checks.
.github/​actions/​check-nvx-rs/​action.yml Removes adapter configuration checks.

Review effort: Balanced

@ppenna

Copy link
Copy Markdown
Contributor Author

No change needed here, on Copilot's review of a2fadde7: the dependency that it flags is by design. This pull request stays a Draft and merges only after SL5.1c (#1118), whose smoke tests are the snapshot coverage that the case matrix names, and after SL5.1b (#1496), whose cold cells and vm-lifecycle scenario are the cold-boot coverage. At its merge turn, it rebases onto feature/nvx-refactor with both, and it merges only once that head's CI passes, the KVM, MSHV and WHP microVM jobs that run those scenarios among it.

This branch has not been deployed

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

Labels

feat-nvx-refactor tests-modified Changes existing tests, test data, or test wiring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants