You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: TESTING.md
+42-4Lines changed: 42 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -148,14 +148,16 @@ lifecycle management, output parsing, and cleanup.
148
148
Suites:
149
149
150
150
- Common suite (`--features e2e`) - driver-neutral CLI behavior, sandbox lifecycle, sync, port forwarding, policy, and provider tests.
151
-
- Docker suite (`--features e2e-docker`) - common suite plus Docker-only coverage such as Dockerfile image builds, Docker preflight checks, and managed Docker gateway start.
151
+
- CLI conformance (`--features e2e-cli-conformance`) - the portable deployment
152
+
smoke scenario plus focused tests for its reusable command runner.
153
+
- Driver suites (`--features e2e-docker`, `e2e-podman`, `e2e-kubernetes`, or
154
+
`e2e-vm`) - CLI conformance plus the common and driver-specific coverage for
155
+
the selected deployment.
156
+
- Docker suite (`--features e2e-docker`) - includes Docker-only coverage such as Dockerfile image builds, Docker preflight checks, and managed Docker gateway start.
152
157
- Docker GPU suite (`--features e2e-docker-gpu`) - Docker suite plus GPU sandbox smoke coverage.
153
158
- VM suite (`--features e2e-vm`) - runs e2e tests on a VM.
154
159
- Kubernetes credential-driver suite (`--features e2e-kubernetes-credential-drivers`) - targeted Kubernetes Secrets and Vault provider credential storage coverage.
155
160
156
-
VM overlay and TLS-key permission assertions run only in the VM suite; the
157
-
driver-neutral smoke test does not include them.
158
-
159
161
GPU device-selection tests compare OpenShell sandboxes against a plain Docker or
160
162
Podman container that requests `--device nvidia.com/gpu=all`. The probe image
161
163
defaults to the image used by the `gateway` stage in
@@ -172,6 +174,42 @@ Run the Docker-backed Rust CLI e2e suite:
172
174
mise run e2e:rust
173
175
```
174
176
177
+
Run the minimal portable CLI conformance profile against the gateway selected
178
+
in your OpenShell CLI configuration:
179
+
180
+
```shell
181
+
mise run e2e:cli-conformance
182
+
```
183
+
184
+
The gateway must already be installed, reachable, and selected before the task
185
+
starts. The task does not provision a gateway or select a compute driver. Set
186
+
`OPENSHELL_BIN` to test a prebuilt CLI; otherwise, the task builds the CLI from
187
+
the current checkout.
188
+
189
+
The phase-1 scenario verifies the complete CLI-to-gateway-to-driver path without
190
+
depending on how the gateway was installed or which driver is configured. It
191
+
requires machine-readable gRPC status, creates a uniquely named detached
192
+
sandbox with `--from base`, verifies the sandbox is `Ready` by finding its
193
+
unique name in paginated JSON list output, executes `echo` with a run-specific
194
+
marker, deletes the sandbox, and verifies that its name no longer appears.
195
+
Driver suites enable the same profile
196
+
instead of maintaining a separate smoke implementation. Sandbox lifecycle,
197
+
label matrices, VM overlay, and TLS-key permission assertions remain regular
198
+
E2E coverage.
199
+
200
+
Each invocation prints a ten-character run ID before creating resources.
201
+
Conformance sandboxes use names such as `ct-<run-id>-01`. The runner tracks the
202
+
exact name and uses it for cleanup; phase 1 does not add ownership labels.
203
+
204
+
The runner deletes owned resources after both success and failure. If the test
205
+
process is interrupted before cleanup, locate leftovers without touching
0 commit comments