本文整理汇总了Golang中gopkg/in/fsnotify/v1.Watcher.Close方法的典型用法代码示例。如果您正苦于以下问题:Golang Watcher.Close方法的具体用法?Golang Watcher.Close怎么用?Golang Watcher.Close使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gopkg/in/fsnotify/v1.Watcher
的用法示例。
在下文中一共展示了Watcher.Close方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestWatchWrite
func TestWatchWrite(t *testing.T) {
sandbox(func(tmpDir string) {
var err error
var watcher *fsnotify.Watcher
if watcher, err = fsnotify.NewWatcher(); err != nil {
t.Fatal(fmt.Errorf("failed to create watcher: %s", err))
}
defer watcher.Close()
result := make(chan interface{})
timeout := time.Millisecond * 200
go func() {
for {
select {
case event := <-watcher.Events:
result <- event.Op
case err := <-watcher.Errors:
result <- err
case <-time.After(timeout):
result <- fmt.Errorf("event did not occur within timeout of %v", timeout)
}
}
}()
// create file before adding to watcher
var f *os.File
if f, err = os.Create(filepath.Join(tmpDir, "a.txt")); err != nil {
t.Fatal(err)
}
defer f.Close()
if err = watcher.Add(tmpDir); err != nil {
t.Fatal(err)
}
// perform write
f.Write([]byte("hello"))
// wait on result
res := <-result
expect := fsnotify.Write
switch res.(type) {
case fsnotify.Op:
if res != fsnotify.Write {
t.Errorf("expect: %v, result: %v", expect, res)
}
case error:
t.Error(res)
default:
t.Fatal("unexpected response")
}
})
}