From 7cb1c61afad9e6283183f82d2ccc377a2f10b5a2 Mon Sep 17 00:00:00 2001 From: Jean Date: Mon, 20 Jul 2026 22:39:02 +0000 Subject: [PATCH] Give each test engine a unique temp path so parallel scram tests don't race --- src/engine/tests.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/engine/tests.rs b/src/engine/tests.rs index 83ee54b..ccc7e5f 100644 --- a/src/engine/tests.rs +++ b/src/engine/tests.rs @@ -12,7 +12,14 @@ } fn engine_with(name: &str, account: &str, password: &str) -> Engine { - let path = std::env::temp_dir().join(format!("echo-sasl-{name}.jsonl")); + // A globally-unique path per call: tests run in parallel and some share a + // `name` (e.g. every scram_exchange caller), so a fixed path would race. + let path = { + use std::sync::atomic::{AtomicU64, Ordering}; + static SEQ: AtomicU64 = AtomicU64::new(0); + let n = SEQ.fetch_add(1, Ordering::Relaxed); + std::env::temp_dir().join(format!("echo-sasl-{name}-{}-{n}.jsonl", std::process::id())) + }; let _ = std::fs::remove_file(&path); let mut db = Db::open(&path, "test"); db.scram_iterations = 4096; // keep the debug-build verifier cheap in tests