replace zxq.co/ripple/hanayo
This commit is contained in:
111
vendor/github.com/rjeczalik/notify/watcher_fsevents_test.go
generated
vendored
Normal file
111
vendor/github.com/rjeczalik/notify/watcher_fsevents_test.go
generated
vendored
Normal file
@@ -0,0 +1,111 @@
|
||||
// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
|
||||
// Use of this source code is governed by the MIT license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// +build darwin,!kqueue
|
||||
|
||||
package notify
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSplitflags(t *testing.T) {
|
||||
cases := [...]struct {
|
||||
set uint32
|
||||
flags []uint32
|
||||
}{
|
||||
{0, nil},
|
||||
{0xD, []uint32{0x1, 0x4, 0x8}},
|
||||
{0x0010 | 0x0040 | 0x0080 | 0x01000, []uint32{0x0010, 0x0040, 0x0080, 0x01000}},
|
||||
{0x40000 | 0x00100 | 0x00200, []uint32{0x00100, 0x00200, 0x40000}},
|
||||
}
|
||||
for i, cas := range cases {
|
||||
if flags := splitflags(cas.set); !reflect.DeepEqual(flags, cas.flags) {
|
||||
t.Errorf("want flags=%v; got %v (i=%d)", cas.flags, flags, i)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestWatchStrip(t *testing.T) {
|
||||
const (
|
||||
create = uint32(FSEventsCreated)
|
||||
remove = uint32(FSEventsRemoved)
|
||||
rename = uint32(FSEventsRenamed)
|
||||
write = uint32(FSEventsModified)
|
||||
inode = uint32(FSEventsInodeMetaMod)
|
||||
owner = uint32(FSEventsChangeOwner)
|
||||
)
|
||||
cases := [...][]struct {
|
||||
path string
|
||||
flag uint32
|
||||
diff uint32
|
||||
}{
|
||||
// 1.
|
||||
{
|
||||
{"file", create | write, create | write},
|
||||
{"file", create | write | inode, write | inode},
|
||||
},
|
||||
// 2.
|
||||
{
|
||||
{"file", create, create},
|
||||
{"file", create | remove, remove},
|
||||
{"file", create | remove, create},
|
||||
},
|
||||
// 3.
|
||||
{
|
||||
{"file", create | write, create | write},
|
||||
{"file", create | write | owner, write | owner},
|
||||
},
|
||||
// 4.
|
||||
{
|
||||
{"file", create | write, create | write},
|
||||
{"file", write | inode, write | inode},
|
||||
{"file", remove | write | inode, remove},
|
||||
},
|
||||
{
|
||||
{"file", remove | write | inode, remove},
|
||||
},
|
||||
}
|
||||
Test:
|
||||
for i, cas := range cases {
|
||||
if len(cas) == 0 {
|
||||
t.Log("skipped")
|
||||
continue
|
||||
}
|
||||
w := &watch{prev: make(map[string]uint32)}
|
||||
for j, cas := range cas {
|
||||
if diff := w.strip(cas.path, cas.flag); diff != cas.diff {
|
||||
t.Errorf("want diff=%v; got %v (i=%d, j=%d)", Event(cas.diff),
|
||||
Event(diff), i, j)
|
||||
continue Test
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Test for cases 3) and 5) with shadowed write&create events.
|
||||
//
|
||||
// See comment for (flagdiff).diff method.
|
||||
func TestWatcherShadowedWriteCreate(t *testing.T) {
|
||||
w := NewWatcherTest(t, "testdata/vfs.txt")
|
||||
defer w.Close()
|
||||
|
||||
cases := [...]WCase{
|
||||
// i=0
|
||||
create(w, "src/github.com/rjeczalik/fs/.fs.go.swp"),
|
||||
// i=1
|
||||
write(w, "src/github.com/rjeczalik/fs/.fs.go.swp", []byte("XD")),
|
||||
// i=2
|
||||
write(w, "src/github.com/rjeczalik/fs/.fs.go.swp", []byte("XD")),
|
||||
// i=3
|
||||
remove(w, "src/github.com/rjeczalik/fs/.fs.go.swp"),
|
||||
// i=4
|
||||
create(w, "src/github.com/rjeczalik/fs/.fs.go.swp"),
|
||||
// i=5
|
||||
write(w, "src/github.com/rjeczalik/fs/.fs.go.swp", []byte("XD")),
|
||||
}
|
||||
|
||||
w.ExpectAny(cases[:5]) // BUG(rjeczalik): #62
|
||||
}
|
Reference in New Issue
Block a user