Add integration tests based on testcontainers

This commit is contained in:
2026-10-25 19:47:25 +02:00
parent 2ccd67d64c
commit f4a6540df9
24 changed files with 8693 additions and 68 deletions
+47
View File
@@ -0,0 +1,47 @@
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
);
}