use std::{
fs,
path::PathBuf,
sync::atomic::{AtomicU64, Ordering},
};
static TEMP_DIRECTORY_SEQUENCE: AtomicU64 = AtomicU64::new(0);
pub fn unique_temp_directory(label: &str) -> PathBuf {
let sequence = TEMP_DIRECTORY_SEQUENCE.fetch_add(1, Ordering::Relaxed);
let path = std::env::temp_dir().join(format!(
"ic-testkit-{label}-{}-{sequence}",
std::process::id()
));
if path.exists() {
fs::remove_dir_all(&path).expect("remove stale integration-test directory");
}
fs::create_dir_all(&path).expect("create integration-test directory");
path
}