test(e2e): close Podman driver test coverage gaps#1439
Merged
Conversation
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.
|
Label |
Collaborator
|
/ok to test cb9c2cc |
TaylorMutch
reviewed
May 18, 2026
TaylorMutch
approved these changes
May 19, 2026
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.
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.
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
websocket_conformancefeature gate frome2e-dockertoe2e-host-gatewayso it runs on both Docker and Podman (the test is driver-agnostic — uses standard WebSocket protocol andhost.openshell.internal)podman_gateway_resumetest 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)e2e-podman.shdefault features frome2etoe2e-podmanso Podman-specific and host-gateway tests are actually included in Podman CI runsrun_cli,wait_for_healthy,sandbox_names,wait_for_sandbox_exec_contains) intoharness::climodule, removing ~300 lines of duplication across the three gateway_resume test variantsIntentionally not changed
custom_imagestayse2e-docker— the CLI's--from Dockerfilebuild path uses bollard which hardcodesDocker::connect_with_local_defaults()docker_preflightstayse2e-docker—openshell doctor checkonly validates DockerTesting
mise run pre-commitpassesmise run e2e:podman— full suite passes (65 tests), including both new Podman testscargo checkwithe2e-podman,e2e-docker,e2e-host-gateway, ande2e-vmfeaturescustom_imageandwebsocket_conformanceare correctly excluded undere2e-vmChecklist