| 29 | } |
| 30 | |
| 31 | TEST_CASE(globbing) |
| 32 | { |
| 33 | EXPECT(not glob_match("ab", "a")); |
| 34 | EXPECT(not glob_match("ba", "a")); |
| 35 | EXPECT(not glob_match("bac", "a")); |
| 36 | EXPECT(glob_match("ab", "ab")); |
| 37 | |
| 38 | // Star loop |
| 39 | EXPECT(glob_match("/foo/bar/baz/blig/fig/blig", "/foo/*/blig")); |
| 40 | EXPECT(glob_match("/foo/bar/baz/xlig/fig/blig", "/foo/*/blig")); |
| 41 | EXPECT(glob_match("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab", "a*a*a*a*a*a*a*a*b")); |
| 42 | EXPECT(glob_match("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab", |
| 43 | "a*a*a*a*a*a*a*a**a*a*a*a*b")); |
| 44 | EXPECT(glob_match("aabaabaab", "a*")); |
| 45 | EXPECT(glob_match("aabaabaab", "a*b*ab")); |
| 46 | EXPECT(glob_match("aabaabaab", "a*baab")); |
| 47 | EXPECT(glob_match("aabaabaab", "aa*")); |
| 48 | EXPECT(glob_match("aabaabaab", "aaba*")); |
| 49 | EXPECT(glob_match("aabaabqqbaab", "a*baab")); |
| 50 | EXPECT(glob_match("aabaabqqbaab", "a*baab")); |
| 51 | EXPECT(glob_match("abcdd", "*d")); |
| 52 | EXPECT(glob_match("abcdd", "*d*")); |
| 53 | EXPECT(glob_match("daaadabadmanda", "da*da*da*")); |
| 54 | EXPECT(glob_match("mississippi", "m*issip*")); |
| 55 | EXPECT(glob_match("abc", "ab*c")); |
| 56 | |
| 57 | // Repeated star |
| 58 | EXPECT(glob_match("aabaabqqbaab", "a****baab")); |
| 59 | EXPECT(glob_match("abcdd", "***d")); |
| 60 | EXPECT(glob_match("abcdd", "***d****")); |
| 61 | EXPECT(not glob_match("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "a**z")); |
| 62 | |
| 63 | // Single wildcard |
| 64 | EXPECT(glob_match("abc", "a?c")); |
| 65 | EXPECT(not glob_match("abc", "ab?c")); |
| 66 | |
| 67 | // Special characters |
| 68 | EXPECT(glob_match("test.foo[gpu]", "test.foo[gpu]")); |
| 69 | EXPECT(glob_match("test.foo[gpu]", "test.foo[*]")); |
| 70 | EXPECT(glob_match("test.foo[gpu]", "*[*")); |
| 71 | |
| 72 | EXPECT(glob_match("test.foo(gpu)", "test.foo(gpu)")); |
| 73 | EXPECT(glob_match("test.foo(gpu)", "test.foo(*)")); |
| 74 | EXPECT(glob_match("test.foo(gpu)", "*(*")); |
| 75 | |
| 76 | EXPECT(not glob_match("test.foog", "test.foo[gpu]")); |
| 77 | EXPECT(not glob_match("test.foogpu", "test.foo[gpu]")); |
| 78 | EXPECT(not glob_match("test_foo", "test.foo")); |
| 79 | } |
| 80 | |
| 81 | int main(int argc, const char* argv[]) { test::run(argc, argv); } |
nothing calls this directly
no test coverage detected