From 361b4a30eca29d18e28a6bbc747e233e088ddcf6 Mon Sep 17 00:00:00 2001 From: Joe Date: Thu, 12 Mar 2026 20:27:08 -0500 Subject: [PATCH] fix: tighten stress_rename_operations assertion to check relevant paths Bugbot flagged `has_create || has_remove || !events.is_empty()` as trivially true. Replace with a check that at least one event references either the original or renamed path, regardless of event type (FSEvents on macOS reports renames as Write/Metadata, not always Create/Remove). --- crates/memofs/src/std_backend.rs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/crates/memofs/src/std_backend.rs b/crates/memofs/src/std_backend.rs index 0554ddef..3558bb94 100644 --- a/crates/memofs/src/std_backend.rs +++ b/crates/memofs/src/std_backend.rs @@ -866,17 +866,18 @@ mod tests { // Should get either: // - Remove(original) + Create(renamed) for RenameMode::Both // - Or separate From/To events - let has_remove = events - .iter() - .any(|e| matches!(e, VfsEvent::Remove(p) if p == &original)); - let has_create = events - .iter() - .any(|e| matches!(e, VfsEvent::Create(p) if p == &renamed)); + // FSEvents on macOS may report renames as Write/Metadata events rather + // than the specific Create/Remove pair. Verify that at least one event + // references either the original or renamed path. + let has_relevant_event = events.iter().any(|e| match e { + VfsEvent::Create(p) | VfsEvent::Write(p) | VfsEvent::Remove(p) => { + p == &original || p == &renamed + } + }); - // At minimum we should see the new file appear assert!( - has_create || has_remove || !events.is_empty(), - "Expected rename to generate events (got {} events: {:?})", + has_relevant_event, + "Expected rename to generate events for original or renamed path (got {} events: {:?})", events.len(), events );