Lines Matching refs:t
37 func newFinder(t *testing.T, filesystem *fs.MockFs, cacheParams CacheParams) *Finder {
38 return newFinderWithNumThreads(t, filesystem, cacheParams, 2)
41 func newFinderWithNumThreads(t *testing.T, filesystem *fs.MockFs, cacheParams CacheParams, numThrea…
42 f, err := newFinderAndErr(t, filesystem, cacheParams, numThreads)
44 fatal(t, err.Error())
49 func newFinderAndErr(t *testing.T, filesystem *fs.MockFs, cacheParams CacheParams, numThreads int) …
62 func finderWithSameParams(t *testing.T, original *Finder) *Finder {
63 f, err := finderAndErrorWithSameParams(t, original)
65 fatal(t, err.Error())
70 func finderAndErrorWithSameParams(t *testing.T, original *Finder) (*Finder, error) {
81 func write(t *testing.T, path string, content string, filesystem *fs.MockFs) {
86 fatal(t, err.Error())
90 func create(t *testing.T, path string, filesystem *fs.MockFs) {
91 write(t, path, "hi", filesystem)
94 func delete(t *testing.T, path string, filesystem *fs.MockFs) {
97 fatal(t, err.Error())
101 func removeAll(t *testing.T, path string, filesystem *fs.MockFs) {
104 fatal(t, err.Error())
108 func move(t *testing.T, oldPath string, newPath string, filesystem *fs.MockFs) {
111 fatal(t, err.Error())
115 func link(t *testing.T, newPath string, oldPath string, filesystem *fs.MockFs) {
119 t.Fatal(err.Error())
123 fatal(t, err.Error())
126 func read(t *testing.T, path string, filesystem *fs.MockFs) string {
129 t.Fatalf(err.Error())
133 t.Fatal(err.Error())
137 func modTime(t *testing.T, path string, filesystem *fs.MockFs) time.Time {
140 t.Fatal(err.Error())
144 func setReadable(t *testing.T, path string, readable bool, filesystem *fs.MockFs) {
147 t.Fatal(err.Error())
151 func setReadErr(t *testing.T, path string, readErr error, filesystem *fs.MockFs) {
154 t.Fatal(err.Error())
158 func fatal(t *testing.T, message string) {
159 t.Error(message)
161 t.FailNow()
164 func assertSameResponse(t *testing.T, actual []string, expected []string) {
169 t,
177 func assertSameStatCalls(t *testing.T, actual []string, expected []string) {
183 t,
195 func assertSameReadDirCalls(t *testing.T, actual []string, expected []string) {
201 t,
215 func runSimpleTest(t *testing.T, existentPaths []string, expectedMatches []string) {
220 create(t, filepath.Join(root, path), filesystem)
223 finder := newFinder(t,
240 assertSameResponse(t, foundPaths, absoluteMatches)
244 func testAgainstSeveralThreadcounts(t *testing.T, tester func(t *testing.T, numThreads int)) {
252 t.Run(testName, func(t *testing.T) {
253 tester(t, localNumThreads)
260 func TestSingleFile(t *testing.T) {
261 runSimpleTest(t,
267 func TestIncludeFiles(t *testing.T) {
268 runSimpleTest(t,
274 func TestNestedDirectories(t *testing.T) {
275 runSimpleTest(t,
281 func TestEmptyDirectory(t *testing.T) {
282 runSimpleTest(t,
288 func TestEmptyPath(t *testing.T) {
291 create(t, filepath.Join(root, "findme.txt"), filesystem)
294 t,
305 assertSameResponse(t, foundPaths, []string{})
308 func TestFilesystemRoot(t *testing.T) {
310 testWithNumThreads := func(t *testing.T, numThreads int) {
314 create(t, createdPath, filesystem)
317 t,
329 assertSameResponse(t, foundPaths, []string{createdPath})
332 testAgainstSeveralThreadcounts(t, testWithNumThreads)
335 func TestNonexistentDir(t *testing.T) {
337 create(t, "/tmp/findme.txt", filesystem)
340 t,
349 fatal(t, "Did not fail when given a nonexistent root directory")
353 func TestExcludeDirs(t *testing.T) {
355 create(t, "/tmp/exclude/findme.txt", filesystem)
356 create(t, "/tmp/exclude/subdir/findme.txt", filesystem)
357 create(t, "/tmp/subdir/exclude/findme.txt", filesystem)
358 create(t, "/tmp/subdir/subdir/findme.txt", filesystem)
359 create(t, "/tmp/subdir/findme.txt", filesystem)
360 create(t, "/tmp/findme.txt", filesystem)
363 t,
375 assertSameResponse(t, foundPaths,
381 func TestPruneFiles(t *testing.T) {
383 create(t, "/tmp/out/findme.txt", filesystem)
384 create(t, "/tmp/out/.ignore-out-dir", filesystem)
385 create(t, "/tmp/out/child/findme.txt", filesystem)
387 create(t, "/tmp/out2/.ignore-out-dir", filesystem)
388 create(t, "/tmp/out2/sub/findme.txt", filesystem)
390 create(t, "/tmp/findme.txt", filesystem)
391 create(t, "/tmp/include/findme.txt", filesystem)
394 t,
406 assertSameResponse(t, foundPaths,
413 func TestRootDir(t *testing.T) {
415 create(t, "/tmp/a/findme.txt", filesystem)
416 create(t, "/tmp/a/subdir/findme.txt", filesystem)
417 create(t, "/tmp/b/findme.txt", filesystem)
418 create(t, "/tmp/b/subdir/findme.txt", filesystem)
421 t,
432 assertSameResponse(t, foundPaths,
437 func TestUncachedDir(t *testing.T) {
439 create(t, "/tmp/a/findme.txt", filesystem)
440 create(t, "/tmp/a/subdir/findme.txt", filesystem)
441 create(t, "/tmp/b/findme.txt", filesystem)
442 create(t, "/tmp/b/subdir/findme.txt", filesystem)
445 t,
459 assertSameResponse(t, foundPaths, []string{})
464 func TestSearchingForFilesExcludedFromCache(t *testing.T) {
467 create(t, "/tmp/findme.txt", filesystem)
468 create(t, "/tmp/a/findme.txt", filesystem)
469 create(t, "/tmp/a/misc.txt", filesystem)
473 t,
486 assertSameResponse(t, foundPaths, []string{})
491 func TestRelativeFilePaths(t *testing.T) {
494 create(t, "/tmp/ignore/hi.txt", filesystem)
495 create(t, "/tmp/include/hi.txt", filesystem)
496 create(t, "/cwd/hi.txt", filesystem)
497 create(t, "/cwd/a/hi.txt", filesystem)
498 create(t, "/cwd/a/a/hi.txt", filesystem)
499 create(t, "/rel/a/hi.txt", filesystem)
502 t,
512 assertSameResponse(t, foundPaths,
517 assertSameResponse(t, foundPaths, []string{"/tmp/include/hi.txt"})
520 assertSameResponse(t, foundPaths,
526 assertSameResponse(t, foundPaths,
530 assertSameResponse(t, foundPaths, []string{"/tmp/include/hi.txt"})
535 func TestRootDirsContainedInOtherRootDirs(t *testing.T) {
538 create(t, "/tmp/a/b/c/d/e/f/g/h/i/j/findme.txt", filesystem)
541 t,
552 assertSameResponse(t, foundPaths,
556 func TestFindFirst(t *testing.T) {
558 create(t, "/tmp/a/hi.txt", filesystem)
559 create(t, "/tmp/b/hi.txt", filesystem)
560 create(t, "/tmp/b/a/hi.txt", filesystem)
563 t,
574 assertSameResponse(t, foundPaths,
580 func TestConcurrentFindSameDirectory(t *testing.T) {
582 testWithNumThreads := func(t *testing.T, numThreads int) {
596 create(t, path, filesystem)
601 t,
624 assertSameResponse(t, foundPaths, paths)
628 testAgainstSeveralThreadcounts(t, testWithNumThreads)
631 func TestConcurrentFindDifferentDirectories(t *testing.T) {
652 create(t, path, filesystem)
657 t,
690 assertSameResponse(t, testRun.foundMatches, testRun.correctMatches)
694 func TestStrangelyFormattedPaths(t *testing.T) {
697 create(t, "/tmp/findme.txt", filesystem)
698 create(t, "/tmp/a/findme.txt", filesystem)
699 create(t, "/tmp/b/findme.txt", filesystem)
702 t,
713 assertSameResponse(t, foundPaths,
719 func TestCorruptedCacheHeader(t *testing.T) {
722 create(t, "/tmp/findme.txt", filesystem)
723 create(t, "/tmp/a/findme.txt", filesystem)
724 write(t, "/finder/finder-db", "sample header", filesystem)
727 t,
738 assertSameResponse(t, foundPaths,
743 func TestCanUseCache(t *testing.T) {
746 create(t, "/tmp/findme.txt", filesystem)
747 create(t, "/tmp/a/findme.txt", filesystem)
751 t,
762 assertSameResponse(t, foundPaths, correctResponse)
766 cacheText := read(t, finder.DbPath, filesystem)
768 t.Fatalf("saved cache db is empty\n")
771 t.Fatal("No Stat calls recorded by mock filesystem")
774 t.Fatal("No ReadDir calls recorded by filesystem")
780 finder2 := finderWithSameParams(t, finder)
783 assertSameReadDirCalls(t, filesystem.ReadDirCalls, []string{})
784 assertSameReadDirCalls(t, filesystem.StatCalls, statCalls)
789 func TestCorruptedCacheBody(t *testing.T) {
792 create(t, "/tmp/findme.txt", filesystem)
793 create(t, "/tmp/a/findme.txt", filesystem)
797 t,
810 assertSameResponse(t, foundPaths, correctResponse)
817 t.Fatal(err)
821 t.Fatal(err)
828 finder2 := finderWithSameParams(t, finder)
831 assertSameResponse(t, foundPaths, correctResponse)
840 t.Fatalf(
846 t.Fatalf(
853 func TestStatCalls(t *testing.T) {
856 create(t, "/tmp/a/findme.txt", filesystem)
860 t,
871 assertSameResponse(t, foundPaths, []string{"/tmp/a/findme.txt"})
872 assertSameStatCalls(t, filesystem.StatCalls, []string{"/tmp", "/tmp/a"})
873 assertSameReadDirCalls(t, filesystem.ReadDirCalls, []string{"/tmp", "/tmp/a"})
876 func TestFileAdded(t *testing.T) {
879 create(t, "/tmp/ignoreme.txt", filesystem)
880 create(t, "/tmp/a/findme.txt", filesystem)
881 create(t, "/tmp/b/ignore.txt", filesystem)
882 create(t, "/tmp/b/c/nope.txt", filesystem)
883 create(t, "/tmp/b/c/d/irrelevant.txt", filesystem)
887 t,
898 assertSameResponse(t, foundPaths, []string{"/tmp/a/findme.txt"})
902 create(t, "/tmp/b/c/findme.txt", filesystem)
907 finder2 := finderWithSameParams(t, finder)
911 assertSameResponse(t, foundPaths, []string{"/tmp/a/findme.txt", "/tmp/b/c/findme.txt"})
912 …assertSameStatCalls(t, filesystem.StatCalls, []string{"/tmp", "/tmp/a", "/tmp/b", "/tmp/b/c", "/tm…
913 assertSameReadDirCalls(t, filesystem.ReadDirCalls, []string{"/tmp/b/c"})
918 func TestDirectoriesAdded(t *testing.T) {
921 create(t, "/tmp/ignoreme.txt", filesystem)
922 create(t, "/tmp/a/findme.txt", filesystem)
923 create(t, "/tmp/b/ignore.txt", filesystem)
924 create(t, "/tmp/b/c/nope.txt", filesystem)
925 create(t, "/tmp/b/c/d/irrelevant.txt", filesystem)
929 t,
939 assertSameResponse(t, foundPaths, []string{"/tmp/a/findme.txt"})
943 create(t, "/tmp/b/c/new/findme.txt", filesystem)
944 create(t, "/tmp/b/c/new/new2/findme.txt", filesystem)
945 create(t, "/tmp/b/c/new/new2/ignoreme.txt", filesystem)
949 finder2 := finderWithSameParams(t, finder)
953 assertSameResponse(t, foundPaths,
955 assertSameStatCalls(t, filesystem.StatCalls,
957 …assertSameReadDirCalls(t, filesystem.ReadDirCalls, []string{"/tmp/b/c", "/tmp/b/c/new", "/tmp/b/c/…
962 func TestDirectoryAndSubdirectoryBothUpdated(t *testing.T) {
965 create(t, "/tmp/hi1.txt", filesystem)
966 create(t, "/tmp/a/hi1.txt", filesystem)
970 t,
980 assertSameResponse(t, foundPaths, []string{"/tmp/hi1.txt", "/tmp/a/hi1.txt"})
984 create(t, "/tmp/hi2.txt", filesystem)
985 create(t, "/tmp/a/hi2.txt", filesystem)
989 finder2 := finderWithSameParams(t, finder)
993 assertSameResponse(t, foundPaths,
995 assertSameStatCalls(t, filesystem.StatCalls,
997 assertSameReadDirCalls(t, filesystem.ReadDirCalls, []string{"/tmp", "/tmp/a"})
1002 func TestFileDeleted(t *testing.T) {
1005 create(t, "/tmp/ignoreme.txt", filesystem)
1006 create(t, "/tmp/a/findme.txt", filesystem)
1007 create(t, "/tmp/b/findme.txt", filesystem)
1008 create(t, "/tmp/b/c/nope.txt", filesystem)
1009 create(t, "/tmp/b/c/d/irrelevant.txt", filesystem)
1013 t,
1023 assertSameResponse(t, foundPaths, []string{"/tmp/a/findme.txt", "/tmp/b/findme.txt"})
1027 delete(t, "/tmp/b/findme.txt", filesystem)
1031 finder2 := finderWithSameParams(t, finder)
1035 assertSameResponse(t, foundPaths, []string{"/tmp/a/findme.txt"})
1036 …assertSameStatCalls(t, filesystem.StatCalls, []string{"/tmp", "/tmp/a", "/tmp/b", "/tmp/b/c", "/tm…
1037 assertSameReadDirCalls(t, filesystem.ReadDirCalls, []string{"/tmp/b"})
1042 func TestDirectoriesDeleted(t *testing.T) {
1045 create(t, "/tmp/findme.txt", filesystem)
1046 create(t, "/tmp/a/findme.txt", filesystem)
1047 create(t, "/tmp/a/1/findme.txt", filesystem)
1048 create(t, "/tmp/a/1/2/findme.txt", filesystem)
1049 create(t, "/tmp/b/findme.txt", filesystem)
1053 t,
1063 assertSameResponse(t, foundPaths,
1072 removeAll(t, "/tmp/a/1", filesystem)
1076 finder2 := finderWithSameParams(t, finder)
1080 assertSameResponse(t, foundPaths,
1090 assertSameStatCalls(t, filesystem.StatCalls,
1092 assertSameReadDirCalls(t, filesystem.ReadDirCalls, []string{"/tmp/a"})
1097 func TestDirectoriesMoved(t *testing.T) {
1100 create(t, "/tmp/findme.txt", filesystem)
1101 create(t, "/tmp/a/findme.txt", filesystem)
1102 create(t, "/tmp/a/1/findme.txt", filesystem)
1103 create(t, "/tmp/a/1/2/findme.txt", filesystem)
1104 create(t, "/tmp/b/findme.txt", filesystem)
1108 t,
1118 assertSameResponse(t, foundPaths,
1127 move(t, "/tmp/a", "/tmp/c", filesystem)
1131 finder2 := finderWithSameParams(t, finder)
1135 assertSameResponse(t, foundPaths,
1149 assertSameStatCalls(t, filesystem.StatCalls,
1151 …assertSameReadDirCalls(t, filesystem.ReadDirCalls, []string{"/tmp", "/tmp/c", "/tmp/c/1", "/tmp/c/…
1155 func TestDirectoriesSwapped(t *testing.T) {
1158 create(t, "/tmp/findme.txt", filesystem)
1159 create(t, "/tmp/a/findme.txt", filesystem)
1160 create(t, "/tmp/a/1/findme.txt", filesystem)
1161 create(t, "/tmp/a/1/2/findme.txt", filesystem)
1162 create(t, "/tmp/b/findme.txt", filesystem)
1166 t,
1176 assertSameResponse(t, foundPaths,
1185 move(t, "/tmp/a", "/tmp/temp", filesystem)
1186 move(t, "/tmp/b", "/tmp/a", filesystem)
1187 move(t, "/tmp/temp", "/tmp/b", filesystem)
1191 finder2 := finderWithSameParams(t, finder)
1195 assertSameResponse(t, foundPaths,
1209 assertSameStatCalls(t, filesystem.StatCalls,
1211 …assertSameReadDirCalls(t, filesystem.ReadDirCalls, []string{"/tmp", "/tmp/a", "/tmp/b", "/tmp/b/1"…
1218 func runFsReplacementTest(t *testing.T, fs1 *fs.MockFs, fs2 *fs.MockFs) {
1220 create(t, "/tmp/findme.txt", fs1)
1221 create(t, "/tmp/a/findme.txt", fs1)
1222 create(t, "/tmp/a/a/findme.txt", fs1)
1225 create(t, "/tmp/findme.txt", fs2)
1226 create(t, "/tmp/a/findme.txt", fs2)
1227 create(t, "/tmp/a/a/ignoreme.txt", fs2)
1228 create(t, "/tmp/a/b/findme.txt", fs2)
1232 t,
1242 assertSameResponse(t, foundPaths,
1246 cacheContent := read(t, finder.DbPath, fs1)
1247 write(t, finder.DbPath, cacheContent, fs2)
1251 t,
1261 assertSameResponse(t, foundPaths,
1263 assertSameStatCalls(t, fs2.StatCalls,
1265 assertSameReadDirCalls(t, fs2.ReadDirCalls,
1270 func TestChangeOfDevice(t *testing.T) {
1278 runFsReplacementTest(t, fs1, fs2)
1281 func TestChangeOfUserOrHost(t *testing.T) {
1288 runFsReplacementTest(t, fs1, fs2)
1291 func TestConsistentCacheOrdering(t *testing.T) {
1295 create(t, fmt.Sprintf("/tmp/%v/findme.txt", i), filesystem)
1300 t,
1311 string1 := read(t, finder.DbPath, filesystem)
1315 t.Fatal(err)
1319 finder2 := finderWithSameParams(t, finder)
1323 string2 := read(t, finder.DbPath, filesystem)
1326 t.Errorf("Running Finder twice generated two dbs not having identical contents.\n"+
1343 func TestNumSyscallsOfSecondFind(t *testing.T) {
1346 create(t, "/tmp/findme.txt", filesystem)
1347 create(t, "/tmp/a/findme.txt", filesystem)
1348 create(t, "/tmp/a/misc.txt", filesystem)
1352 t,
1360 assertSameResponse(t, foundPaths, []string{"/tmp/findme.txt", "/tmp/a/findme.txt"})
1366 assertSameResponse(t, refoundPaths, foundPaths)
1367 assertSameStatCalls(t, filesystem.StatCalls, []string{})
1368 assertSameReadDirCalls(t, filesystem.ReadDirCalls, []string{})
1373 func TestChangingParamsOfSecondFind(t *testing.T) {
1376 create(t, "/tmp/findme.txt", filesystem)
1377 create(t, "/tmp/a/findme.txt", filesystem)
1378 create(t, "/tmp/a/metoo.txt", filesystem)
1382 t,
1390 assertSameResponse(t, foundPaths, []string{"/tmp/findme.txt", "/tmp/a/findme.txt"})
1396 assertSameResponse(t, refoundPaths, []string{"/tmp/a/metoo.txt"})
1397 assertSameStatCalls(t, filesystem.StatCalls, []string{})
1398 assertSameReadDirCalls(t, filesystem.ReadDirCalls, []string{})
1403 func TestSymlinkPointingToFile(t *testing.T) {
1406 create(t, "/tmp/a/hi.txt", filesystem)
1407 create(t, "/tmp/a/ignoreme.txt", filesystem)
1408 link(t, "/tmp/hi.txt", "a/hi.txt", filesystem)
1409 link(t, "/tmp/b/hi.txt", "../a/hi.txt", filesystem)
1410 link(t, "/tmp/c/hi.txt", "/tmp/hi.txt", filesystem)
1411 link(t, "/tmp/d/hi.txt", "../a/bye.txt", filesystem)
1412 link(t, "/tmp/d/bye.txt", "../a/hi.txt", filesystem)
1413 link(t, "/tmp/e/bye.txt", "../a/bye.txt", filesystem)
1414 link(t, "/tmp/f/hi.txt", "somethingThatDoesntExist", filesystem)
1418 t,
1435 assertSameResponse(t, foundPaths, correctResponse)
1439 func TestSymlinkPointingToDirectory(t *testing.T) {
1442 create(t, "/tmp/dir/hi.txt", filesystem)
1443 create(t, "/tmp/dir/ignoreme.txt", filesystem)
1445 link(t, "/tmp/links/dir", "../dir", filesystem)
1446 link(t, "/tmp/links/link", "../dir", filesystem)
1447 link(t, "/tmp/links/broken", "nothingHere", filesystem)
1448 link(t, "/tmp/links/recursive", "recursive", filesystem)
1452 t,
1466 assertSameResponse(t, foundPaths, correctResponse)
1472 func TestAddPruneFile(t *testing.T) {
1475 create(t, "/tmp/out/hi.txt", filesystem)
1476 create(t, "/tmp/out/a/hi.txt", filesystem)
1477 create(t, "/tmp/hi.txt", filesystem)
1481 t,
1493 assertSameResponse(t, foundPaths,
1502 create(t, "/tmp/out/.ignore-out-dir", filesystem)
1504 finder2 := finderWithSameParams(t, finder)
1506 assertSameResponse(t, foundPaths, []string{"/tmp/hi.txt"})
1510 func TestUpdatingDbIffChanged(t *testing.T) {
1513 create(t, "/tmp/a/hi.txt", filesystem)
1514 create(t, "/tmp/b/bye.txt", filesystem)
1518 t,
1529 assertSameResponse(t, foundPaths, []string{"/tmp/a/hi.txt"})
1533 create(t, "/tmp/b/hi.txt", filesystem)
1538 finder2 := finderWithSameParams(t, finder)
1542 assertSameResponse(t, foundPaths, []string{"/tmp/a/hi.txt", "/tmp/b/hi.txt"})
1543 assertSameReadDirCalls(t, filesystem.ReadDirCalls, []string{"/tmp/b"})
1545 actualDbWriteTime := modTime(t, finder2.DbPath, filesystem)
1547 t.Fatalf("Expected to write db at %v, actually wrote db at %v\n",
1555 finder3 := finderWithSameParams(t, finder2)
1559 assertSameResponse(t, foundPaths, []string{"/tmp/a/hi.txt", "/tmp/b/hi.txt"})
1560 assertSameReadDirCalls(t, filesystem.ReadDirCalls, []string{})
1562 actualDbWriteTime = modTime(t, finder3.DbPath, filesystem)
1564 t.Fatalf("Re-wrote db even when contents did not change")
1569 func TestDirectoryNotPermitted(t *testing.T) {
1572 create(t, "/tmp/hi.txt", filesystem)
1573 create(t, "/tmp/a/hi.txt", filesystem)
1574 create(t, "/tmp/a/a/hi.txt", filesystem)
1575 create(t, "/tmp/b/hi.txt", filesystem)
1579 t,
1591 assertSameResponse(t, foundPaths, allPaths)
1596 setReadable(t, "/tmp/a", false, filesystem)
1600 finder2 := finderWithSameParams(t, finder)
1604 assertSameResponse(t, foundPaths, []string{"/tmp/hi.txt", "/tmp/b/hi.txt"})
1607 setReadable(t, "/tmp/a", true, filesystem)
1610 finder3 := finderWithSameParams(t, finder2)
1614 assertSameResponse(t, foundPaths, allPaths)
1617 func TestFileNotPermitted(t *testing.T) {
1620 create(t, "/tmp/hi.txt", filesystem)
1621 setReadable(t, "/tmp/hi.txt", false, filesystem)
1625 t,
1636 assertSameResponse(t, foundPaths, []string{"/tmp/hi.txt"})
1639 func TestCacheEntryPathUnexpectedError(t *testing.T) {
1642 create(t, "/tmp/a/hi.txt", filesystem)
1646 t,
1657 assertSameResponse(t, foundPaths, []string{"/tmp/a/hi.txt"})
1660 setReadErr(t, "/tmp/a", os.ErrInvalid, filesystem)
1663 _, err := finderAndErrorWithSameParams(t, finder)
1665 fatal(t, "Failed to detect unexpected filesystem error")