@@ -52,18 +52,32 @@ class TestUtils : public TestFixture {
5252 ASSERT_EQUALS (true , ::isValidGlobPattern (" x*" ));
5353 ASSERT_EQUALS (true , ::isValidGlobPattern (" */x/*" ));
5454 ASSERT_EQUALS (true , ::isValidGlobPattern (" x/*/z" ));
55- ASSERT_EQUALS (false , ::isValidGlobPattern (" **" ));
56- ASSERT_EQUALS (false , ::isValidGlobPattern (" **x" ));
57- ASSERT_EQUALS (false , ::isValidGlobPattern (" x**" ));
55+ ASSERT_EQUALS (true , ::isValidGlobPattern (" **" ));
56+ ASSERT_EQUALS (true , ::isValidGlobPattern (" **x" ));
57+ ASSERT_EQUALS (true , ::isValidGlobPattern (" x**" ));
5858
5959 ASSERT_EQUALS (true , ::isValidGlobPattern (" ?" ));
6060 ASSERT_EQUALS (true , ::isValidGlobPattern (" ?x" ));
6161 ASSERT_EQUALS (true , ::isValidGlobPattern (" x?" ));
6262 ASSERT_EQUALS (true , ::isValidGlobPattern (" ?/x/?" ));
6363 ASSERT_EQUALS (true , ::isValidGlobPattern (" x/?/z" ));
64- ASSERT_EQUALS (false , ::isValidGlobPattern (" ??" ));
65- ASSERT_EQUALS (false , ::isValidGlobPattern (" ??x" ));
66- ASSERT_EQUALS (false , ::isValidGlobPattern (" x??" ));
64+ ASSERT_EQUALS (true , ::isValidGlobPattern (" ??" ));
65+ ASSERT_EQUALS (true , ::isValidGlobPattern (" ????" ));
66+ ASSERT_EQUALS (true , ::isValidGlobPattern (" ??x" ));
67+ ASSERT_EQUALS (true , ::isValidGlobPattern (" x??" ));
68+
69+ ASSERT_EQUALS (true , ::isValidGlobPattern (" ?*" ));
70+ ASSERT_EQUALS (true , ::isValidGlobPattern (" ?**" ));
71+ ASSERT_EQUALS (false , ::isValidGlobPattern (" ?***" ));
72+ ASSERT_EQUALS (true , ::isValidGlobPattern (" ???*" ));
73+ ASSERT_EQUALS (true , ::isValidGlobPattern (" ???**" ));
74+ ASSERT_EQUALS (false , ::isValidGlobPattern (" ???***" ));
75+
76+ ASSERT_EQUALS (false , ::isValidGlobPattern (" *?" ));
77+ ASSERT_EQUALS (true , ::isValidGlobPattern (" *x?" ));
78+ ASSERT_EQUALS (false , ::isValidGlobPattern (" **?" ));
79+ ASSERT_EQUALS (false , ::isValidGlobPattern (" ***" ));
80+ ASSERT_EQUALS (true , ::isValidGlobPattern (" **x*" ));
6781 }
6882
6983 void matchglob () const {
@@ -76,11 +90,26 @@ class TestUtils : public TestFixture {
7690 ASSERT_EQUALS (true , ::matchglob (" *" , " x/y/z" ));
7791 ASSERT_EQUALS (true , ::matchglob (" */y/z" , " x/y/z" ));
7892
93+ ASSERT_EQUALS (true , ::matchglob (" **" , " " ));
94+ ASSERT_EQUALS (true , ::matchglob (" **" , " abcdefg" ));
95+ ASSERT_EQUALS (true , ::matchglob (" **" , " abcde/foo/bar" ));
96+ ASSERT_EQUALS (false , ::matchglob (" */**" , " abcde" ));
97+ ASSERT_EQUALS (true , ::matchglob (" */**" , " abcde/foo" ));
98+ ASSERT_EQUALS (true , ::matchglob (" */**" , " abcde/foo/bar" ));
99+
79100 ASSERT_EQUALS (false , ::matchglob (" ?" , " xyz" ));
80101 ASSERT_EQUALS (false , ::matchglob (" x?" , " xyz" ));
81102 ASSERT_EQUALS (false , ::matchglob (" ?z" , " xyz" ));
82103 ASSERT_EQUALS (true , ::matchglob (" ?y?" , " xyz" ));
83104 ASSERT_EQUALS (true , ::matchglob (" ?/?/?" , " x/y/z" ));
105+
106+ ASSERT_EQUALS (true , ::matchglob (" ??" , " xy" ));
107+ ASSERT_EQUALS (false , ::matchglob (" ??" , " x" ));
108+ ASSERT_EQUALS (false , ::matchglob (" ??" , " xyz" ));
109+
110+ ASSERT_EQUALS (true , ::matchglob (" ????" , " wxyz" ));
111+ ASSERT_EQUALS (false , ::matchglob (" ????" , " xyz" ));
112+ ASSERT_EQUALS (false , ::matchglob (" ????" , " vwxyz" ));
84113 }
85114
86115 void isStringLiteral () const {
0 commit comments