diff --git a/backend_windows_test.go b/backend_windows_test.go index 0578d60d..8e5ce7f2 100644 --- a/backend_windows_test.go +++ b/backend_windows_test.go @@ -53,6 +53,46 @@ func TestRemoveState(t *testing.T) { // TODO: write test which makes sure the buffer size is set correctly. func TestWindowsWithBufferSize(t *testing.T) { - w := newWatcher(t, t.TempDir()) - fmt.Printf("%#v\n", w) + getWatch := func(opts ...addOpt) (*watch, error) { + w, err := NewWatcher() + if err != nil { + return nil, err + } + if err := w.AddWith(t.TempDir(), opts...); err != nil { + return nil, err + } + + // Hackery to get first (and only) map value. + var v indexMap + for _, v = range w.watches { + } + if len(v) != 1 { + t.Fatal() + } + var watch *watch + for _, watch = range v { + } + return watch, nil + } + + check := func(w *watch, want int) { + if len(w.buf) != want || cap(w.buf) != want { + t.Fatalf("want = %d; len = %d; cap = %d", want, len(w.buf), cap(w.buf)) + } + } + + if w, err := getWatch(); err != nil { + t.Fatal(err) + } else { + check(w, 65536) + } + if w, err := getWatch(WithBufferSize(4096)); err != nil { + t.Fatal(err) + } else { + check(w, 4096) + } + + if _, err := getWatch(WithBufferSize(1024)); err == nil || !strings.Contains(err.Error(), "cannot be smaller") { + t.Fatal(err) + } } diff --git a/fsnotify_test.go b/fsnotify_test.go index f06fbc16..c78106cd 100644 --- a/fsnotify_test.go +++ b/fsnotify_test.go @@ -945,10 +945,6 @@ func TestAdd(t *testing.T) { }) } -func TestAddWith(t *testing.T) { - // TODO: write basic test to ensure AddWith() isn't completely borked. -} - // TODO: should also check internal state is correct/cleaned up; e.g. no // left-over file descriptors or whatnot. func TestRemove(t *testing.T) {