diff --git a/pkg/result/processors/exclusion_paths.go b/pkg/result/processors/exclusion_paths.go index 104c33eefa5b..90c5f522f8bd 100644 --- a/pkg/result/processors/exclusion_paths.go +++ b/pkg/result/processors/exclusion_paths.go @@ -114,5 +114,5 @@ func (p *ExclusionPaths) shouldPassIssue(issue *result.Issue) bool { matched = true } - return !matched + return matched } diff --git a/pkg/result/processors/exclusion_paths_test.go b/pkg/result/processors/exclusion_paths_test.go index 44e17d207d38..deac410ab366 100644 --- a/pkg/result/processors/exclusion_paths_test.go +++ b/pkg/result/processors/exclusion_paths_test.go @@ -128,9 +128,9 @@ func TestExclusionPaths_Process(t *testing.T) { {RelativePath: filepath.FromSlash("base/d/file.go")}, }, expected: []result.Issue{ - {RelativePath: filepath.FromSlash("base/a/file.go")}, - {RelativePath: filepath.FromSlash("base/b/file.go")}, - {RelativePath: filepath.FromSlash("base/d/file.go")}, + {RelativePath: filepath.FromSlash("base/c/file.go")}, + {RelativePath: filepath.FromSlash("base/c/a/file.go")}, + {RelativePath: filepath.FromSlash("base/c/b/file.go")}, }, }, { @@ -151,9 +151,9 @@ func TestExclusionPaths_Process(t *testing.T) { {RelativePath: filepath.FromSlash("base/d/file.go")}, }, expected: []result.Issue{ - {RelativePath: filepath.FromSlash("base/a/file.go")}, - {RelativePath: filepath.FromSlash("base/b/file.go")}, - {RelativePath: filepath.FromSlash("base/d/file.go")}, + {RelativePath: filepath.FromSlash("base/c/file.go")}, + {RelativePath: filepath.FromSlash("base/c/a/file.go")}, + {RelativePath: filepath.FromSlash("base/c/b/file.go")}, }, }, { @@ -174,13 +174,14 @@ func TestExclusionPaths_Process(t *testing.T) { {RelativePath: filepath.FromSlash("base/e/file.go")}, }, expected: []result.Issue{ - {RelativePath: filepath.FromSlash("base/a/file.go")}, - {RelativePath: filepath.FromSlash("base/b/file.go")}, - {RelativePath: filepath.FromSlash("base/d/file.go")}, + {RelativePath: filepath.FromSlash("base/c/file.go")}, + {RelativePath: filepath.FromSlash("base/c/a/file.go")}, + {RelativePath: filepath.FromSlash("base/c/b/file.go")}, + {RelativePath: filepath.FromSlash("base/e/file.go")}, }, }, { - desc: "pathsExcept and paths", + desc: "pathsExcept and paths (disjoint)", cfg: &config.LinterExclusions{ Paths: []string{"^base/b/"}, PathsExcept: []string{`^base/c/.*$`}, @@ -194,9 +195,29 @@ func TestExclusionPaths_Process(t *testing.T) { {RelativePath: filepath.FromSlash("base/d/file.go")}, }, expected: []result.Issue{ + {RelativePath: filepath.FromSlash("base/c/file.go")}, + {RelativePath: filepath.FromSlash("base/c/a/file.go")}, + {RelativePath: filepath.FromSlash("base/c/b/file.go")}, + }, + }, + { + desc: "pathsExcept and paths (intersection)", + cfg: &config.LinterExclusions{ + Paths: []string{"^base/c/a/"}, + PathsExcept: []string{`^base/c/.*$`}, + }, + issues: []result.Issue{ {RelativePath: filepath.FromSlash("base/a/file.go")}, + {RelativePath: filepath.FromSlash("base/b/file.go")}, + {RelativePath: filepath.FromSlash("base/c/file.go")}, + {RelativePath: filepath.FromSlash("base/c/a/file.go")}, + {RelativePath: filepath.FromSlash("base/c/b/file.go")}, {RelativePath: filepath.FromSlash("base/d/file.go")}, }, + expected: []result.Issue{ + {RelativePath: filepath.FromSlash("base/c/file.go")}, + {RelativePath: filepath.FromSlash("base/c/b/file.go")}, + }, }, }