Files
OpenShell/e2e/rust/Cargo.toml
alangou 2bdc968ed9 fix(gateway): make readiness health checks dependency-aware (#1328)
* feat(gateway): add readiness probe metrics and test-only store close

Emit Prometheus readiness metrics for database probes (healthy gauge and
outcome-labeled latency histogram) with coverage in health HTTP tests.
Restrict Store::close behind test support cfg to prevent accidental runtime
pool shutdown under live traffic.

Signed-off-by: Adrien Langou <alangou@nvidia.com>

* test(e2e): add simple e2e test with kubernetes to test /readyz

Signed-off-by: Adrien Langou <alangou@nvidia.com>

---------

Signed-off-by: Adrien Langou <alangou@nvidia.com>
2026-05-27 11:00:06 -07:00

119 lines
3.0 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-docker = ["e2e", "e2e-host-gateway"]
e2e-gpu = ["e2e"]
e2e-docker-gpu = ["e2e-docker", "e2e-gpu"]
e2e-kubernetes = ["e2e"]
e2e-podman = ["e2e", "e2e-host-gateway"]
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 = "gateway_resume"
path = "tests/gateway_resume.rs"
required-features = ["e2e-docker"]
[[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 = "gpu_device_selection"
path = "tests/gpu_device_selection.rs"
required-features = ["e2e-gpu"]
[dependencies]
base64 = "0.22"
bytes = "1"
http-body-util = "0.1"
hyper = { version = "1", features = ["client", "http1"] }
hyper-util = { version = "0.1", features = ["tokio"] }
tokio = { version = "1.43", features = ["full"] }
tempfile = "3"
sha1 = "0.10"
sha2 = "0.10"
hex = "0.4"
rand = "0.9"
serde_json = "1"
[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"