chore: ci

This commit is contained in:
zhom
2026-08-01 22:39:39 +04:00
parent f75f8ebca1
commit 4b048f9702
4 changed files with 21 additions and 11 deletions
+16
View File
@@ -1,6 +1,22 @@
use std::path::PathBuf;
use std::process::Command;
/// Whether Docker can run the Linux images these fixtures are built from.
///
/// `docker version` succeeding is not enough: the Windows CI runner ships a
/// daemon in Windows-container mode, which answers that command happily and
/// then rejects the fixtures with `unknown capability: "CAP_NET_ADMIN"`.
#[allow(dead_code)]
pub fn docker_supports_linux_containers() -> bool {
Command::new("docker")
.args(["version", "--format", "{{.Server.Os}}"])
.output()
.map(|output| {
output.status.success() && String::from_utf8_lossy(&output.stdout).trim() == "linux"
})
.unwrap_or(false)
}
/// Utility functions for integration tests
pub struct TestUtils;
+2 -4
View File
@@ -1612,10 +1612,8 @@ async fn test_local_proxy_with_shadowsocks_upstream(
let binary_path = setup_test().await?;
let mut tracker = ProxyTestTracker::new(binary_path.clone());
// Check Docker availability
let docker_check = std::process::Command::new("docker").arg("version").output();
if docker_check.map(|o| !o.status.success()).unwrap_or(true) {
eprintln!("skipping Shadowsocks e2e test because Docker is unavailable");
if !common::docker_supports_linux_containers() {
eprintln!("skipping Shadowsocks e2e test because Docker cannot run Linux containers");
return Ok(());
}
+2 -6
View File
@@ -24,13 +24,9 @@ fn has_external_wireguard_service() -> bool {
std::env::var("VPN_TEST_WG_HOST").is_ok()
}
/// Check if Docker is available
/// Check if Docker can run the Linux fixtures this harness needs
pub fn is_docker_available() -> bool {
Command::new("docker")
.arg("version")
.output()
.map(|o| o.status.success())
.unwrap_or(false)
crate::common::docker_supports_linux_containers()
}
/// Start a WireGuard test server and return client config
+1 -1
View File
@@ -775,7 +775,7 @@ async fn test_wireguard_traffic_flows_through_donut_proxy(
cleanup_runtime().await;
if !test_harness::is_docker_available() {
eprintln!("skipping WireGuard e2e test because Docker is unavailable");
eprintln!("skipping WireGuard e2e test because Docker cannot run Linux containers");
return Ok(());
}