mirror of
https://github.com/anchore/syft
synced 2024-11-10 06:14:16 +00:00
39 lines
847 B
Go
39 lines
847 B
Go
package file
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestGlobMatch(t *testing.T) {
|
|
var tests = []struct {
|
|
pattern string
|
|
data string
|
|
ok bool
|
|
}{
|
|
{"", "", true},
|
|
{"x", "", false},
|
|
{"", "x", false},
|
|
{"abc", "abc", true},
|
|
{"*", "abc", true},
|
|
{"*c", "abc", true},
|
|
{"*b", "abc", false},
|
|
{"a*", "abc", true},
|
|
{"b*", "abc", false},
|
|
{"a*", "a", true},
|
|
{"*a", "a", true},
|
|
{"a*b*c*d*e*", "axbxcxdxe", true},
|
|
{"a*b*c*d*e*", "axbxcxdxexxx", true},
|
|
{"a*b?c*x", "abxbbxdbxebxczzx", true},
|
|
{"a*b?c*x", "abxbbxdbxebxczzy", false},
|
|
{"a*a*a*a*b", strings.Repeat("a", 100), false},
|
|
{"*x", "xxx", true},
|
|
{"/home/place/**", "/home/place/a/thing", true},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
if GlobMatch(test.pattern, test.data) != test.ok {
|
|
t.Errorf("failed glob='%s' data='%s'", test.pattern, test.data)
|
|
}
|
|
}
|
|
}
|