From da883c77eca353efcdf652fe7ae65d4b5cacf6af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elberte=20Pl=C3=ADnio?= Date: Thu, 23 Jul 2026 22:41:08 -0300 Subject: [PATCH] fix(tests): make file_job temp dirs unique under parallel execution A nanosecond timestamp plus PID can collide when parallel test threads hit the same clock tick, failing create_dir with EEXIST. An atomic counter suffix makes each directory unique. Closes #70 --- src-tauri/src/file_job.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src-tauri/src/file_job.rs b/src-tauri/src/file_job.rs index 77556e2..ae45a29 100644 --- a/src-tauri/src/file_job.rs +++ b/src-tauri/src/file_job.rs @@ -301,9 +301,13 @@ mod tests { use super::*; fn temp_dir() -> Result { + // A timestamp alone can collide when parallel test threads hit the + // same clock tick; the atomic counter makes each dir unique. + static NEXT: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0); let stamp = SystemTime::now().duration_since(UNIX_EPOCH)?.as_nanos(); + let unique = NEXT.fetch_add(1, Ordering::Relaxed); let dir = std::env::temp_dir().join(format!( - "pickscribe-file-job-{}-{stamp}", + "pickscribe-file-job-{}-{stamp}-{unique}", std::process::id() )); fs::create_dir(&dir)?;