Skip to content

nvx-rs slimming 4.1.2: the test adapter is gone #1119

Closed

Description

Parent: #1086, in #1076. Needs: #1118. Unblocks: #1120, #1121, #1123, #1131, #1132. No PR of this group merges before the API-ready commit.

Leaving code only. Every PR in this group changes only code that this workstream 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 these PRs change, so the size limits for kept code don't apply. Each PR still records its core lines and counted files, and its description opens with this note.

Goal. The 44K-line test adapter is gone, with its runner (runtime_adapter_tests.py and nvx.py's test-runtime-adapter) and its CI jobs and gates, once the case matrix gives each test a fate. #859 is closed as not planned when #816 is rescoped; the adapter's deletion is tracked here.

PRs, in order. Each PR has one goal, leaves dev green, and names in its description each old test of its area as kept, rewritten or retired, with each change that check_test_changes.py reports. Its tests follow the repository's test layout: a module's unit tests, and the code that only they use, sit in its tests.rs or tests/ and move with it. The estimates count core lines (code, not comments, docs or tests) and counted files; each PR records its measured values. Each PR does what its Scope says and no more: a case, input or layout that its Scope doesn't name, and whatever "Not in this PR" lists, is out of scope. Address every review comment within the scope, and ask before acting on one that asks for more.

  1. SL5.2: The 44K-line test adapter is gone.
    • Objective: The obsolete test adapter and all machinery dedicated to running it are removed after the replacement acceptance suite assigns every case a disposition. CI no longer builds, selects or gates on adapter code.
    • Contents: Leaving code. Delete tests/runtime-adapter (45.9K text lines, 56 files and 156 cases at 4f9a3214), its runner (runtime_adapter_tests.py and nvx.py's test-runtime-adapter), and its CI jobs, selectors and gates (ci.yml, run-nvx-microvm-tests.yml, the check-nvx-rs and validate-nvx actions, and ci.py), once the case matrix gives each of its tests a fate. runtime adapter: the consumer-contract scenarios C2, C3, C6 and C7 on real VMs #859 is closed as not planned when NVX host/guest library wiring workstream: move NVX's binaries and tools onto the shared host and guest libraries #816 is rescoped. Its 6 counted files only lose lines.
    • Scope:
      • Delete tests/runtime-adapter, including its manifest, lockfile, sources, README, 56 files and 156 named cases.
      • Delete scripts/nvx_tools/runtime_adapter_tests.py and remove test-runtime-adapter from scripts/nvx.py.
      • Remove adapter jobs, steps, selectors and gates from .github/workflows/ci.yml, .github/workflows/run-nvx-microvm-tests.yml, .github/actions/check-nvx-rs/action.yml, .github/actions/validate-nvx/action.yml and scripts/nvx_tools/ci.py.
      • Remove remaining references whose only subject is the deleted adapter.
      • After the matrix gives every adapter test a fate, delete it; the PR description points every test reported as removed to that fate.
    • Not in this PR:
      • Rewriting tests that stay: SL5.1a through SL5.1c provide and classify the replacements.
      • Changing retained VM, snapshot, CLI or library behavior: this is a leaving-code-only deletion.
      • General CI cleanup, workflow redesign or command renaming beyond references forced by the deletion.
      • Deleting current microVM scenarios that the matrix keeps or rewrites.
      • Replacing the adapter with another compatibility crate or runner.
    • Approach: Delete the adapter directory and its dedicated runner first, then remove only imports, commands, workflow steps, selectors and documentation references that become dead. Use the completed case matrix as the gate. The adapter has no test-layout seams, so the retired allowlist baseline needs no adapter entry removed; do not recreate its helpers.
    • Done when:
      • tests/runtime-adapter and scripts/nvx_tools/runtime_adapter_tests.py are absent, and scripts/nvx.py has no test-runtime-adapter command.
      • CI contains no adapter build, job, selector or gate.
      • The tests marked kept or rewritten in the case matrix run without the adapter.
    • Needs: SL5.1c, in nvx-rs slimming 4.1.1: public-API tests, and smoke tests on real VMs #1118.
    • Estimate: 0 core lines (deletions), 6 counted files.

Tests. CI is green without the adapter's jobs, and the tests that the case matrix keeps or rewrites run.

Done when: every PR above has merged, with dev green.

Activity

  1. esaurez commented on Nov 10, 2026

    @esaurez
    ContributorAuthor

    Workstream source/progress checkpoint - 2026-11-10 UTC

    Checked boxes below mean merged scope, not merely an implemented first iteration. Implementation branches are source checkpoints, not automatic qualification, Ready or merge approval. Some starting inputs are frozen/anonymous commits rather than standalone branches; their exact SHAs and known merged producer refs are recorded explicitly.

    • SL5.2 - no completed first-iteration handoff recorded. Inspect any preserved partial/prior work before implementing the issue's scope.

    The original technical scope remains authoritative, supplemented only by any portable technical clarification in this issue. No machine-specific execution policy is part of this checkpoint.

  2. ppenna commented on Nov 11, 2026

    @ppenna
    Contributor

    SL5.2 scope decision (K1). #1499 deletes the runtime adapter but leaves scripts/nvx_tools/kernel_features.py unchanged:

    One later pull request will update every entry that names the adapter, after SL6.11b, and decide the diagnostics validator and setting there, with one kernel rebuild. The adapter's mentions in host/template/clone/restore.rs go with that file in SL6.2b (#1121).

  3. ppenna commented on Nov 12, 2026

    @ppenna
    Contributor

    Completed. SL5.2: the test adapter is gone. It merged as #1499, in two commits on feature/nvx-refactor:

    • 05e0f232687: ci: stop building, running and gating on the runtime adapter;
    • 5b3fab2c45e: tests: delete the runtime adapter and its runner.

    It merged after the acceptance that replaces the adapter: SL5.1a (#1488), SL5.1b (#1496) and SL5.1c (#1500). Every adapter test keeps its fate in doc/acceptance-case-matrix.md.

    Passing CI that contains it: the push run on feature/nvx-refactor at 5b3fab2c45e, https://github.com/microsoft/nvx/actions/runs/43149037772, including the microVM jobs on KVM, MSHV and WHP.

    Follow-up K1 (kernel_features.py) is now tracked on #1123, after SL6.11b.

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

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions