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 ); }