package inotify
import (
+ "io/ioutil"
"os"
"testing"
"time"
// Create an inotify watcher instance and initialize it
watcher, err := NewWatcher()
if err != nil {
- t.Fatalf("NewWatcher() failed: %s", err)
+ t.Fatalf("NewWatcher failed: %s", err)
}
- t.Logf("NEEDS TO BE CONVERTED TO NEW GO TOOL") // TODO
- return
+ dir, err := ioutil.TempDir("", "inotify")
+ if err != nil {
+ t.Fatalf("TempDir failed: %s", err)
+ }
+ defer os.RemoveAll(dir)
// Add a watch for "_test"
- err = watcher.Watch("_test")
+ err = watcher.Watch(dir)
if err != nil {
- t.Fatalf("Watcher.Watch() failed: %s", err)
+ t.Fatalf("Watch failed: %s", err)
}
// Receive errors on the error channel on a separate goroutine
}
}()
- const testFile string = "_test/TestInotifyEvents.testfile"
+ testFile := dir + "/TestInotifyEvents.testfile"
// Receive events on the event channel on a separate goroutine
eventstream := watcher.Event
// This should add at least one event to the inotify event queue
_, err = os.OpenFile(testFile, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
- t.Fatalf("creating test file failed: %s", err)
+ t.Fatalf("creating test file: %s", err)
}
// We expect this event to be received almost immediately, but let's wait 1 s to be sure
t.Fatal("double Close() test failed: second Close() call didn't return")
}
- err := watcher.Watch("_test")
+ err := watcher.Watch(os.TempDir())
if err == nil {
t.Fatal("expected error on Watch() after Close(), got nil")
}