Repository navigation
SL3.5b inputs: join published recovery, CLI tokens and nvx-init routing - #1458
Closed
Enrique Saurez (esaurez) wants to merge 35 commits into
Closed
Enrique Saurez (esaurez) wants to merge 35 commits into
Enrique Saurez (esaurez) wants to merge 35 commits into
Conversation
Port the preserved SL2.10 implementation and coupled callers, API snapshots, docs and real-process tests onto feature c52c710 without changing legacy lifecycle policy. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0c8e42ad-4102-451f-96f0-0a4ae0483d1a
Port the scoped SL3.2b donor cf485b7 onto verified feature c52c710 without its historical producer history. Persist prepared capability and outputs before spawn, the matching process before commit, and every SavedVm field in the private runtime record. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Add the rootless Fresh capture entry and handle snapshot outcomes on the shared control session. Refuse rooted capture before killing workloads and preserve the current helper supervision and nonblocking transport. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: dee059e7-7968-43d8-82d0-abd68b922eed
Use the existing PID and atomic create-directory retry to retain unique fixture directories without a long diagnostic prefix. Keep the scenario name in creation errors. Capture and restore control sockets now fit approved data-volume temp roots without changing production limits, assertions, timeouts or skipped tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0c8e42ad-4102-451f-96f0-0a4ae0483d1a
Apply the pinned rustfmt wrapping requested by the final-head review; fixture semantics and production source remain unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0c8e42ad-4102-451f-96f0-0a4ae0483d1a
Port only SL3.3a onto coordinator-qualified SL3.2b 99d0045. Retain the prepared log claim and identity, hold and recheck the endpoint owner, and require the Linux log match. Preserve Windows job/handle fallback primitives and the donor fork-race fix without adding recovery or signaling. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Return Running or opaque exit proof after checking the recorded identity. Preserve indeterminate errors and current VM/transport verification policies. Keep the existing exit-handle and recovery tests alongside opening proof cases. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0c8e42ad-4102-451f-96f0-0a4ae0483d1a
Port only SL7.5d onto the qualified capture parent. Fork the fixed announcer before switching roots, preserving PID 1 priority and fatal helper supervision. Reset inherited signals without introducing a restore caller or lifecycle machinery. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: dee059e7-7968-43d8-82d0-abd68b922eed
Implement issue1109 SL3.4a2 on qualified SL2.10 adeb1d4, without replaying the donor's old stop-producer history. Keep restore and restore-network-policy on their existing path. Render CLI-owned guest tokens from the planned export, preserve cold foreground streams, terminal mode, exact exit status and outcome publication, and keep ordinary library spawns detached. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Compose exact qualified13bb and92ac as preserved parents for issue1108 SL3.3b. No producer tree replay or manual resolution. Joint QA remains pending. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Compose the existing CLI liveness contract with SL2.10b Opened results. Preserve held-running versus proved-exited distinction and propagate lookup failures. Update only its existing own-process test helper. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Use verified endpoint and log claims for unrecorded launches and boot/PID/start identities for recorded processes. Require confirmed exit before removing capability and journal; retain indeterminate evidence and its refusal cause. Keep committed-runtime recovery separate and bounded claim rechecks intact. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Integrate only the restored activation caller on qualified capture and announcer inputs. Preserve bounded signal-aware control I/O, retain one activation across resets, and keep postactivation captures refused. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: dee059e7-7968-43d8-82d0-abd68b922eed
…rage Do not require install provenance or hash an override for a cold run that neither captures nor reattaches. Restore the public artifact identity implementation and remove its unused private extension and fixtures. Exercise metadata-free dry runs and overrides. Update the real comma-path guest scenario for planned aggregate binds, including all-read-only root remounts while retaining host write-denial checks. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Port the required single-instance named-pipe disconnect helper and CLI-gated test re-exports. Repeated endpoint-owner verification must reconnect after each finished client; no production API or assertion changes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Remove the two no-longer-installed guest metadata entries from the fixture cleanup list, restoring this file exactly to the qualified base. Keep all six download test bodies and assertions unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Bind the established private restore-ready listener in a scoped in-crate live fixture. Keep production APIs and guards unchanged; exercise real activation, MAPS/EXEC, replay, helper publication and the original deadline under explicit host admission. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: dee059e7-7968-43d8-82d0-abd68b922eed
Implement issue1109 SL3.4a2 on qualified SL2.10 adeb1d4, without replaying the donor's old stop-producer history. Keep restore and restore-network-policy on their existing path. Render CLI-owned guest tokens from the planned export, preserve cold foreground streams, terminal mode, exact exit status and outcome publication, and keep ordinary library spawns detached. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
…rage Do not require install provenance or hash an override for a cold run that neither captures nor reattaches. Restore the public artifact identity implementation and remove its unused private extension and fixtures. Exercise metadata-free dry runs and overrides. Update the real comma-path guest scenario for planned aggregate binds, including all-read-only root remounts while retaining host write-denial checks. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Remove the two no-longer-installed guest metadata entries from the fixture cleanup list, restoring this file exactly to the qualified base. Keep all six download test bodies and assertions unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Recheck the owned child before surfacing endpoint authentication races, use the standard Unicode-aware stdout path, avoid idle sleeps while streams advance, and publish requested native reports after confirmed exit even on foreground errors. Add focused peer, private Windows console, streaming, output-error and interruption regressions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Render invalid guest UTF-8 as replacement characters only when stdout is an actual Windows console. Carry at most three split-sequence bytes between reads and finish them only at console EOF or final drain. Keep redirected pipes and files byte-exact and preserve real I/O failures. Extend the isolated CP437 console regression with invalid sequences, split-invalid input, incomplete endings, and raw pipe/file controls. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Allow only the isolated Windows console test helper to exercise documented Win32 calls, matching existing Windows endpoint-test opt-outs. Keep the host-wide unsafe-code denial and production code unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Initialize the cold-boot memory-capacity option in the newly integrated CLI journal fixture. None preserves its prior boot-memory behavior and all existing assertions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eb3cc7e0-f51e-45ed-b911-c7b214740e05
Install through the existing fixed guest-binary list and preserve the legacy-token and blockless routes. Pass the known helper PIDs and move the runtime adapter overlay to the new init path. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 10c9dff8-5c75-4c96-9739-3896adfb0c71
Preserve published activation and capture-deadline behavior together. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1ab84e49-48c9-4741-8fac-ff69b6734573
added 4 commits
November 10, 2026 11:52
Preserve the published journal, claim, recovery hook and recovery test semantics. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1ab84e49-48c9-4741-8fac-ff69b6734573
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1ab84e49-48c9-4741-8fac-ff69b6734573
The activation input already allows seven hooks; the feature input allows six. Preserve all published seams without adding a test hook. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1ab84e49-48c9-4741-8fac-ff69b6734573
Keep detached helper launches, default boot capacity, confirmed exit assertions and fallible outcome reads without changing runtime implementation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1ab84e49-48c9-4741-8fac-ff69b6734573
Contributor
This pull request changes existing testsIt modifies or removes 57 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
End-to-end tests
Test doublesTest policy
Relocated unchanged: 0; added: 156. Compared the merge base |
Adopt public PR1441 head6bc5c0a6 verbatim in its four changed leaf files. Preserve the completed e484 integration and all original inputs; keep one identical optional-capacity field in the recovery-aware fixture. Producer follow-up findings remain with their owner. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1ab84e49-48c9-4741-8fac-ff69b6734573
This was referenced Nov 10, 2026
Enrique Saurez (esaurez)
marked this pull request as ready for review
November 11, 2026 00:08
Pedro Henrique Penna (ppenna)
force-pushed
the
esaurez/sl78a-init-routing-fe1cbbee-20261110
branch
from
November 11, 2026 02:18
d56d3d3 to
5469fae
Compare
Base automatically changed from
esaurez/sl78a-init-routing-fe1cbbee-20261110
to
feature/nvx-refactor
November 11, 2026 02:34
Contributor
|
Closing as superseded: everything that this pull request joined is in
#1460, which was stacked on this pull request, is now rebased onto |
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.
Purpose and boundary
Supporting input integration for #1110 / SL3.5b, not the lifecycle consumer and not completion of that issue. It makes the already-published CLI launch recovery, CLI-owned launch tokens, and new nvx-init routing coexist and compile.
The pinned PR1453 tree lacked
LockedState::recoverandrun::guest_tokens::render; PR1446 lacked the new sandbox/Fresh nvx-init route. This explicit join supplies those missing inputs rather than hiding ancestor implementation in a future consumer PR.No producer is rewritten, retargeted, or replaced. No sandbox lifecycle migration, exec lock, provision-record change, protected-path change, token contract/visibility redesign, native change, or duplicate SL3.5d implementation is introduced. SL3.5d already merged as PR1264.
Exact published inputs and ordinary merge order
refs/heads/esaurez/sl78a-init-routing-fe1cbbee-20261110d56d3d343977178fd15bbd526a77a97603edbbacrefs/heads/feature/nvx-refactor4192cfd1bbd2aa2a428fcb6eaa64ca042510ea62refs/heads/private/simple-1108-02e4-sl33b-202611108921c45162e38761f1dc5beb51042ee2e7218803refs/heads/private/simple-1109-02e4-sl34a2-2026111067bb715081715ac612bb8949bccd0fdd40969b19refs/heads/private/simple-1109-02e4-sl34a2-202611106bc5c0a6cbea41060e1992834ca8884a1f94c0e2The feature head was refreshed at intake; it had advanced beyond the packet's
cf5f9146. The original PR144167bb7150pin was valid at intake and was truthfully published here ate4843296. Once the producer's6bc5c0a6fix became public, an explicit coordinator follow-up authorized adopting that exact public input once, not chasing future tips. Every exact input above remains an ancestor.Ordinary merge commits, in order:
ea8672647fa51c70c96542a10b04d2ee15cbf2a6,8b66cc493153984d19043bbce7eda745d9313da4,3984b7d869d8f026446893ea75ab7ada2aeb8ecd, then928edaad5a0cebbd55d85735dded0032cbf91b6b(parentse4843296and the public6bc5c0a6). No cherry-picks, rebases, private producer fixes, or force pushes were used.Native gitlink and initialized source remain
14dc4116ec7e57567633c4b7b07892aca3a58522; no native runtime was rebuilt. The PR1446 productionstore/liveness.rsalready matches published PR1436's694b332b8362afcd1c4d92f8bc2c39bf25ce27d2repair exactly (blob4b584f8362a74ecc72c29c43a8495696e0686297), so no extra input or duplicate Opened port was needed.Own resolution delta and measured size
Option<Exited>::is_some; the existing outcome reader propagates itsResultbefore requiring a report. Public Error/Result/Opened/Exited contracts and test assertions are preserved.6bc5c0a6adoption selects its four changed leaf files byte for byte: CLI run implementation, its unit tests, fake OpenVMM, and one-shot tests. The recovery-aware store fixture is kept; its two independently added, identical optional-capacity fields are deduplicated to one. No new logic is authored or producer fix reimplemented.Measured independently from inherited source:
git show --remerge-diff --numstatshows 0 added lines, only removal of 371 conflict-marker/unselected/duplicate lines6bc5c0a6adoption delta frome4843296Follow-up commits are
2e26738a642bfaf64e23c9e25fb668993f3ec309(existing seam count) ande4843296e53588654722ea56f8e556e603f01e1e(test call-site compilation).Exact joined-source evidence
Validated final head:
928edaad5a0cebbd55d85735dded0032cbf91b6bValidated final tree:
409a299b2a7c18ab4f3559167fe2fa3cc2ec6262Linux and Windows both compile the actual CLI/library and independent runtime adapter host/protocol configurations. Both initialize the exact native source, run
scripts/nvx.py verify, and use isolated targets/caches. Windows runs MSVC setup and each Cargo command in the samecmd.exeprocess.After the one public-input adoption, both platforms pass these scoped final-head checks:
The prior exact
e4843296receipts additionally cover adapter formatting/clippy/MSRV and the original resolved areas: Linux store 32 passed, Windows store 31 passed (two helper-only cases ignored on each), Linux init capture 8 passed, and managed session 13 passed. Those unchanged regions retain that evidence. The final adoption does not rerun the producer's full 43/32-case or hardware matrices; affected library/CLI test targets are compiled, not executed. Native/manual restore tests are not executed.Bounded Opus 5.5 / max / long-context review of the original hand resolutions and test call-site adaptations returned no findings at exact
e4843296/d9011de6; native configured/completed events verify that profile. The original guest/recovery resolutions remain unchanged. No broad review is repeated merely for adopting6bc5c0a6: its four selected leaf blobs are verified identical to the public producer, with only the duplicate fixture field removed. This does not claim a review or qualification of all producer code in the final tree.scripts/check_test_changes.pypasses against exact pinned PR1453 and records 133 changed existing assets and 173 added assets in the final inherited input range. Existing base cases are kept with the producer changes. The only own test adaptations are the four compiler-required files described above, with assertions retained. Producer6bc5c0a6retirescold_share_command_lines_fit_the_kernel_budget_to_the_byte, introduced by its earlier67bb7150input but absent from the pinned PR1453 base; that published retirement is adopted unchanged, not independently redesigned here. The snapshot test-seam entry comes from the feature input; the init count already exists on the pinned base.Small command/hash/result/job receipts and the untruncated test inventory are retained at:
These are joined compile and focused-resolution receipts, not ancestor CI, runtime, native, VM, or complete SL3.5b qualification. Draft CI is not a full pass. No Ready pulse, full-CI request, PR merge, auto-merge, admin bypass, or native stack mutation is made.
Known producer limit at adoption: the coordinator reports four new Copilot findings on PR1441 /
6bc5c0a6, assigned to a fresh producer owner. This input join neither fixes nor waits for those findings, and does not claim they are resolved.Remaining work
A fresh future worker must implement the actual SL3.5b consumer on a fresh context: switch start/exec/stop/deprovision together to the CLI store and new VM APIs, retaining today's provision reader. That work and its lifecycle qualification are deliberately absent here.
Existing-test disposition inventory
All rows below are kept with the preserved producer changes, including producer renames. The complete generated inventory follows; it is not truncated to the first 50 assets.
Full existing-test inventory: all 133 changed assets
This pull request changes existing tests
It modifies or removes 133 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
fn effective_command_lineinhost::cli::run::testsnvx-rs/src/host/cli/run/tests.rs:15nvx-rs/src/host/cli/run/tests.rs:11fn capturedinhost::config::testsnvx-rs/src/host/config/tests.rs:658nvx-rs/src/host/config/tests.rs:685fn coldinhost::config::testsnvx-rs/src/host/config/tests.rs:1104nvx-rs/src/host/config/tests.rs:1137fn start_withinhost::platform::windows::tests,impl HeldSpawn``nvx-rs/src/host/platform/windows/tests.rs:616nvx-rs/src/host/platform/windows/tests.rs:641fn held_processinhost::restore::testsnvx-rs/src/host/restore/tests.rs:29nvx-rs/src/host/restore/tests.rs:29fn runinhost::restore::tests::live_initnvx-rs/src/host/restore/tests/live_init.rs:128nvx-rs/src/host/restore/tests/live_init.rs:128fn end_and_waitinhost::template::clone::tests::launch,impl VmmDir``nvx-rs/src/host/template/clone/tests/launch.rs:362nvx-rs/src/host/template/clone/tests/launch.rs:362fn wait_exitinhost::template::clone::tests::launch,impl VmmDir``nvx-rs/src/host/template/clone/tests/launch.rs:372nvx-rs/src/host/template/clone/tests/launch.rs:372fn dropinhost::template::clone::tests::launch,impl Drop for VmmDir``nvx-rs/src/host/template/clone/tests/launch.rs:412nvx-rs/src/host/template/clone/tests/launch.rs:412fn assert_vmm_endedinhost::template::clone::tests::restorenvx-rs/src/host/template/clone/tests/restore.rs:422nvx-rs/src/host/template/clone/tests/restore.rs:422fn dropinhost::template::store::leases::tests,impl Drop for VmmDir``nvx-rs/src/host/template/store/leases/tests.rs:2459nvx-rs/src/host/template/store/leases/tests.rs:2459fn cold_configinhost::vm::testsnvx-rs/src/host/vm/tests.rs:418nvx-rs/src/host/vm/tests.rs:420fn recorded_processincli (tests)nvx-rs/tests/cli.rs:800nvx-rs/tests/cli.rs:800struct DryRunincli/dry_run (tests)nvx-rs/tests/cli/dry_run.rs:31nvx-rs/tests/cli/dry_run.rs:31fn dry_runincli/dry_run (tests)nvx-rs/tests/cli/dry_run.rs:49nvx-rs/tests/cli/dry_run.rs:51fn run_dry_runsincli/dry_run (tests)nvx-rs/tests/cli/dry_run.rs:378nvx-rs/tests/cli/dry_run.rs:386fn assert_runtime_recordincli/lifecycle (tests)nvx-rs/tests/cli/lifecycle.rs:142nvx-rs/tests/cli/lifecycle.rs:142fn check_lifecycleincli/lifecycle (tests)nvx-rs/tests/cli/lifecycle.rs:550nvx-rs/tests/cli/lifecycle.rs:550fn recycled_process_idincli/lifecycle (tests)nvx-rs/tests/cli/lifecycle.rs:1425nvx-rs/tests/cli/lifecycle.rs:1428struct Launchincli/one_shot (tests)nvx-rs/tests/cli/one_shot.rs:27nvx-rs/tests/cli/one_shot.rs:27fn launchincli/one_shot (tests)nvx-rs/tests/cli/one_shot.rs:56nvx-rs/tests/cli/one_shot.rs:58fn run_launchesincli/one_shot (tests)nvx-rs/tests/cli/one_shot.rs:323nvx-rs/tests/cli/one_shot.rs:332fn run_refusalsincli/validation (tests)nvx-rs/tests/cli/validation.rs:729nvx-rs/tests/cli/validation.rs:729fn killinstore (tests)nvx-rs/tests/store.rs:176nvx-rs/tests/store.rs:176fn dropinsupervisor (tests),impl Drop for VmmDirectory``nvx-rs/tests/supervisor.rs:449nvx-rs/tests/supervisor.rs:449fn open_runninginsupervisor (tests)nvx-rs/tests/supervisor.rs:572nvx-rs/tests/supervisor.rs:574fn assert_endedinsupervisor (tests)nvx-rs/tests/supervisor.rs:580nvx-rs/tests/supervisor.rs:583fn check_vmminsupervisor (tests)nvx-rs/tests/supervisor.rs:1226nvx-rs/tests/supervisor.rs:1241fn dropintemplate_capture (tests),impl Drop for Orphan``nvx-rs/tests/template_capture.rs:530nvx-rs/tests/template_capture.rs:530fn newincommon/mod (tests),impl Sandbox``tests/runtime-adapter/tests/common/mod.rs:154tests/runtime-adapter/tests/common/mod.rs:154fn vmmincommon/mod (tests),impl Sandbox``tests/runtime-adapter/tests/common/mod.rs:406tests/runtime-adapter/tests/common/mod.rs:409fn activateinvm_clone (tests),impl CloneControl for Early``tests/runtime-adapter/tests/vm_clone.rs:2314tests/runtime-adapter/tests/vm_clone.rs:2314fn refuses_earlyinvm_clone (tests)tests/runtime-adapter/tests/vm_clone.rs:2354tests/runtime-adapter/tests/vm_clone.rs:2354host::cli::run::testsnvx-rs/src/host/cli/run/tests.rs:4nvx-rs/src/host/cli/run/tests.rs:4fn every_kind_has_a_code_of_its_own_spellinginerror::testsnvx-rs/src/error/tests.rs:50nvx-rs/src/error/tests.rs:50fn capture_preparation_and_acknowledgement_precede_one_synchronous_callinguest::init::tests::capturenvx-rs/src/guest/init/tests/capture.rs:65nvx-rs/src/guest/init/tests/capture.rs:65fn refused_preparation_or_failed_acknowledgement_never_calls_snapshotinguest::init::tests::capturenvx-rs/src/guest/init/tests/capture.rs:116nvx-rs/src/guest/init/tests/capture.rs:117fn an_old_epoch_drops_its_pending_capture_without_restarting_itinguest::init::tests::capturenvx-rs/src/guest/init/tests/capture.rs:149nvx-rs/src/guest/init/tests/capture.rs:255fn fatal_capture_status_goes_directly_to_pid1_shutdown_without_starting_workinguest::init::tests::capturenvx-rs/src/guest/init/tests/capture.rs:223nvx-rs/src/guest/init/tests/capture.rs:329fn a_capture_sweep_refuses_to_run_outside_pid_1inguest::init::tests::execnvx-rs/src/guest/init/tests/exec.rs:781nvx-rs/src/guest/init/tests/exec.rs:781fn the_sweep_repeats_and_preserves_only_pid_1_and_registered_helpersinguest::init::tests::execnvx-rs/src/guest/init/tests/exec.rs:790nvx-rs/src/guest/init/tests/exec.rs:793fn privileged_capture_sweep_kills_setsid_escapees_and_spares_both_helpersinguest::init::tests::execnvx-rs/src/guest/init/tests/exec.rs:1185nvx-rs/src/guest/init/tests/exec.rs:1190fn capture_acknowledges_then_sends_nothing_until_return_and_reports_on_the_same_sessioninguest::managed_agent::session::testsnvx-rs/src/guest/managed_agent/session/tests.rs:393nvx-rs/src/guest/managed_agent/session/tests.rs:415fn resumed_capture_reports_on_the_same_epoch_without_attaching_againinguest::managed_agent::session::testsnvx-rs/src/guest/managed_agent/session/tests.rs:432nvx-rs/src/guest/managed_agent/session/tests.rs:454fn restored_capture_consumes_reset_and_acknowledges_the_existing_connectioninguest::managed_agent::session::testsnvx-rs/src/guest/managed_agent/session/tests.rs:459nvx-rs/src/guest/managed_agent/session/tests.rs:481fn must_end_returns_the_exact_status_without_a_report_or_more_control_workinguest::managed_agent::session::testsnvx-rs/src/guest/managed_agent/session/tests.rs:514nvx-rs/src/guest/managed_agent/session/tests.rs:536fn single_share_targets_must_remain_one_kernel_tokeninhost::cli::run::testsnvx-rs/src/host/cli/run/tests.rs:41nvx-rs/src/host/cli/run/tests.rs:38fn share_tokens_hide_no_virtio_mmio_deviceinhost::cli::run::tests,proptest!``nvx-rs/src/host/cli/run/tests.rs:63nvx-rs/src/host/cli/run/tests.rs:292fn policy_paths_attach_to_their_sharesinhost::cli::run::tests,proptest!`` (renamed torestore_policy_paths_attach_to_their_shares)nvx-rs/src/host/cli/run/tests.rs:100nvx-rs/src/host/cli/run/tests.rs:332fn aggregate_policy_paths_must_be_absoluteinhost::cli::run::tests,proptest!``nvx-rs/src/host/cli/run/tests.rs:146nvx-rs/src/host/cli/run/tests.rs:378fn configurations_pass_with_or_without_a_nic_address_and_a_bootinhost::config::testsnvx-rs/src/host/config/tests.rs:120nvx-rs/src/host/config/tests.rs:143fn cold_command_lines_keep_the_old_root_view_and_mapping_valuesinhost::config::testsnvx-rs/src/host/config/tests.rs:504nvx-rs/src/host/config/tests.rs:529fn the_check_of_a_configuration_checks_its_boots_captureinhost::config::testsnvx-rs/src/host/config/tests.rs:614nvx-rs/src/host/config/tests.rs:640fn caller_tokens_follow_rendered_tokens_without_any_rewritinginhost::config::testsnvx-rs/src/host/config/tests.rs:895nvx-rs/src/host/config/tests.rs:923fn only_a_checked_cold_boot_has_a_kernel_command_lineinhost::config::testsnvx-rs/src/host/config/tests.rs:914nvx-rs/src/host/config/tests.rs:943fn caller_tokens_cannot_replace_rendered_tokens_under_kernel_name_matchinginhost::config::testsnvx-rs/src/host/config/tests.rs:933nvx-rs/src/host/config/tests.rs:963fn caller_owned_guest_tokens_and_noncolliding_names_stay_unchangedinhost::config::testsnvx-rs/src/host/config/tests.rs:1000nvx-rs/src/host/config/tests.rs:1031fn mapping_table_is_the_exact_export_projection_counted_by_the_boot_tokeninhost::config::testsnvx-rs/src/host/config/tests.rs:1027nvx-rs/src/host/config/tests.rs:1059fn cold_boot_command_lines_refuse_native_control_console_syntaxinhost::config::testsnvx-rs/src/host/config/tests.rs:1145nvx-rs/src/host/config/tests.rs:1179fn children_inherit_only_their_standard_handlesinhost::platform::windows::testsnvx-rs/src/host/platform/windows/tests.rs:206nvx-rs/src/host/platform/windows/tests.rs:219fn a_child_loses_only_the_inherited_handle_that_is_closed_in_itinhost::platform::windows::testsnvx-rs/src/host/platform/windows/tests.rs:295nvx-rs/src/host/platform/windows/tests.rs:310fn children_inherit_the_allowed_handles_while_they_are_createdinhost::platform::windows::testsnvx-rs/src/host/platform/windows/tests.rs:344nvx-rs/src/host/platform/windows/tests.rs:361fn batch_files_are_refused_before_cmd_could_read_their_argumentsinhost::platform::windows::testsnvx-rs/src/host/platform/windows/tests.rs:422nvx-rs/src/host/platform/windows/tests.rs:441fn concurrent_spawns_that_allow_one_handle_all_inherit_it_and_restore_itinhost::platform::windows::testsnvx-rs/src/host/platform/windows/tests.rs:464nvx-rs/src/host/platform/windows/tests.rs:485fn a_spawn_that_panics_in_its_window_restores_the_handles_and_lets_other_spawns_runinhost::platform::windows::testsnvx-rs/src/host/platform/windows/tests.rs:508nvx-rs/src/host/platform/windows/tests.rs:531fn a_launch_whose_vmm_exited_ends_while_a_process_spawned_in_its_window_holds_its_loginhost::platform::windows::testsnvx-rs/src/host/platform/windows/tests.rs:1049nvx-rs/src/host/platform/windows/tests.rs:1076fn a_thread_that_holds_the_spawn_lock_spawns_under_it_until_its_last_lock_is_droppedinhost::platform::windows::testsnvx-rs/src/host/platform/windows/tests.rs:1105nvx-rs/src/host/platform/windows/tests.rs:1132fn exit_handles_are_independently_owned_and_exist_only_for_exit_eventsinhost::process::testsnvx-rs/src/host/process/tests.rs:220nvx-rs/src/host/process/tests.rs:235fn hosts_without_pidfds_poll_and_never_signalinhost::process::testsnvx-rs/src/host/process/tests.rs:259nvx-rs/src/host/process/tests.rs:317fn processes_count_the_bytes_that_their_read_calls_readinhost::process::testsnvx-rs/src/host/process/tests.rs:324nvx-rs/src/host/process/tests.rs:383fn a_process_runs_until_its_last_thread_exitsinhost::process::tests::linuxnvx-rs/src/host/process/tests/linux.rs:112nvx-rs/src/host/process/tests/linux.rs:112fn a_process_whose_command_name_is_not_utf8_can_be_examinedinhost::process::tests::linuxnvx-rs/src/host/process/tests/linux.rs:165nvx-rs/src/host/process/tests/linux.rs:167fn reports_are_summarized_without_free_form_fieldsinhost::report::testsnvx-rs/src/host/report/tests.rs:4nvx-rs/src/host/report/tests.rs:4fn a_clone_whose_launch_failed_before_it_began_launches_no_more_until_its_releaseinhost::template::clone::tests::launchnvx-rs/src/host/template/clone/tests/launch.rs:1547nvx-rs/src/host/template/clone/tests/launch.rs:1549fn a_launch_whose_caller_crashes_once_its_vmm_started_ends_the_vmm_as_reattach_recovers_itinhost::template::clone::tests::launchnvx-rs/src/host/template/clone/tests/launch.rs:2299nvx-rs/src/host/template/clone/tests/launch.rs:2301fn a_restore_whose_caller_crashes_before_its_commit_ends_its_vmm_as_reattach_recovers_itinhost::template::clone::tests::launchnvx-rs/src/host/template/clone/tests/launch.rs:2332nvx-rs/src/host/template/clone/tests/launch.rs:2336fn a_reattach_that_cannot_record_a_failure_ends_and_forgets_nothing_of_the_cloneinhost::template::clone::tests::launchnvx-rs/src/host/template/clone/tests/launch.rs:3634nvx-rs/src/host/template/clone/tests/launch.rs:3643fn a_reattach_makes_the_record_of_an_earlier_failure_durable_before_it_ends_the_launchinhost::template::clone::tests::launchnvx-rs/src/host/template/clone/tests/launch.rs:3736nvx-rs/src/host/template/clone/tests/launch.rs:3748fn a_launch_that_cannot_be_ended_keeps_its_records_and_its_lease_until_a_reattach_ends_itinhost::template::clone::tests::restorenvx-rs/src/host/template/clone/tests/restore.rs:1175nvx-rs/src/host/template/clone/tests/restore.rs:1175fn a_clone_that_crashes_after_its_spawn_keeps_its_lease_until_its_unrecorded_vmm_exitsinhost::template::store::leases::testsnvx-rs/src/host/template/store/leases/tests.rs:2623nvx-rs/src/host/template/store/leases/tests.rs:2625fn a_clone_that_crashes_after_recording_its_vmm_keeps_its_lease_until_reattach_ends_itinhost::template::store::leases::testsnvx-rs/src/host/template/store/leases/tests.rs:2654nvx-rs/src/host/template/store/leases/tests.rs:2658fn another_process_serving_the_endpoint_is_refusedinhost::transport::testsnvx-rs/src/host/transport/tests.rs:142nvx-rs/src/host/transport/tests.rs:142fn a_missing_boot_and_a_snapshot_are_refused_before_any_output_is_createdinhost::vm::testsnvx-rs/src/host/vm/tests.rs:492nvx-rs/src/host/vm/tests.rs:495fn spawn_returns_the_same_outputs_and_capability_with_a_verified_processinhost::vm::testsnvx-rs/src/host/vm/tests.rs:894nvx-rs/src/host/vm/tests.rs:898fn a_library_vm_outlives_the_caller_that_spawned_it_without_retaining_its_output_pipeinhost::vm::testsnvx-rs/src/host/vm/tests.rs:1055nvx-rs/src/host/vm/tests.rs:1061fn spawn_caller_helperinhost::vm::testsnvx-rs/src/host/vm/tests.rs:1088nvx-rs/src/host/vm/tests.rs:1137fn an_unrelated_process_started_in_the_library_spawn_window_gets_no_vm_claiminhost::vm::testsnvx-rs/src/host/vm/tests.rs:1139nvx-rs/src/host/vm/tests.rs:1189fn current_cold_spawn_boots_a_guest_accepts_shell_input_and_exits_cleanlyinhost::vm::testsnvx-rs/src/host/vm/tests.rs:1195nvx-rs/src/host/vm/tests.rs:1246fn reattaching_returns_the_held_owned_child_and_authenticated_connectioninhost::vm::tests::reattachnvx-rs/src/host/vm/tests/reattach.rs:229nvx-rs/src/host/vm/tests/reattach.rs:229fn a_prepared_launch_hands_the_vmm_its_checked_images_aloneinchecked_handoff (tests)nvx-rs/tests/checked_handoff.rs:487nvx-rs/tests/checked_handoff.rs:487fn a_vmm_keeps_the_scratch_images_claim_once_its_launcher_is_goneinchecked_handoff (tests)nvx-rs/tests/checked_handoff.rs:717nvx-rs/tests/checked_handoff.rs:718fn a_stop_under_another_identity_never_ends_a_process_that_its_record_does_not_nameincli (tests)nvx-rs/tests/cli.rs:978nvx-rs/tests/cli.rs:981fn a_start_that_was_interrupted_is_ended_under_another_identity_tooincli (tests)nvx-rs/tests/cli.rs:1026nvx-rs/tests/cli.rs:1031fn stop_reports_its_timeout_and_leaves_the_vm_runningincli (tests)nvx-rs/tests/cli.rs:1139nvx-rs/tests/cli.rs:1144fn a_sandbox_whose_openvmm_exited_reports_it_once_and_starts_againincli (tests)nvx-rs/tests/cli.rs:1186nvx-rs/tests/cli.rs:1193fn a_start_that_ends_before_openvmm_opens_the_images_leaves_it_the_checked_onesincli (tests)nvx-rs/tests/cli.rs:2013nvx-rs/tests/cli.rs:2021fn run_guides_failed_cold_boots_on_cpus_that_no_built_in_profile_servesincli (tests)nvx-rs/tests/cli.rs:2518nvx-rs/tests/cli.rs:2526fn run_shares_relative_roots_with_absolute_policy_pathsincli (tests)nvx-rs/tests/cli.rs:2699nvx-rs/tests/cli.rs:2708fn provision_and_deprovision_need_no_artifact_rootincli/download (tests)nvx-rs/tests/cli/download.rs:165nvx-rs/tests/cli/download.rs:165fn dry_runs_print_the_openvmm_command_and_launch_nothingincli/dry_run (tests)nvx-rs/tests/cli/dry_run.rs:1189nvx-rs/tests/cli/dry_run.rs:1311fn the_openvmm_command_of_a_run_splits_back_into_its_argumentsincli/dry_run (tests)nvx-rs/tests/cli/dry_run.rs:1240nvx-rs/tests/cli/dry_run.rs:1394fn lifecycle_of_a_sandbox_whose_upper_is_in_ramincli/lifecycle (tests)nvx-rs/tests/cli/lifecycle.rs:636nvx-rs/tests/cli/lifecycle.rs:637fn stops_keep_an_outcome_report_that_the_caller_reads_whatever_its_umaskincli/lifecycle (tests)nvx-rs/tests/cli/lifecycle.rs:718nvx-rs/tests/cli/lifecycle.rs:720fn one_shot_runs_exit_with_the_workload_or_openvmm_statusincli/one_shot (tests)nvx-rs/tests/cli/one_shot.rs:660nvx-rs/tests/cli/one_shot.rs:681fn a_restarted_orchestrator_reattaches_to_its_vminfake_openvmm (tests)nvx-rs/tests/fake_openvmm.rs:370nvx-rs/tests/fake_openvmm.rs:370fn outcome_reports_of_another_runtime_are_never_readinfake_openvmm (tests)nvx-rs/tests/fake_openvmm.rs:458nvx-rs/tests/fake_openvmm.rs:459fn records_that_name_another_process_never_end_itinfake_openvmm (tests)nvx-rs/tests/fake_openvmm.rs:498nvx-rs/tests/fake_openvmm.rs:500fn a_committed_launch_names_its_vm_for_another_buildinstore (tests)nvx-rs/tests/store.rs:497nvx-rs/tests/store.rs:499fn long_stores_launch_with_a_short_working_directoryinsupervisor (tests)nvx-rs/tests/supervisor.rs:596nvx-rs/tests/supervisor.rs:602fn a_child_that_exits_wakes_its_waiterinsupervisor (tests)nvx-rs/tests/supervisor.rs:664nvx-rs/tests/supervisor.rs:676fn a_process_that_is_not_a_child_wakes_its_waitersinsupervisor (tests)nvx-rs/tests/supervisor.rs:691nvx-rs/tests/supervisor.rs:703fn a_restarted_launcher_finds_its_vmm_again_and_ends_itinsupervisor (tests)nvx-rs/tests/supervisor.rs:720nvx-rs/tests/supervisor.rs:732fn a_reused_process_id_is_never_signaledinsupervisor (tests)nvx-rs/tests/supervisor.rs:751nvx-rs/tests/supervisor.rs:763fn references_that_name_no_process_are_never_openedinsupervisor (tests)nvx-rs/tests/supervisor.rs:791nvx-rs/tests/supervisor.rs:803fn an_unrecorded_vmm_that_serves_no_endpoint_is_never_signaledinsupervisor (tests)nvx-rs/tests/supervisor.rs:851nvx-rs/tests/supervisor.rs:866fn a_vmm_in_its_orchestrators_job_ends_with_itinsupervisor (tests)nvx-rs/tests/supervisor.rs:1483nvx-rs/tests/supervisor.rs:1498fn a_job_that_ends_its_vmm_wakes_the_waitersinsupervisor (tests)nvx-rs/tests/supervisor.rs:1510nvx-rs/tests/supervisor.rs:1525fn a_process_that_this_user_may_not_terminate_is_waited_for_but_never_signaledinsupervisor (tests)nvx-rs/tests/supervisor.rs:1566nvx-rs/tests/supervisor.rs:1581def FilesystemCommaPathsScenarioTests.test_scenario_shares_each_directory_alone_and_both_togetherinscripts/test_microvm_tests.pyscripts/test_microvm_tests.py:3887scripts/test_microvm_tests.py:3887fn a_host_program_of_another_runtime_ends_the_clone_through_its_verified_identityinvm_clone (tests)tests/runtime-adapter/tests/vm_clone.rs:3882tests/runtime-adapter/tests/vm_clone.rs:3883fn a_clone_whose_vm_exits_once_a_stop_found_it_fails_before_its_lease_is_releasedinvm_clone (tests)tests/runtime-adapter/tests/vm_clone.rs:3930tests/runtime-adapter/tests/vm_clone.rs:3933fn a_run_whose_clone_s_vm_exits_during_its_execution_ends_with_the_clone_s_failureinvm_clone (tests)tests/runtime-adapter/tests/vm_clone.rs:5295tests/runtime-adapter/tests/vm_clone.rs:5300fn the_hook_pauses_a_launch_at_each_of_its_stepsinvm_steps (tests)tests/runtime-adapter/tests/vm_steps.rs:177tests/runtime-adapter/tests/vm_steps.rs:177End-to-end tests
scripts/nvx_tools/microvm_test_scripts/filesystem-comma-paths.sh.inscripts/nvx_tools/microvm_test_scripts/filesystem-comma-paths.sh.inscripts/nvx_tools/microvm_test_scripts/filesystem-comma-paths.sh.indef run_filesystem_comma_pathsinscripts/nvx_tools/microvm_tests.pyscripts/nvx_tools/microvm_tests.py:9978scripts/nvx_tools/microvm_tests.py:9978Test doubles
struct Optionsintesting::fake_openvmmnvx-rs/src/testing/fake_openvmm.rs:341nvx-rs/src/testing/fake_openvmm.rs:345fn mainintesting::fake_openvmmnvx-rs/src/testing/fake_openvmm.rs:465nvx-rs/src/testing/fake_openvmm.rs:477fn run_one_shotintesting::fake_openvmmnvx-rs/src/testing/fake_openvmm.rs:723nvx-rs/src/testing/fake_openvmm.rs:771fn run_microvmintesting::fake_openvmmnvx-rs/src/testing/fake_openvmm.rs:770nvx-rs/src/testing/fake_openvmm.rs:821fn parseintesting::fake_openvmmnvx-rs/src/testing/fake_openvmm.rs:1174nvx-rs/src/testing/fake_openvmm.rs:1241fn serveintesting::fake_openvmmnvx-rs/src/testing/fake_openvmm.rs:2877nvx-rs/src/testing/fake_openvmm.rs:3086fn restores_of_runs_resume_their_saved_guest_whatever_the_cli_tokensintesting::fake_openvmm::testsnvx-rs/src/testing/fake_openvmm/tests.rs:635nvx-rs/src/testing/fake_openvmm/tests.rs:635Test policy
nvx-rs/src/host/snapshot.rs(the seams allow 1 test hooks)scripts/test-layout-allowlist.jsonRelocated unchanged: 0; added: 173. Compared the merge base
d56d3d343977with928edaad5a0c.