test(podman): move podman_preflight into driver-podman integration tests - #3783
politerealism wants to merge 2 commits into
Conversation
podman_preflight verifies that openshell-driver-podman fails fast when its Podman socket is unreachable. It only needs the standalone driver binary, not a gateway, so it never fit the gateway-backed e2e-podman harness it lived under and never ran anywhere in CI. Move it into crates/openshell-driver-podman/tests/ as a plain Cargo integration test. It now runs via the existing required workspace test job with no special mise task, workflow step, or coverage exception. Signed-off-by: politerealism <burdcat17@gmail.com>
Signed-off-by: Evan Lezar <elezar@nvidia.com>
|
Closing in favor of #3771, opened by elezar shortly before this one to address the same review feedback from #3749 — it takes the preflight-retry behavior further than this PR does (extracting the retry loop into a directly testable helper with paused-Tokio-time unit coverage, plus a crate-level smoke test), so no need to duplicate the effort here. The remaining scope of #3712 (shared-target coverage, |
|
Label |
Summary
podman_preflightverifies thatopenshell-driver-podmanfails fast with an actionable error when its Podman socket is unreachable, instead of hanging or serving gRPC against a dead connection. It never ran anywhere in CI because it required only the standalone driver binary, not a gateway, so it never fit the gateway-backede2e-podmanharness it lived under.This moves it into
crates/openshell-driver-podman/tests/as a plain Cargo integration test. It now runs automatically via the existing requiredcargo nextest run --workspacejob — no special mise task, workflow step, or coverage exception needed.Related Issue
Addresses one acceptance criterion of #3712 (
podman_preflightruns in CI and verifies the bounded, actionable daemon-unavailable failure path). This is a narrow follow-up to #3749, which took a different, broader approach (wiring into thee2e-podmanworkflow plus a new coverage-drift check) that received change requests.Per that review, this PR:
podman_preflightinto the driver crate as a unit/integration test rather than an E2E workflow test (its semantics — retry/error path against a missing socket — don't require Podman or a gateway).e2e-podmanarchive already made target selection default-inclusive, which closes the actual silent-gap failure mode this test was missing from. A stale-exclusion lint would only catch list hygiene, not coverage gaps, so it isn't included here.PODMAN_CI_TESTS,podmanE2eFollowUpBinaries, or any other selection list, other than removingpodman_preflightfrom the exclusion list since it's no longer ane2e-podmantarget at all.The remainder of #3712 (shared-target CI coverage,
podman_oci_identity/podman_resource_limits/provider_refresh_handlesagainst a real gateway, rootful/rootless explicitness, Release Dev/Tag qualification, selected-vs-eligible reporting) is tracked separately as Track B and is not addressed by this PR.Changes
e2e/rust/tests/podman_preflight.rstocrates/openshell-driver-podman/tests/podman_preflight.rs, usingCARGO_BIN_EXE_openshell-driver-podman(Cargo-provided for this crate's own[[bin]]target) instead of a hand-resolved workspace path.[[test]]entry frome2e/rust/Cargo.tomland thepodman_preflightline (with its now-stale comment) fromtests/artifacts.nix'spodmanE2eFollowUpBinaries.tempfileas a dev-dependency ofopenshell-driver-podman(already used transitively via the moved test).Testing
cargo test -p openshell-driver-podman --test podman_preflight— both tests pass locally.cargo check --manifest-path e2e/rust/Cargo.toml --features e2e-podman --tests— builds clean after removal, no dead code (strip_ansiremains used elsewhere).mise run pre-commitpasses.cargo fmt --all -- --checkpasses.Checklist
🤖 Generated with Claude Code