From 913345a05eaca70f4397ab5c554eea081380653b Mon Sep 17 00:00:00 2001 From: itsamejms Date: Sun, 6 Sep 2026 23:23:25 +0100 Subject: [PATCH] =?UTF-8?q?test:=20unique=20temp=20dir=20per=20generations?= =?UTF-8?q?=20test=20=E2=80=94=20parallel=20runs=20raced=20on=20one=20SQLi?= =?UTF-8?q?te=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-tauri/src/generations/mod.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src-tauri/src/generations/mod.rs b/src-tauri/src/generations/mod.rs index 031b022..7de413c 100644 --- a/src-tauri/src/generations/mod.rs +++ b/src-tauri/src/generations/mod.rs @@ -159,15 +159,17 @@ impl GenerationStore { mod tests { use super::*; - fn tmp() -> std::path::PathBuf { - let dir = std::env::temp_dir().join(format!("dm-pal-test-{}", std::process::id())); + // ponytail: unique dir per test — both tests previously shared one + // pid-keyed dir and raced on the same SQLite file (flaky "disk I/O error"). + fn tmp(name: &str) -> std::path::PathBuf { + let dir = std::env::temp_dir().join(format!("dm-pal-test-{name}-{}", std::process::id())); let _ = std::fs::remove_dir_all(&dir); dir } #[test] fn round_trip() { - let dir = tmp(); + let dir = tmp("round-trip"); let store = GenerationStore::open(&dir).unwrap(); let id = store .add("npc", "Thorin Stonefist", r#"{"name":"Thorin"}"#, Some("Dwarf Fighter")) @@ -196,7 +198,7 @@ mod tests { #[test] fn clear_all() { - let dir = tmp(); + let dir = tmp("clear-all"); let store = GenerationStore::open(&dir).unwrap(); store.add("a", "x", "{}", None).unwrap(); store.add("b", "y", "{}", None).unwrap();