lib/ignore, lib/scanner: Fix recursion to catch included paths (fixes #5009) (#5010)

This commit is contained in:
Simon Frei
2018-06-18 08:22:19 +02:00
committed by Jakob Borg
parent 84c8964865
commit 8ff7ceeddc
3 changed files with 36 additions and 3 deletions

View File

@@ -1020,3 +1020,36 @@ func TestIssue4901(t *testing.T) {
t.Fatalf("unexpected error: %s", err.Error())
}
}
// TestIssue5009 checks that ignored dirs are only skipped if there are no include patterns.
// https://github.com/syncthing/syncthing/issues/5009 (rc-only bug)
func TestIssue5009(t *testing.T) {
pats := New(fs.NewFilesystem(fs.FilesystemTypeBasic, "."), WithCache(true))
stignore := `
ign1
i*2
`
if err := pats.Parse(bytes.NewBufferString(stignore), ".stignore"); err != nil {
t.Fatal(err)
}
if !pats.skipIgnoredDirs {
t.Error("skipIgnoredDirs should be true without includes")
}
stignore = `
!iex2
!ign1/ex
ign1
i*2
!ign2
`
if err := pats.Parse(bytes.NewBufferString(stignore), ".stignore"); err != nil {
t.Fatal(err)
}
if pats.skipIgnoredDirs {
t.Error("skipIgnoredDirs should not be true with includes")
}
}