From ed1e9e31da3bd7261735121a1f2507e73ca9029a Mon Sep 17 00:00:00 2001 From: Manuel Raimann Date: Wed, 11 Feb 2026 23:17:09 +0100 Subject: [PATCH] fix: use atomic counter for temp paths in journal tests On Windows, SystemTime::now().as_nanos() has ~15ms resolution, causing parallel tests to generate identical file paths and corrupt each other's data. --- tests/journal_tests.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/journal_tests.rs b/tests/journal_tests.rs index cabc453..fab5790 100644 --- a/tests/journal_tests.rs +++ b/tests/journal_tests.rs @@ -10,13 +10,14 @@ use optimizer::storage::{JournalStorage, Storage}; use optimizer::{Direction, Study}; fn temp_path() -> std::path::PathBuf { + use std::sync::atomic::{AtomicU64, Ordering}; + static COUNTER: AtomicU64 = AtomicU64::new(0); + let mut path = std::env::temp_dir(); path.push(format!( - "optimizer_journal_test_{}.jsonl", - std::time::SystemTime::now() - .duration_since(std::time::UNIX_EPOCH) - .unwrap() - .as_nanos() + "optimizer_journal_test_{}_{}.jsonl", + std::process::id(), + COUNTER.fetch_add(1, Ordering::Relaxed) )); path }