From 578ddab40fb96d39c75f97ae13514f68a6429ba6 Mon Sep 17 00:00:00 2001 From: Chris Howey Date: Mon, 8 Oct 2012 20:51:37 -0500 Subject: [PATCH] Test - Modify after recreation of file --- fsnotify_test.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/fsnotify_test.go b/fsnotify_test.go index ac21b6c..cf4ed68 100644 --- a/fsnotify_test.go +++ b/fsnotify_test.go @@ -176,6 +176,7 @@ func TestFsnotifyMultipleCreates(t *testing.T) { // Receive events on the event channel on a separate goroutine eventstream := watcher.Event var createReceived = 0 + var modifyReceived = 0 var deleteReceived = 0 done := make(chan bool) go func() { @@ -189,6 +190,9 @@ func TestFsnotifyMultipleCreates(t *testing.T) { if event.IsCreate() { createReceived++ } + if event.IsModify() { + modifyReceived++ + } } else { t.Logf("unexpected event received: %s", event) } @@ -224,11 +228,42 @@ func TestFsnotifyMultipleCreates(t *testing.T) { f.Close() time.Sleep(50 * time.Millisecond) // give system time to sync write change before delete + // Modify + f, err = os.OpenFile(testFile, os.O_WRONLY, 0666) + if err != nil { + t.Fatalf("creating test file failed: %s", err) + } + f.Sync() + + time.Sleep(time.Millisecond) + f.WriteString("data") + f.Sync() + f.Close() + + time.Sleep(50 * time.Millisecond) // give system time to sync write change before delete + + // Modify + f, err = os.OpenFile(testFile, os.O_WRONLY, 0666) + if err != nil { + t.Fatalf("creating test file failed: %s", err) + } + f.Sync() + + time.Sleep(time.Millisecond) + f.WriteString("data") + f.Sync() + f.Close() + + time.Sleep(50 * time.Millisecond) // give system time to sync write change before delete + // We expect this event to be received almost immediately, but let's wait 500 ms to be sure time.Sleep(500 * time.Millisecond) if createReceived != 2 { t.Fatalf("incorrect number of create events received after 500 ms (%d vs %d)", createReceived, 2) } + if modifyReceived < 2 { + t.Fatalf("incorrect number of modify events received after 500 ms (%d vs atleast %d)", modifyReceived, 2) + } if deleteReceived != 1 { t.Fatalf("incorrect number of rename+delete events received after 500 ms (%d vs %d)", deleteReceived, 1) } -- 2.50.1