Checking MacOS file system events using FSEvents instead od Kqueue

This commit is contained in:
Ericson Fogo Soares 2023-01-11 18:57:41 -03:00
parent 0d554e9d06
commit cb8820fe47
3 changed files with 22 additions and 17 deletions

10
Cargo.lock generated
View file

@ -1795,6 +1795,15 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394"
[[package]]
name = "fsevent-sys"
version = "4.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
dependencies = [
"libc",
]
[[package]]
name = "fuchsia-cprng"
version = "0.1.1"
@ -3574,6 +3583,7 @@ checksum = "ed2c66da08abae1c024c01d635253e402341b4060a12e99b31c7594063bf490a"
dependencies = [
"bitflags",
"filetime",
"fsevent-sys",
"inotify",
"kqueue",
"libc",

View file

@ -70,7 +70,7 @@ ctor = "0.1.23"
globset = { version = "^0.4.9", features = ["serde1"] }
itertools = "^0.10.5"
enumflags2 = "0.7.5"
notify = { version = "5.0.0", default-features = false, features = ["macos_kqueue"], optional = true }
notify = { version = "5.0.0", default-features = false, features = ["macos_fsevent"], optional = true }
uhlc = "0.5.1"
[dev-dependencies]

View file

@ -409,7 +409,12 @@ mod tests {
expect_event(events_rx, &file_path, EventKind::Modify(ModifyKind::Any)).await;
#[cfg(target_os = "macos")]
expect_event(events_rx, &file_path, EventKind::Create(CreateKind::File)).await;
expect_event(
events_rx,
&file_path,
EventKind::Access(AccessKind::Close(AccessMode::Write)),
)
.await;
#[cfg(target_os = "linux")]
expect_event(
@ -488,7 +493,7 @@ mod tests {
expect_event(
events_rx,
&file_path,
EventKind::Modify(ModifyKind::Data(DataChange::Any)),
EventKind::Access(AccessKind::Close(AccessMode::Write)),
)
.await;
@ -537,7 +542,7 @@ mod tests {
expect_event(
events_rx,
&file_path,
EventKind::Modify(ModifyKind::Name(RenameMode::Any)),
EventKind::Modify(ModifyKind::Name(RenameMode::Both)),
)
.await;
@ -588,7 +593,7 @@ mod tests {
expect_event(
events_rx,
&dir_path,
EventKind::Modify(ModifyKind::Name(RenameMode::Any)),
EventKind::Modify(ModifyKind::Name(RenameMode::Both)),
)
.await;
@ -627,12 +632,7 @@ mod tests {
expect_event(events_rx, &file_path, EventKind::Remove(RemoveKind::Any)).await;
#[cfg(target_os = "macos")]
expect_event(
events_rx,
&root_dir.path(),
EventKind::Modify(ModifyKind::Data(DataChange::Any)),
)
.await;
expect_event(events_rx, &file_path, EventKind::Remove(RemoveKind::File)).await;
#[cfg(target_os = "linux")]
expect_event(events_rx, &file_path, EventKind::Remove(RemoveKind::File)).await;
@ -679,12 +679,7 @@ mod tests {
expect_event(events_rx, &dir_path, EventKind::Remove(RemoveKind::Any)).await;
#[cfg(target_os = "macos")]
expect_event(
events_rx,
&root_dir.path(),
EventKind::Modify(ModifyKind::Data(DataChange::Any)),
)
.await;
expect_event(events_rx, &dir_path, EventKind::Remove(RemoveKind::Folder)).await;
#[cfg(target_os = "linux")]
expect_event(events_rx, &dir_path, EventKind::Remove(RemoveKind::Folder)).await;