48 lines
1.6 KiB
Rust
48 lines
1.6 KiB
Rust
mod support;
|
|
|
|
use std::time::Duration;
|
|
|
|
use support::container_harness::{ProbeNames, cleanup_confirmed_probe_resources, run_probe};
|
|
use support::container_selection::Selection;
|
|
|
|
const CLEANUP_BUDGET: Duration = Duration::from_secs(40);
|
|
|
|
#[test]
|
|
#[ignore = "requires an explicitly selected disposable Docker daemon"]
|
|
fn selected_daemon_wireguard_and_application_smoke() {
|
|
let selection = Selection::from_process_environment()
|
|
.unwrap_or_else(|category| panic!("Testcontainers selection failed ({category})"));
|
|
let names = ProbeNames::unique();
|
|
let result = run_probe(&names);
|
|
|
|
// run_probe is synchronous: all Testcontainers requests return or reach the
|
|
// pinned client's request timeout before this ownership-checked cleanup.
|
|
let cleanup = cleanup_confirmed_probe_resources(
|
|
&selection,
|
|
&names,
|
|
&std::process::id().to_string(),
|
|
CLEANUP_BUDGET,
|
|
);
|
|
|
|
if !cleanup.is_empty() {
|
|
eprintln!(
|
|
"Testcontainers cleanup incomplete for owned resources {}, {}, {}, {} ({})",
|
|
names.network,
|
|
names.server,
|
|
names.baseline,
|
|
names.client,
|
|
cleanup.join(", ")
|
|
);
|
|
}
|
|
if let Err(category) = result {
|
|
panic!("Testcontainers probe failed ({category})");
|
|
}
|
|
if !cleanup.is_empty() {
|
|
panic!("Testcontainers probe passed but owned-resource cleanup was incomplete");
|
|
}
|
|
eprintln!(
|
|
"Testcontainers capability and Application smoke passed; owned resources: {}, {}, {}, {}",
|
|
names.network, names.server, names.baseline, names.client
|
|
);
|
|
}
|