use std::sync::atomic::{AtomicU64, Ordering};
const GATEWAY_TEST_NAMESPACE: &str = "term-wm";
static NEXT_ID: AtomicU64 = AtomicU64::new(1);
pub fn unique_gateway_name(tag: &str) -> String {
let n = NEXT_ID.fetch_add(1, Ordering::Relaxed);
format!("{GATEWAY_TEST_NAMESPACE}/{tag}-{}-{n}", std::process::id())
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn names_embed_tag_pid_and_counter() {
let name = unique_gateway_name("probe");
let expected_prefix = format!("{GATEWAY_TEST_NAMESPACE}/probe-{}-", std::process::id());
assert!(
name.starts_with(&expected_prefix),
"unexpected name shape: {name}"
);
}
#[test]
fn successive_names_differ() {
let a = unique_gateway_name("dup");
let b = unique_gateway_name("dup");
assert_ne!(a, b);
}
}