From eb7d1421daba4c311bcc8ccb35523bc542dc5816 Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Fri, 11 Sep 2026 23:24:21 -0600 Subject: [PATCH] fix(tests): collision-proof parser test temp files to deflake macOS CI --- src/parsers/python.rs | 6 ++++-- src/parsers/typescript.rs | 13 +++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/parsers/python.rs b/src/parsers/python.rs index 5ed23b3..26d0ce8 100644 --- a/src/parsers/python.rs +++ b/src/parsers/python.rs @@ -367,9 +367,11 @@ mod tests { file_name: &str, parent: &Path, ) -> Result> { + let pid = std::process::id(); let unique = PARSE_COUNTER.fetch_add(1, Ordering::Relaxed); - let path = - std::env::temp_dir().join(format!("coyote_python_parser_{file_name}_{unique}.py")); + let path = std::env::temp_dir().join(format!( + "coyote_python_parser_{file_name}_{pid}_{unique}.py" + )); fs::write(&path, source).expect("failed to write temp python source"); let file = File::open(&path).expect("failed to open temp python source"); let result = generate_python_declarations(file, file_name, Some(parent)); diff --git a/src/parsers/typescript.rs b/src/parsers/typescript.rs index a00a5a8..f3b5ecd 100644 --- a/src/parsers/typescript.rs +++ b/src/parsers/typescript.rs @@ -414,18 +414,19 @@ mod tests { use super::*; use crate::function::JsonSchema; use std::fs; - use std::time::{SystemTime, UNIX_EPOCH}; + use std::sync::atomic::{AtomicU64, Ordering}; + + static PARSE_COUNTER: AtomicU64 = AtomicU64::new(0); fn parse_ts_source( source: &str, file_name: &str, parent: &Path, ) -> Result> { - let unique = SystemTime::now() - .duration_since(UNIX_EPOCH) - .expect("time") - .as_nanos(); - let path = std::env::temp_dir().join(format!("coyote_ts_parser_{file_name}_{unique}.ts")); + let pid = std::process::id(); + let unique = PARSE_COUNTER.fetch_add(1, Ordering::Relaxed); + let path = + std::env::temp_dir().join(format!("coyote_ts_parser_{file_name}_{pid}_{unique}.ts")); fs::write(&path, source).expect("write"); let file = File::open(&path).expect("open"); let result = generate_typescript_declarations(file, file_name, Some(parent));