summaryrefslogtreecommitdiff
path: root/Omni/Task/RaceTest.hs
diff options
context:
space:
mode:
authorBen Sima <ben@bensima.com>2025-11-24 22:42:24 -0500
committerBen Sima <ben@bensima.com>2025-11-24 22:42:24 -0500
commit683c8d597f3570c3c5bacead331298c7925b6bce (patch)
tree9699319ddf453bcf3d616b86d0f3c69e035adf3a /Omni/Task/RaceTest.hs
parent05b36fd8799cbd18febc8f46b3780cc330c4fff9 (diff)
fix(task): ensure thread safety and isolate tests
Re-introduces MVar locking in Task Core to prevent race conditions during Read-Modify-Write cycles (e.g. ID generation). Updates tests to use isolated SQLite databases instead of the production DB or JSONL files. Removes legacy test artifacts. Amp-Thread-ID: https://ampcode.com/threads/T-ac41b9b6-d117-46de-9e4f-842887a22f1d Co-authored-by: Amp <amp@ampcode.com>
Diffstat (limited to 'Omni/Task/RaceTest.hs')
-rw-r--r--Omni/Task/RaceTest.hs7
1 files changed, 5 insertions, 2 deletions
diff --git a/Omni/Task/RaceTest.hs b/Omni/Task/RaceTest.hs
index 0cd6464..860272d 100644
--- a/Omni/Task/RaceTest.hs
+++ b/Omni/Task/RaceTest.hs
@@ -20,10 +20,13 @@ raceTest =
Test.unit "concurrent child creation (race condition)" <| do
-- Set up test mode
setEnv "TASK_TEST_MODE" "1"
- setEnv "TASK_DB_PATH" ".tasks/race-test.jsonl"
+ -- Unset TASK_DB_PATH to ensure we use the test mode default (or set it to .tasks/race-test.db)
+ -- Actually, since Core.hs respects TASK_DB_PATH if set, we should unset it or set it to our target.
+ -- Let's set it to .tasks/race-test.db for isolation.
+ setEnv "TASK_DB_PATH" ".tasks/race-test.db"
-- Clean up test database
- let testFile = ".tasks/race-test.jsonl"
+ let testFile = ".tasks/race-test.db"
exists <- doesFileExist testFile
when exists <| removeFile testFile
initTaskDb