1 Commits
Author SHA1 Message Date
p.illmerandClaude Fable 5.1 ba467b2b72 fix(engine): compile Windows tests (#571)
`cargo xtask ci` failed on Windows before any test ran: the `windows_ignores_case_and_refuses_devices` test moved `upper` into `check` and borrowed it afterwards for the assertion message (E0382), and the recovery test's `paths` is only mutated inside its `#[cfg(unix)]` symlink block, so `-D warnings` rejected the `mut` everywhere else. Neither test is compiled on macOS or Linux, which is why CI never saw them.

With this, `cargo xtask ci` passes on Windows 11 (MSVC, Rust 1.99).

Co-authored-by: Claude Fable 5.1 <[email protected]>
2026-10-15 18:34:31 -06:00
2 changed files with 3 additions and 1 deletions

No files matched your search

+2
View File
@@ -557,6 +557,8 @@ mod tests {
std::fs::create_dir_all(path.parent().unwrap()).unwrap();
std::fs::write(path, bytes).unwrap();
}
// Only the symlink case below adds to it, and symlinks are a Unix-only part of the test.
#[cfg_attr(not(unix), allow(unused_mut))]
let mut paths: Vec<PathBuf> = files.iter().map(|(p, _)| p.clone()).collect();
#[cfg(unix)]
{
+1 -1
View File
@@ -398,7 +398,7 @@ mod tests {
fn windows_ignores_case_and_refuses_devices() {
let (base, roots) = folders("case");
let upper = s(base.join("IN/a.scraft"));
assert_eq!(roots.check(upper, Access::Read), Ok(()), "{upper}");
assert_eq!(roots.check(&upper, Access::Read), Ok(()), "{upper}");
assert_eq!(roots.check(s(base.join("In/Sub/New.scraft")), Access::Read), Ok(()));
let e = roots.check(s(base.join("out/NUL")), Access::Write).unwrap_err();
assert!(e.contains("reserved device names"), "{e}");