mirror of
https://github.com/NVIDIA/OpenShell.git
synced 2026-10-15 05:09:44 +08:00
* test(e2e): add workload manifest build flow Signed-off-by: Evan Lezar <elezar@nvidia.com> * test(e2e): add gpu workload validation tests Signed-off-by: Evan Lezar <elezar@nvidia.com> * ci(e2e): build gpu workloads before gpu e2e Signed-off-by: Evan Lezar <elezar@nvidia.com> --------- Signed-off-by: Evan Lezar <elezar@nvidia.com>
143 lines
3.6 KiB
TOML
143 lines
3.6 KiB
TOML
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
# Standalone crate — the empty [workspace] table prevents Cargo from
|
|
# treating this as part of the root workspace, avoiding Dockerfile
|
|
# and Cargo.lock coupling.
|
|
[workspace]
|
|
|
|
[package]
|
|
name = "openshell-e2e"
|
|
description = "End-to-end tests for the OpenShell CLI"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
rust-version = "1.88"
|
|
license = "Apache-2.0"
|
|
publish = false
|
|
|
|
[features]
|
|
e2e = []
|
|
# Selects tests that rely on `host.openshell.internal` (the sandbox's stable
|
|
# alias to the host running test fixtures). docker and podman wire the alias
|
|
# unconditionally; the kube driver only does so when the chart's
|
|
# `server.hostGatewayIP` is set, so `e2e-kubernetes` does NOT imply this and
|
|
# the helm wrapper opts in explicitly when it has resolved an IP.
|
|
e2e-host-gateway = ["e2e"]
|
|
e2e-local-container-driver = ["e2e"]
|
|
e2e-docker = ["e2e", "e2e-host-gateway", "e2e-local-container-driver"]
|
|
e2e-gpu = ["e2e"]
|
|
e2e-docker-gpu = ["e2e-docker", "e2e-gpu"]
|
|
e2e-kubernetes = ["e2e"]
|
|
e2e-podman = ["e2e", "e2e-host-gateway", "e2e-local-container-driver"]
|
|
e2e-podman-gpu = ["e2e-podman", "e2e-gpu"]
|
|
e2e-vm = ["e2e"]
|
|
|
|
[[test]]
|
|
name = "custom_image"
|
|
path = "tests/custom_image.rs"
|
|
required-features = ["e2e-docker"]
|
|
|
|
[[test]]
|
|
name = "docker_preflight"
|
|
path = "tests/docker_preflight.rs"
|
|
required-features = ["e2e-docker"]
|
|
|
|
[[test]]
|
|
name = "driver_config_volume"
|
|
path = "tests/driver_config_volume.rs"
|
|
required-features = ["e2e-local-container-driver"]
|
|
|
|
[[test]]
|
|
name = "gateway_resume"
|
|
path = "tests/gateway_resume.rs"
|
|
required-features = ["e2e-docker"]
|
|
|
|
[[test]]
|
|
name = "local_driver_token_restart"
|
|
path = "tests/local_driver_token_restart.rs"
|
|
required-features = ["e2e"]
|
|
|
|
[[test]]
|
|
name = "podman_gateway_resume"
|
|
path = "tests/podman_gateway_resume.rs"
|
|
required-features = ["e2e-podman"]
|
|
|
|
[[test]]
|
|
name = "vm_gateway_resume"
|
|
path = "tests/vm_gateway_resume.rs"
|
|
required-features = ["e2e-vm"]
|
|
|
|
[[test]]
|
|
name = "readyz_health"
|
|
path = "tests/readyz_health.rs"
|
|
required-features = ["e2e-kubernetes"]
|
|
|
|
[[test]]
|
|
name = "websocket_conformance"
|
|
path = "tests/websocket_conformance.rs"
|
|
required-features = ["e2e-host-gateway"]
|
|
|
|
[[test]]
|
|
name = "user_namespaces"
|
|
path = "tests/user_namespaces.rs"
|
|
required-features = ["e2e-kubernetes"]
|
|
|
|
[[test]]
|
|
name = "host_gateway_alias"
|
|
path = "tests/host_gateway_alias.rs"
|
|
required-features = ["e2e-host-gateway"]
|
|
|
|
[[test]]
|
|
name = "forward_proxy_l7_bypass"
|
|
path = "tests/forward_proxy_l7_bypass.rs"
|
|
required-features = ["e2e-host-gateway"]
|
|
|
|
[[test]]
|
|
name = "forward_proxy_graphql_l7"
|
|
path = "tests/forward_proxy_graphql_l7.rs"
|
|
required-features = ["e2e-host-gateway"]
|
|
|
|
[[test]]
|
|
name = "forward_proxy_jsonrpc_l7"
|
|
path = "tests/forward_proxy_jsonrpc_l7.rs"
|
|
required-features = ["e2e-host-gateway"]
|
|
|
|
[[test]]
|
|
name = "gpu"
|
|
path = "tests/gpu.rs"
|
|
required-features = ["e2e-gpu"]
|
|
|
|
[dependencies]
|
|
base64 = "0.22"
|
|
bollard = "0.20"
|
|
bytes = "1"
|
|
futures-util = "0.3"
|
|
http-body-util = "0.1"
|
|
hyper = { version = "1", features = ["client", "http1"] }
|
|
hyper-util = { version = "0.1", features = ["tokio"] }
|
|
prost = "0.13"
|
|
tokio = { version = "1.43", features = ["full"] }
|
|
tempfile = "3"
|
|
sha1 = "0.10"
|
|
sha2 = "0.10"
|
|
hex = "0.4"
|
|
rand = "0.9"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
serde_yml = "0.0.12"
|
|
|
|
[dev-dependencies]
|
|
serial_test = "3"
|
|
|
|
[lints.rust]
|
|
unsafe_code = "warn"
|
|
rust_2018_idioms = { level = "warn", priority = -1 }
|
|
|
|
[lints.clippy]
|
|
all = { level = "warn", priority = -1 }
|
|
pedantic = { level = "warn", priority = -1 }
|
|
module_name_repetitions = "allow"
|
|
must_use_candidate = "allow"
|
|
missing_errors_doc = "allow"
|
|
missing_panics_doc = "allow"
|