From 54a124de3b2083931aa0240460ec6c8d459e51d8 Mon Sep 17 00:00:00 2001 From: Michael Eischer Date: Wed, 7 Oct 2020 20:12:38 +0200 Subject: [PATCH] filter: explicitly test separate ListWithChild function --- internal/filter/filter_test.go | 43 ++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/internal/filter/filter_test.go b/internal/filter/filter_test.go index 9d487a582..ee7f05a32 100644 --- a/internal/filter/filter_test.go +++ b/internal/filter/filter_test.go @@ -240,21 +240,22 @@ func ExampleMatch_wildcards() { } var filterListTests = []struct { - patterns []string - path string - match bool + patterns []string + path string + match bool + childMatch bool }{ - {[]string{}, "/foo/bar/test.go", false}, - {[]string{"*.go"}, "/foo/bar/test.go", true}, - {[]string{"*.c"}, "/foo/bar/test.go", false}, - {[]string{"*.go", "*.c"}, "/foo/bar/test.go", true}, - {[]string{"*"}, "/foo/bar/test.go", true}, - {[]string{"x"}, "/foo/bar/test.go", false}, - {[]string{"?"}, "/foo/bar/test.go", false}, - {[]string{"?", "x"}, "/foo/bar/x", true}, - {[]string{"/*/*/bar/test.*"}, "/foo/bar/test.go", false}, - {[]string{"/*/*/bar/test.*", "*.go"}, "/foo/bar/test.go", true}, - {[]string{"", "*.c"}, "/foo/bar/test.go", false}, + {[]string{}, "/foo/bar/test.go", false, false}, + {[]string{"*.go"}, "/foo/bar/test.go", true, true}, + {[]string{"*.c"}, "/foo/bar/test.go", false, true}, + {[]string{"*.go", "*.c"}, "/foo/bar/test.go", true, true}, + {[]string{"*"}, "/foo/bar/test.go", true, true}, + {[]string{"x"}, "/foo/bar/test.go", false, true}, + {[]string{"?"}, "/foo/bar/test.go", false, true}, + {[]string{"?", "x"}, "/foo/bar/x", true, true}, + {[]string{"/*/*/bar/test.*"}, "/foo/bar/test.go", false, false}, + {[]string{"/*/*/bar/test.*", "*.go"}, "/foo/bar/test.go", true, true}, + {[]string{"", "*.c"}, "/foo/bar/test.go", false, true}, } func TestList(t *testing.T) { @@ -268,9 +269,21 @@ func TestList(t *testing.T) { } if match != test.match { - t.Errorf("test %d: filter.MatchList(%q, %q): expected %v, got %v", + t.Errorf("test %d: filter.List(%q, %q): expected %v, got %v", i, test.patterns, test.path, test.match, match) } + + match, childMatch, err := filter.ListWithChild(patterns, test.path) + if err != nil { + t.Errorf("test %d failed: expected no error for patterns %q, but error returned: %v", + i, test.patterns, err) + continue + } + + if match != test.match || childMatch != test.childMatch { + t.Errorf("test %d: filter.ListWithChild(%q, %q): expected %v, %v, got %v, %v", + i, test.patterns, test.path, test.match, test.childMatch, match, childMatch) + } } }