| |
| # Items on a line a separated by TABs. Empty pattern or text can be written as <empty>. |
| # Empty lines, comment lines, and leading and trailing whitespace is ignored. |
| # |
| # Tests with IgnoreCase = false are run both with false and true. Tests with IgnoreCase = true are run only case-insensitively. |
| |
| # IgnoreCase? Pattern Text Expected |
| |
| false foo foo true |
| false foo fop false |
| false foo fo false |
| false fo foo false |
| false ??? foo true |
| false ??? fo false |
| false ?? foo false |
| false ?? fo true |
| false ? f true |
| false f?o foo true |
| false f?o fo false |
| false f?o f.o true |
| false * foo true |
| false f* foo true |
| false f** foo true |
| false f**** foo true |
| false ***f* foo true |
| false *f foo false |
| false *o foo true |
| false *foo* foo true |
| false f*o foo true |
| false f*o fabcdefghijklmnopqrstuvwxyzo true |
| false f*o abcdefghijklmnopqrstuvwxyzo false |
| false f*o fabcdefghijklmnpqrstuvwxyzo true |
| false f*o fabcdefghijklmnopqrstuvwxyz false |
| false f*o fabcdefghijklmnoooo true |
| false f*o gabcdefghijklmnoooo false |
| |
| false *ob*a*r* foobar true |
| false *ob*a*r* oobar true |
| false *ob*a*r* obar true |
| false *barz abarabarabarz true |
| false *barz abarabarzbarz true |
| false *ab aaaaaaabababab true |
| false foo\* foo* true |
| false foo\* foobar false |
| false foo\\* foo* false |
| |
| # Even number of backslashes followed by * at the end of the pattern |
| false foo\\* foo\* true |
| false foo\\* foo\a true |
| false foo\\* foo\\* true |
| false foo\\* foo\\a true |
| false foo\\* foo\ true |
| |
| false foo\? foo? true |
| false foo\? foop false |
| false foo\\? foo\a true |
| false foo\\? foo\ false |
| false foo\\? foo\\a false |
| false foo\*bar foobar false |
| false foo*bar foobar true |
| false foo\\bar foo\bar true |
| false foo\\bar foo\\bar false |
| |
| # Backslash is taken literally if not followed by *, ?, or \ |
| false foo\bar foo\bar true |
| false foo\bar foobar false |
| |
| false foo/bar foo/bar true |
| false foo/* foo/bar true |
| false foo/* foo/bar/baz true |
| false foo* foo/bar/baz true |
| false foo/*arr foo/baz/arr true |
| false foo/*z foo/baz/arr false |
| |
| false t/n t/n true |
| false t*n t/n true |
| false t?n t/n true |
| false *l? ball true |
| false *a? ball false |
| false *a?l ball true |
| false *a?? ball true |
| false foo*bar foo/baz/bar true |
| false foo**bar foo/baz/bar true |
| |
| # Trailing backslash |
| false foo\ foo false |
| false foo\ foo\ true |
| false foo\\ foo false |
| false foo\\ foo\ true |
| false foo\\ foo\\ false |
| false fo?\\ foo\ true |
| false fo?\ foo\ true |
| false fo?\ foo false |
| |
| false b*a aaabbb false |
| false *ba* aabcaa false |
| |
| false -*-*-*-*-*-*-12-*-*-*-m-*-*-* -adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1 true |
| false -*-*-*-*-*-*-12-*-*-*-m-*-*-* -adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1 false |
| false -*-*-*-*-*-*-12-*-*-*-m-*-*-* -adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1 false |
| false -*-*-*-*-*-*-12-*-*-*-m-*-*-* -adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-m--- true |
| false -*-*-*-*-*-*-12-*-*-*-m-*-*-* -adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-m-- false |
| false *a*b*g*n*t abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt true |
| false *a*b*g*n*t abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz false |
| false */*a*b*g*n*t abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt true |
| false */*a*b*g*n*t abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz false |
| false **/*a*b*g*n*t abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt true |
| false **/*a*b*g*n*t abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz false |
| false */*/* foo false |
| false */*/* foo/bar false |
| false */*/* foo/bba/arr true |
| false */*/* foo/bb/aa/rr true |
| false *X*i abcXdefXghi true |
| false *X*i ab/cXd/efXg/hi true |
| false */*X*/*/*i ab/cXd/efXg/hi true |
| false *Xg*i ab/cXd/efXg/hi true |
| |
| # Match empty text |
| false * <empty> true |
| false ** <empty> true |
| false ? <empty> false |
| false ?* <empty> false |
| false *? <empty> false |
| false x <empty> false |
| |
| # Empty patterns |
| false true |
| false <empty> true |
| false <empty> <empty> true |
| false <empty> x false |
| false <empty> xxx false |
| |
| false * a true |
| false ** a true |
| |
| # Ignoring case |
| true f f true |
| true F f true |
| true f F true |
| true F F true |
| true FooBar foobar true |
| true FooBar fOObAR true |
| true FooBar FooBar true |
| true FooBar Foo false |
| true F*b?R foobar true |
| true F*b?R FOOBAR true |
| true F*b?R foOBar true |
| true F*b?R foobr false |
| true ?ob*R fobar true |
| true ?ob*R fobaar true |
| true ?ob*R FOBAR true |
| true ?ob*R FOBAAR true |
| true ?ob*R fOBar true |
| true ?ob*R fobr true |
| true ?ob*R fobarz false |
| true ?ob*R fobarzr true |