43 lines
1.3 KiB
Rust
43 lines
1.3 KiB
Rust
use std::time::Duration;
|
|
|
|
#[tokio::test]
|
|
#[ignore]
|
|
async fn docker_swarm_smoke_test_is_gated_and_times_out() {
|
|
let enabled = std::env::var("CONTROL_TEST_DOCKER").ok();
|
|
assert_eq!(enabled.as_deref(), Some("1"));
|
|
|
|
let stack = "cloudlysis_control_test";
|
|
let compose = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR"))
|
|
.parent()
|
|
.and_then(|p| p.parent())
|
|
.unwrap()
|
|
.join("swarm/stacks/control-plane.yml");
|
|
|
|
let deploy = tokio::process::Command::new("docker")
|
|
.args(["stack", "deploy", "-c"])
|
|
.arg(&compose)
|
|
.arg(stack)
|
|
.output();
|
|
|
|
let out = tokio::time::timeout(Duration::from_secs(30), deploy)
|
|
.await
|
|
.expect("docker stack deploy timed out")
|
|
.expect("failed to run docker stack deploy");
|
|
assert!(
|
|
out.status.success(),
|
|
"docker stack deploy failed: {}",
|
|
String::from_utf8_lossy(&out.stderr)
|
|
);
|
|
|
|
let ls = tokio::process::Command::new("docker")
|
|
.args(["service", "ls"])
|
|
.output();
|
|
let _ = tokio::time::timeout(Duration::from_secs(10), ls).await;
|
|
|
|
let rm = tokio::process::Command::new("docker")
|
|
.args(["stack", "rm"])
|
|
.arg(stack)
|
|
.output();
|
|
let _ = tokio::time::timeout(Duration::from_secs(10), rm).await;
|
|
}
|