test(e2e): add API and CLI conformance profiles - #2182
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
8f15a6c to
a0bb1ff
Compare
de26f37 to
9493e29
Compare
6fe2c16 to
8bb0509
Compare
| // ── 4. Second delete → ok, deleted: false ──────────────────────────── | ||
| let del2 = client | ||
| .delete_sandbox(DeleteSandboxRequest { | ||
| name: sandbox_name.clone(), | ||
| workspace: String::new(), | ||
| }) | ||
| .await | ||
| .into_diagnostic() | ||
| .wrap_err("second delete_sandbox (idempotency check) returned an error")? | ||
| .into_inner(); |
There was a problem hiding this comment.
Good catch. deleted: false reflects the compute-driver contract, but the gateway returns NOT_FOUND when its sandbox record is already absent. Since this PR should document existing behavior rather than change production semantics, I’ve updated both assertions to expect NOT_FOUND. We can consider idempotent gateway deletion separately.
Signed-off-by: Evan Lezar <elezar@nvidia.com>
Signed-off-by: Evan Lezar <elezar@nvidia.com>
Signed-off-by: Evan Lezar <elezar@nvidia.com>
Signed-off-by: Evan Lezar <elezar@nvidia.com>
Signed-off-by: Evan Lezar <elezar@nvidia.com>
Signed-off-by: Evan Lezar <elezar@nvidia.com>
Signed-off-by: Evan Lezar <elezar@nvidia.com>
8bb0509 to
2ce39c4
Compare
|
Label |
| fn sandbox_names(&self, run_id: &str) -> Vec<String> { | ||
| self.sandbox_name_stems | ||
| .iter() | ||
| .map(|stem| format!("conformance-{stem}-{run_id}")) | ||
| .collect() | ||
| } |
There was a problem hiding this comment.
I suspect some issues with this function since sandbox names are limited by default
OpenShell/crates/openshell-server/src/grpc/mod.rs
Lines 108 to 113 in 2ce39c4
|
https://github.com/NVIDIA/OpenShell/actions/runs/29925827101/job/88952077297#step:11:600 it seems there is an issue with rustls but I don't see a change in this PR that could explain this |
Signed-off-by: Evan Lezar <elezar@nvidia.com>
Summary
Adds explicit API and CLI conformance profiles to the standalone Rust e2e package without changing production code.
The API profile validates driver-independent gateway and sandbox semantics directly over gRPC. The CLI profile identifies portable user workflows that can run against any compatible gateway while remaining separate from driver-specific infrastructure coverage. Gateway restart tests now share an application-level resume scenario but remain outside baseline conformance because they require provisioner control.
Related Issue
Changes
openshell-conformancebinary undere2e/ruste2e-api-conformanceprofile and run it against Docker, Podman, Kubernetes, and VM gateway lanese2e-cli-conformanceprofile for portable smoke, sandbox lifecycle, labels, port forwarding, sync, and upload-on-create workflowssandbox create -- <command>andsandbox execopenshell-clicrateThe capabilities scenario remains deferred until the gateway exposes driver capabilities through its public API. Additional CLI, security/network, and external-image conformance candidates are intentionally left for follow-up work.
Testing
openshell-conformancebinary testsopenshell-conformance list --output jsonreporting all eight API scenariosgit diff --checkmise run pre-commit(miseis unavailable in the current environment)Checklist