use std::{fs, thread, time::Duration}; | |
use notify::{immediate_watcher, RecursiveMode, Watcher}; | |
/// Test for <https://github.com/notify-rs/notify/issues/301>. | |
/// Note: This test will fail if your temp directory is not writable. | |
#[test] | |
fn test_race_with_remove_dir() { | |
let tmpdir = tempfile::tempdir().unwrap(); | |
{ | |
let tmpdir = tmpdir.path().to_path_buf(); | |
thread::spawn(move || { | |
let mut watcher = immediate_watcher(move |result| { | |
eprintln!("received event: {:?}", result); | |
}) | |
.unwrap(); | |
watcher.watch(tmpdir, RecursiveMode::NonRecursive).unwrap(); | |
}); | |
} | |
let subdir = tmpdir.path().join("146d921d.tmp"); | |
fs::create_dir_all(&subdir).unwrap(); | |
fs::remove_dir_all(&tmpdir).unwrap(); | |
thread::sleep(Duration::from_secs(1)); | |
} |