// Create a file before watching directory
// This should NOT add any events to the fsnotify event queue
+ const testFileAlreadyExists string = "_test/TestFsnotifyEventsExisting.testfile"
{
- const testFileAlreadyExists string = "_test/TestFsnotifyEvents.testfile"
var f *os.File
f, err = os.OpenFile(testFileAlreadyExists, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
}
}()
- const testFile string = "_test/TestFsnotifyEvents.testfile"
+ const testFile string = "_test/TestFsnotifyDirOnly.testfile"
// Receive events on the event channel on a separate goroutine
eventstream := watcher.Event
go func() {
for event := range eventstream {
// Only count relevant events
- if event.Name == testDir || event.Name == testFile {
+ if event.Name == testDir || event.Name == testFile || event.Name == testFileAlreadyExists {
t.Logf("event received: %s", event)
if event.IsDelete() {
deleteReceived++
f.Sync()
f.Close()
- time.Sleep(200e6) // give system time to sync write change before delete
+ time.Sleep(50 * time.Millisecond) // give system time to sync write change before delete
os.Remove(testFile)
+ os.Remove(testFileAlreadyExists)
// We expect this event to be received almost immediately, but let's wait 500 ms to be sure
- time.Sleep(500e6) // 500 ms
- if createReceived > 0 {
- t.Fatal("fsnotify create events should not occur in this test!")
+ time.Sleep(500 * time.Millisecond)
+ if createReceived != 1 {
+ t.Fatalf("incorrect number of create events received after 500 ms (%d vs %d)", createReceived, 1)
}
- if modifyReceived == 0 {
- t.Fatal("fsnotify modify events have not been received after 500 ms")
+ if modifyReceived != 1 {
+ t.Fatalf("incorrect number of modify events received after 500 ms (%d vs %d)", modifyReceived, 1)
}
- if deleteReceived == 0 {
- t.Fatal("fsnotify delete events have not been received after 500 ms")
+ if deleteReceived != 2 {
+ t.Fatalf("incorrect number of delete events received after 500 ms (%d vs %d)", deleteReceived, 2)
}
// Try closing the fsnotify instance
select {
case <-done:
t.Log("event channel closed")
- case <-time.After(1e9):
- t.Fatal("event stream was not closed after 1 second")
+ case <-time.After(2 * time.Second):
+ t.Fatal("event stream was not closed after 2 seconds")
}
}
}
// We expect this event to be received almost immediately, but let's wait 500 ms to be sure
- time.Sleep(500e6) // 500 ms
+ time.Sleep(500 * time.Millisecond)
if renameReceived == 0 {
t.Fatal("fsnotify rename events have not been received after 500 ms")
}
select {
case <-done:
t.Log("event channel closed")
- case <-time.After(1e9):
- t.Fatal("event stream was not closed after 1 second")
+ case <-time.After(2 * time.Second):
+ t.Fatal("event stream was not closed after 2 seconds")
}
os.Remove(testFileRenamed)
}
// We expect this event to be received almost immediately, but let's wait 500 ms to be sure
- time.Sleep(500e6) // 500 ms
+ time.Sleep(500 * time.Millisecond)
if attribReceived == 0 {
t.Fatal("fsnotify attribute events have not received after 500 ms")
}