Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions e2e/rust/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -209,11 +209,6 @@ name = "forward_proxy_jsonrpc_l7"
path = "tests/forward_proxy_jsonrpc_l7.rs"
required-features = ["e2e-host-gateway"]

[[test]]
name = "workspace_lifecycle"
path = "tests/workspace_lifecycle.rs"
required-features = ["e2e"]

[[test]]
name = "sandbox_templates"
path = "tests/sandbox_templates.rs"
Expand Down
278 changes: 0 additions & 278 deletions e2e/rust/tests/workspace_lifecycle.rs

This file was deleted.

6 changes: 4 additions & 2 deletions e2e/suites/conformance/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ conformance area and user story. The CLI is the current client interface; lifecy
- `cli/tests/<area>/<story>.rs`: test functions, steps, and assertions for a story.
- `cli/tests/<area>/helpers.rs`: setup and assertions shared by that area's stories.

The current areas are `file_transfer`, `lifecycle`, `policy_advisor`, and `smoke`.
The current areas are `file_transfer`, `lifecycle`, `policy_advisor`, `smoke`, and
`workspaces`.
Each area compiles into one test binary; individual stories remain selectable by
their module prefix. `main.rs` contains only module declarations.

Expand Down Expand Up @@ -66,7 +67,8 @@ must supply the workload image and tools used by the selected scenarios. Missing
CLI or gateway prerequisites fail the run rather than silently passing.

Run one group with `--test file_transfer`, `--test lifecycle`,
`--test policy_advisor`, or `--test smoke`, before the `--` separator. A group or
`--test policy_advisor`, `--test smoke`, or `--test workspaces`, before the `--`
separator. A group or
individual-test filter exercises only part of the suite.

The tmachine conformance testsuite runs these same entry points from the
Expand Down
53 changes: 53 additions & 0 deletions e2e/suites/conformance/cli/tests/workspaces/crud.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
// SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: Apache-2.0

use super::helpers::{fails, finish, require_status, succeeds};
use openshell_e2e_support::OpenShellRunner;

/// Verify a workspace can be created, inspected, listed as Active, deleted when
/// empty, and is gone afterwards.
#[tokio::test]
async fn workspace_full_crud_lifecycle() {
let mut runner =
OpenShellRunner::from_env("workspaces/crud").expect("candidate openshell CLI is available");
let workspace = format!("ws-{}-cr", runner.id());
let result = async {
runner.check_gateway_status().await?;
let r = &runner;
let name = workspace.as_str();
succeeds(
r,
"create",
"workspace is created",
&["workspace", "create", "--name", name],
)
.await?;
succeeds(
r,
"get",
"workspace can be retrieved",
&["workspace", "get", name],
)
.await?;
require_status(r, "list-active", name, Some("Active")).await?;
succeeds(
r,
"delete",
"empty workspace is deleted",
&["workspace", "delete", name],
)
.await?;
fails(
r,
"get-after-delete",
"deleted workspace is gone",
&["workspace", "get", name],
)
.await?;
require_status(r, "list-absent", name, None).await
}
.await;
if let Err(error) = finish(runner, result, &workspace, &[]).await {
panic!("workspaces/crud conformance story failed:\n{error}");
}
}
Loading
Loading