mirror of
https://github.com/zhom/donutbrowser.git
synced 2026-08-02 17:28:43 +02:00
chore: ci
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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(());
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user