Skip to content

test(e2e): close Podman driver test coverage gaps#1439

Merged
TaylorMutch merged 2 commits into
NVIDIA:mainfrom
russellb:podman-e2e-coverage/rb
May 19, 2026
Merged

test(e2e): close Podman driver test coverage gaps#1439
TaylorMutch merged 2 commits into
NVIDIA:mainfrom
russellb:podman-e2e-coverage/rb

Conversation

@russellb
Copy link
Copy Markdown
Contributor

Summary

Close e2e test coverage gaps between Docker and Podman drivers. Podman previously had zero driver-specific tests while Docker had four. This PR adds Podman coverage for gateway restart resumption and WebSocket credential rewriting, extracts shared test helpers to reduce duplication, and fixes the Podman e2e script to actually enable Podman-specific tests.

Changes

  • Widen websocket_conformance feature gate from e2e-docker to e2e-host-gateway so it runs on both Docker and Podman (the test is driver-agnostic — uses standard WebSocket protocol and host.openshell.internal)
  • Add podman_gateway_resume test following the VM pattern — verifies sandbox survival after gateway restart without asserting container-state transitions (Podman keeps containers running when the gateway stops, unlike Docker)
  • Fix e2e-podman.sh default features from e2e to e2e-podman so Podman-specific and host-gateway tests are actually included in Podman CI runs
  • Extract shared CLI helpers (run_cli, wait_for_healthy, sandbox_names, wait_for_sandbox_exec_contains) into harness::cli module, removing ~300 lines of duplication across the three gateway_resume test variants

Intentionally not changed

  • custom_image stays e2e-docker — the CLI's --from Dockerfile build path uses bollard which hardcodes Docker::connect_with_local_defaults()
  • docker_preflight stays e2e-dockeropenshell doctor check only validates Docker

Testing

  • mise run pre-commit passes
  • mise run e2e:podman — full suite passes (65 tests), including both new Podman tests
  • cargo check with e2e-podman, e2e-docker, e2e-host-gateway, and e2e-vm features
  • Verified custom_image and websocket_conformance are correctly excluded under e2e-vm

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)

russellb added 2 commits May 18, 2026 17:07
Add podman_gateway_resume test following the VM pattern (no
container-state assertions since Podman keeps containers running across
gateway restarts). Widen websocket_conformance feature gate from
e2e-docker to e2e-host-gateway so it runs on both Docker and Podman.
Fix e2e-podman.sh to default to the e2e-podman feature so Podman-
specific and host-gateway tests are actually included in Podman CI runs.
Move run_cli, wait_for_healthy, sandbox_names, and
wait_for_sandbox_exec_contains into a new harness::cli module. All three
gateway_resume variants (Docker, Podman, VM) now import these shared
helpers instead of defining identical copies. Docker-specific container
introspection functions remain local to gateway_resume.rs.
@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot Bot commented May 18, 2026

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@TaylorMutch TaylorMutch added the test:e2e Requires end-to-end coverage label May 18, 2026
@github-actions
Copy link
Copy Markdown

Label test:e2e applied, but pull-request/1439 is at {"messa while the PR head is cb9c2cc. A maintainer needs to comment /ok to test cb9c2ccff724064094575811056bd53a2dd0782a to refresh the mirror. Once the mirror catches up, re-run Branch E2E Checks from the Actions tab.

@TaylorMutch
Copy link
Copy Markdown
Collaborator

/ok to test cb9c2cc

Comment thread e2e/rust/tests/podman_gateway_resume.rs
@TaylorMutch TaylorMutch merged commit 65a3a7c into NVIDIA:main May 19, 2026
40 of 42 checks passed
st-gr pushed a commit to st-gr/OpenShell that referenced this pull request May 28, 2026
* test(e2e): close Podman driver test coverage gaps

Add podman_gateway_resume test following the VM pattern (no
container-state assertions since Podman keeps containers running across
gateway restarts). Widen websocket_conformance feature gate from
e2e-docker to e2e-host-gateway so it runs on both Docker and Podman.
Fix e2e-podman.sh to default to the e2e-podman feature so Podman-
specific and host-gateway tests are actually included in Podman CI runs.

* refactor(e2e): extract shared CLI helpers from gateway_resume tests

Move run_cli, wait_for_healthy, sandbox_names, and
wait_for_sandbox_exec_contains into a new harness::cli module. All three
gateway_resume variants (Docker, Podman, VM) now import these shared
helpers instead of defining identical copies. Docker-specific container
introspection functions remain local to gateway_resume.rs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:e2e Requires end-to-end coverage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants