mirror of
https://github.com/zhom/donutbrowser.git
synced 2026-08-24 20:02:58 +02:00
chore: ci
This commit is contained in:
@@ -1,6 +1,22 @@
|
|||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use std::process::Command;
|
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
|
/// Utility functions for integration tests
|
||||||
pub struct TestUtils;
|
pub struct TestUtils;
|
||||||
|
|
||||||
|
|||||||
@@ -1612,10 +1612,8 @@ async fn test_local_proxy_with_shadowsocks_upstream(
|
|||||||
let binary_path = setup_test().await?;
|
let binary_path = setup_test().await?;
|
||||||
let mut tracker = ProxyTestTracker::new(binary_path.clone());
|
let mut tracker = ProxyTestTracker::new(binary_path.clone());
|
||||||
|
|
||||||
// Check Docker availability
|
if !common::docker_supports_linux_containers() {
|
||||||
let docker_check = std::process::Command::new("docker").arg("version").output();
|
eprintln!("skipping Shadowsocks e2e test because Docker cannot run Linux containers");
|
||||||
if docker_check.map(|o| !o.status.success()).unwrap_or(true) {
|
|
||||||
eprintln!("skipping Shadowsocks e2e test because Docker is unavailable");
|
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,13 +24,9 @@ fn has_external_wireguard_service() -> bool {
|
|||||||
std::env::var("VPN_TEST_WG_HOST").is_ok()
|
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 {
|
pub fn is_docker_available() -> bool {
|
||||||
Command::new("docker")
|
crate::common::docker_supports_linux_containers()
|
||||||
.arg("version")
|
|
||||||
.output()
|
|
||||||
.map(|o| o.status.success())
|
|
||||||
.unwrap_or(false)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Start a WireGuard test server and return client config
|
/// 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;
|
cleanup_runtime().await;
|
||||||
if !test_harness::is_docker_available() {
|
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(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user