1 // Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
2 // Use of this source code is governed by the MIT license that can be
3 // found in the LICENSE file.
9 func TestRecursiveTree(t *testing.T) {
10 n := NewRecursiveTreeTest(t, "testdata/vfs.txt")
15 watches := [...]RCase{
20 P: "src/github.com/rjeczalik/fs/fs.go",
27 P: "src/github.com/rjeczalik/fs/fs.go",
36 P: "src/github.com/rjeczalik/fs/cmd/...",
42 F: FuncRecursiveWatch,
43 P: "src/github.com/rjeczalik/fs/cmd",
52 P: "src/github.com/rjeczalik/fs",
58 F: FuncRecursiveWatch,
59 P: "src/github.com/rjeczalik/fs",
60 E: Create | Remove | Rename,
63 F: FuncRecursiveUnwatch,
64 P: "src/github.com/rjeczalik/fs/cmd",
68 P: "src/github.com/rjeczalik/fs/fs.go",
76 P: "src/github.com/ppknap/link/README.md",
83 P: "src/github.com/ppknap/link/README.md",
92 P: "src/github.com/ppknap/link/include/...",
98 F: FuncRecursiveWatch,
99 P: "src/github.com/ppknap/link/include",
108 P: "src/github.com/ppknap/link/include",
114 F: FuncRecursiveRewatch,
115 P: "src/github.com/ppknap/link/include",
116 NP: "src/github.com/ppknap/link/include",
126 P: "src/github.com/ppknap/link/test/Jamfile.jam",
133 P: "src/github.com/ppknap/link/test/Jamfile.jam",
142 P: "src/github.com/ppknap/link/test/Jamfile.jam",
149 P: "src/github.com/ppknap/link/test/Jamfile.jam",
159 P: "src/github.com/ppknap/...",
165 F: FuncRecursiveWatch,
166 P: "src/github.com/ppknap",
167 E: Create | Remove | Write | Rename,
171 P: "src/github.com/ppknap/link/README.md",
174 F: FuncRecursiveUnwatch,
175 P: "src/github.com/ppknap/link/include",
179 P: "src/github.com/ppknap/link/test/Jamfile.jam",
187 P: "src/github.com/rjeczalik/fs/README.md",
197 P: "src/github.com/rjeczalik/fs/cmd/gotree",
207 P: "src/github.com/pblaszczyk/qttu/src/main.cc",
214 P: "src/github.com/pblaszczyk/qttu/src/main.cc",
223 P: "src/github.com/pblaszczyk/qttu/src/main.cc",
230 P: "src/github.com/pblaszczyk/qttu/src/main.cc",
240 P: "src/github.com/pblaszczyk/qttu/src/main.cc",
250 P: "src/github.com/pblaszczyk/qttu/src",
256 F: FuncRecursiveRewatch,
257 P: "src/github.com/pblaszczyk/qttu/src/main.cc",
258 NP: "src/github.com/pblaszczyk/qttu/src",
268 P: "src/github.com/pblaszczyk/qttu",
274 F: FuncRecursiveRewatch,
275 P: "src/github.com/pblaszczyk/qttu/src",
276 NP: "src/github.com/pblaszczyk/qttu",
278 NE: Create | Remove | Write,
286 P: "src/github.com/rjeczalik/fs/fs.go",
294 n.ExpectRecordedCalls(watches[:])
296 events := [...]TCase{
299 Event: Call{P: "src/github.com/rjeczalik/fs/fs.go", E: Rename},
300 Receiver: Chans{ch[2], ch[3]},
304 Event: Call{P: "src/github.com/rjeczalik/fs/fs.go", E: Create},
305 Receiver: Chans{ch[0]},
309 Event: Call{P: "src/github.com/rjeczalik/fs/fs.go/file", E: Create},
310 Receiver: Chans{ch[0]},
314 Event: Call{P: "src/github.com/rjeczalik/fs", E: Rename},
315 Receiver: Chans{ch[2]},
319 Event: Call{P: "src/github.com/rjeczalik/fs/fs_test.go", E: Rename},
320 Receiver: Chans{ch[2]},
324 Event: Call{P: "src/github.com/rjeczalik/fs/cmd/mktree/main.go", E: Remove},
325 Receiver: Chans{ch[1]},
329 Event: Call{P: "src/github.com/rjeczalik/fs/cmd/gotree", E: Remove},
330 Receiver: Chans{ch[1], ch[2]},
334 Event: Call{P: "src/github.com/rjeczalik/fs/cmd", E: Remove},
335 Receiver: Chans{ch[1]},
339 Event: Call{P: "src/github.com/rjeczalik/fs/fs.go/file", E: Write},
344 Event: Call{P: "src/github.com/rjeczalik/fs/fs.go/file", E: Write},
349 Event: Call{P: "src/github.com/rjeczalik/fs", E: Remove},
354 Event: Call{P: "src/github.com/rjeczalik/fs/cmd", E: Rename},
355 Receiver: Chans{ch[2]},
359 Event: Call{P: "src/github.com/rjeczalik/fs/cmd/mktree/main.go", E: Write},
364 Event: Call{P: "src/github.com/rjeczalik/fs/cmd/gotree", E: Rename},
369 Event: Call{P: "src/github.com/rjeczalik/fs/cmd/file", E: Rename},
374 Event: Call{P: "src/github.com/rjeczalik/fs/fs.go", E: Rename},
375 Receiver: Chans{ch[2], ch[3]},
379 n.ExpectTreeEvents(events[:], ch)
397 F: FuncRecursiveRewatch,
398 P: "src/github.com/pblaszczyk/qttu",
399 NP: "src/github.com/pblaszczyk/qttu",
400 E: Create | Remove | Write,
407 n.ExpectRecordedCalls(stops[:])
410 func TestRecursiveTreeWatchInactiveMerge(t *testing.T) {
411 n := NewRecursiveTreeTest(t, "testdata/vfs.txt")
416 watches := [...]RCase{
421 P: "src/github.com/rjeczalik/fs",
428 P: "src/github.com/rjeczalik/fs",
437 P: "src/github.com/rjeczalik/fs/cmd/gotree/...",
443 F: FuncRecursiveRewatch,
444 P: "src/github.com/rjeczalik/fs",
445 NP: "src/github.com/rjeczalik/fs",
453 n.ExpectRecordedCalls(watches[:])
455 events := [...]TCase{
458 Event: Call{P: "src/github.com/rjeczalik/fs/.fs.go.swp", E: Create},
459 Receiver: Chans{ch[0]},
463 Event: Call{P: "src/github.com/rjeczalik/fs/.fs.go.swp", E: Remove},
468 Event: Call{P: "src/github.com/rjeczalik/fs", E: Remove},
473 Event: Call{P: "src/github.com/rjeczalik/fs/cmd/gotree/main.go", E: Remove},
474 Receiver: Chans{ch[0]},
478 n.ExpectTreeEvents(events[:], ch)
481 func TestRecursiveTree_Windows(t *testing.T) {
482 n := NewRecursiveTreeTest(t, "testdata/vfs.txt")
485 const ChangeFileName = Event(0x1)
489 watches := [...]RCase{
494 P: "src/github.com/rjeczalik/fs",
501 P: "src/github.com/rjeczalik/fs",
508 n.ExpectRecordedCalls(watches[:])
510 events := [...]TCase{
513 Event: Call{P: "src/github.com/rjeczalik/fs", E: ChangeFileName},
514 Receiver: Chans{ch[0]},
518 Event: Call{P: "src/github.com/rjeczalik/fs/fs.go", E: ChangeFileName},
519 Receiver: Chans{ch[0]},
523 n.ExpectTreeEvents(events[:], ch)