diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6bd6af5..1f52de1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,5 +45,10 @@ jobs: - run: cargo fmt --check - run: cargo clippy --all-targets --locked -- -D warnings # Timing-bounded tests (1 s and 5 s durable-write and retirement budgets) fail closed when the - # runner is contended: Windows runs them serially, Linux on two threads. + # runner is contended: Windows runs them serially, Linux on two threads. Temporary files stay + # on the workspace drive: a durable write's median was 6 to 9 ms on the Windows system drive + # and 0.2 to 0.6 ms there (3 runners, 30 October 2026). - run: cargo test --locked -- --test-threads=${{ matrix.os == 'windows-latest' && 1 || 2 }} + env: + TEMP: ${{ runner.temp }} + TMP: ${{ runner.temp }} diff --git a/src/storage.rs b/src/storage.rs index b810c41..1171538 100644 --- a/src/storage.rs +++ b/src/storage.rs @@ -880,7 +880,11 @@ mod lock_race_tests { #[test] fn atomic_records_and_locks_work_beyond_max_path() { let home = tempfile::tempdir().unwrap(); - let deep = home.path().join("PUBLIC-".repeat(30)); + // Two components, so the path passes MAX_PATH however short the temporary root is. + let deep = home + .path() + .join("PUBLIC-".repeat(30)) + .join("PUBLIC-".repeat(30)); fs::create_dir_all(&deep).unwrap(); let record = deep.join("PUBLIC-record.json"); atomic_json(&record, &serde_json::json!({"PUBLIC":1})).unwrap();