]>
Commit | Line | Data |
---|---|---|
83b1b6d8 | 1 | # Tests for fnmatch. |
d614a753 | 2 | # Copyright (C) 2000-2020 Free Software Foundation, Inc. |
83b1b6d8 UD |
3 | # This file is part of the GNU C Library. |
4 | # Contributes by Ulrich Drepper <drepper@redhat.com>. | |
5 | # | |
41bdb6e2 | 6 | |
83b1b6d8 | 7 | # The GNU C Library is free software; you can redistribute it and/or |
41bdb6e2 AJ |
8 | # modify it under the terms of the GNU Lesser General Public |
9 | # License as published by the Free Software Foundation; either | |
10 | # version 2.1 of the License, or (at your option) any later version. | |
11 | ||
83b1b6d8 UD |
12 | # The GNU C Library is distributed in the hope that it will be useful, |
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
41bdb6e2 AJ |
15 | # Lesser General Public License for more details. |
16 | ||
17 | # You should have received a copy of the GNU Lesser General Public | |
59ba27a6 | 18 | # License along with the GNU C Library; if not, see |
5a82c748 | 19 | # <https://www.gnu.org/licenses/>. |
83b1b6d8 UD |
20 | |
21 | ||
22 | # Derived from the IEEE 2003.2 text. The standard only contains some | |
23 | # wording describing the situations to be tested. It does not specify | |
24 | # any specific tests. I.e., the tests below are in no case sufficient. | |
25 | # They are hopefully necessary, though. | |
7cd7d36f CD |
26 | # |
27 | # See: | |
28 | # | |
29 | # http://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap09.html | |
30 | # | |
31 | # > RE Bracket Expression | |
32 | # > | |
33 | # > Range expressions are, historically, an integral part of REs. | |
34 | # > However, the requirements of "natural language behavior" and | |
35 | # > portability do conflict. In the POSIX locale, ranges must be treated | |
36 | # > according to the collating sequence and include such characters that | |
37 | # > fall within the range based on that collating sequence, regardless | |
38 | # > of character values. In other locales, ranges have unspecified behavior. | |
39 | # > ... | |
40 | # > The current standard leaves unspecified the behavior of a range | |
41 | # > expression outside the POSIX locale. This makes it clearer that | |
42 | # > conforming applications should avoid range expressions outside the | |
43 | # > POSIX locale, and it allows implementations and compatible user-mode | |
44 | # > matchers to interpret range expressions using native order, CEO, | |
45 | # > collation sequence, or other, more advanced techniques. The concerns | |
46 | # > which led to this change were raised in IEEE PASC interpretation | |
47 | # > 1003.2 #43 and others, and related to ambiguities in the | |
48 | # > specification of how multi-character collating elements should be | |
49 | # > handled in range expressions. These ambiguities had led to multiple | |
50 | # > interpretations of the specification, in conflicting ways, which led | |
51 | # > to varying implementations. As noted above, efforts were made to | |
52 | # > resolve the differences, but no solution has been found that would | |
53 | # > be specific enough to allow for portable software while not | |
54 | # > invalidating existing implementations. | |
55 | # | |
56 | # Therefore, using [a-z] does not make much sense except in the C/POSIX locale. | |
57 | # The new iso14651_t1_common lists upper case and lower case Latin characters | |
58 | # in a different order than the old one which causes surprising results | |
59 | # for example in the de_DE locale: [a-z] now includes A because A comes | |
60 | # after a in iso14651_t1_common but does not include Z because that comes | |
61 | # after z in iso14651_t1_common. | |
62 | # | |
63 | # This lead to several bugs and problems with user scripts that do not | |
64 | # expect [a-z] to match uppercase characters. | |
65 | # | |
66 | # See the following bugs: | |
67 | # https://sourceware.org/bugzilla/show_bug.cgi?id=23393 | |
68 | # https://sourceware.org/bugzilla/show_bug.cgi?id=23420 | |
69 | # | |
70 | # No consensus exists on how best to handle the changes so the | |
71 | # iso14651_t1_common collation element order (CEO) has been changed to | |
72 | # deinterlace the a-z and A-Z regions. | |
73 | # | |
74 | # With the deinterlacing commit ac3a3b4b0d561d776b60317d6a926050c8541655 | |
75 | # could be reverted to re-test the correct non-interleaved expectations. | |
76 | # | |
77 | # Please note that despite the region being deinterlaced, the ordering | |
78 | # of collation remains the same. In glibc we implement CEO and because of | |
79 | # that we can reorder the elements to reorder ranges without impacting | |
80 | # collation which depends on weights. The collation element ordering | |
81 | # could have been changed to include just a-z, A-Z, and 0-9 in three | |
82 | # distinct blocks, but this needs more discussion by the community. | |
83b1b6d8 UD |
83 | |
84 | # B.6 004(C) | |
85 | C "!#%+,-./01234567889" "!#%+,-./01234567889" 0 | |
86 | C ":;=@ABCDEFGHIJKLMNO" ":;=@ABCDEFGHIJKLMNO" 0 | |
87 | C "PQRSTUVWXYZ]abcdefg" "PQRSTUVWXYZ]abcdefg" 0 | |
88 | C "hijklmnopqrstuvwxyz" "hijklmnopqrstuvwxyz" 0 | |
89 | C "^_{}~" "^_{}~" 0 | |
90 | ||
91 | # B.6 005(C) | |
92 | C "\"$&'()" "\\\"\\$\\&\\'\\(\\)" 0 | |
93 | C "*?[\\`|" "\\*\\?\\[\\\\\\`\\|" 0 | |
94 | C "<>" "\\<\\>" 0 | |
95 | ||
96 | # B.6 006(C) | |
97 | C "?*[" "[?*[][?*[][?*[]" 0 | |
98 | C "a/b" "?/b" 0 | |
99 | ||
100 | # B.6 007(C) | |
101 | C "a/b" "a?b" 0 | |
102 | C "a/b" "a/?" 0 | |
83b1b6d8 UD |
103 | C "aa/b" "?/b" NOMATCH |
104 | C "aa/b" "a?b" NOMATCH | |
105 | C "a/bb" "a/?" NOMATCH | |
106 | ||
107 | # B.6 009(C) | |
108 | C "abc" "[abc]" NOMATCH | |
109 | C "x" "[abc]" NOMATCH | |
110 | C "a" "[abc]" 0 | |
111 | C "[" "[[abc]" 0 | |
112 | C "a" "[][abc]" 0 | |
113 | C "a]" "[]a]]" 0 | |
114 | ||
115 | # B.6 010(C) | |
ab9afc21 | 116 | C "xyz" "[!abc]" NOMATCH |
83b1b6d8 UD |
117 | C "x" "[!abc]" 0 |
118 | C "a" "[!abc]" NOMATCH | |
119 | ||
120 | # B.6 011(C) | |
121 | C "]" "[][abc]" 0 | |
122 | C "abc]" "[][abc]" NOMATCH | |
123 | C "[]abc" "[][]abc" NOMATCH | |
794c3ad3 | 124 | C "]" "[!]]" NOMATCH |
83b1b6d8 | 125 | C "aa]" "[!]a]" NOMATCH |
794c3ad3 UD |
126 | C "]" "[!a]" 0 |
127 | C "]]" "[!a]]" 0 | |
83b1b6d8 UD |
128 | |
129 | # B.6 012(C) | |
f3e29a1a UD |
130 | C "a" "[[.a.]]" 0 |
131 | C "-" "[[.-.]]" 0 | |
132 | C "-" "[[.-.][.].]]" 0 | |
133 | C "-" "[[.].][.-.]]" 0 | |
134 | C "-" "[[.-.][=u=]]" 0 | |
135 | C "-" "[[.-.][:alpha:]]" 0 | |
136 | C "a" "[![.a.]]" NOMATCH | |
83b1b6d8 UD |
137 | |
138 | # B.6 013(C) | |
f3e29a1a UD |
139 | C "a" "[[.b.]]" NOMATCH |
140 | C "a" "[[.b.][.c.]]" NOMATCH | |
141 | C "a" "[[.b.][=b=]]" NOMATCH | |
83b1b6d8 | 142 | |
83b1b6d8 UD |
143 | |
144 | # B.6 015(C) | |
ecce00a9 UD |
145 | C "a" "[[=a=]]" 0 |
146 | C "b" "[[=a=]b]" 0 | |
147 | C "b" "[[=a=][=b=]]" 0 | |
f3e29a1a UD |
148 | C "a" "[[=a=][=b=]]" 0 |
149 | C "a" "[[=a=][.b.]]" 0 | |
150 | C "a" "[[=a=][:digit:]]" 0 | |
83b1b6d8 UD |
151 | |
152 | # B.6 016(C) | |
ecce00a9 UD |
153 | C "=" "[[=a=]b]" NOMATCH |
154 | C "]" "[[=a=]b]" NOMATCH | |
f3e29a1a UD |
155 | C "a" "[[=b=][=c=]]" NOMATCH |
156 | C "a" "[[=b=][.].]]" NOMATCH | |
157 | C "a" "[[=b=][:digit:]]" NOMATCH | |
83b1b6d8 UD |
158 | |
159 | # B.6 017(C) | |
ab9afc21 UD |
160 | C "a" "[[:alnum:]]" 0 |
161 | C "a" "[![:alnum:]]" NOMATCH | |
162 | C "-" "[[:alnum:]]" NOMATCH | |
163 | C "a]a" "[[:alnum:]]a" NOMATCH | |
164 | C "-" "[[:alnum:]-]" 0 | |
165 | C "aa" "[[:alnum:]]a" 0 | |
166 | C "-" "[![:alnum:]]" 0 | |
167 | C "]" "[!][:alnum:]]" NOMATCH | |
168 | C "[" "[![:alnum:][]" NOMATCH | |
169 | C "a" "[[:alnum:]]" 0 | |
170 | C "b" "[[:alnum:]]" 0 | |
171 | C "c" "[[:alnum:]]" 0 | |
172 | C "d" "[[:alnum:]]" 0 | |
173 | C "e" "[[:alnum:]]" 0 | |
174 | C "f" "[[:alnum:]]" 0 | |
175 | C "g" "[[:alnum:]]" 0 | |
176 | C "h" "[[:alnum:]]" 0 | |
177 | C "i" "[[:alnum:]]" 0 | |
178 | C "j" "[[:alnum:]]" 0 | |
179 | C "k" "[[:alnum:]]" 0 | |
180 | C "l" "[[:alnum:]]" 0 | |
181 | C "m" "[[:alnum:]]" 0 | |
182 | C "n" "[[:alnum:]]" 0 | |
183 | C "o" "[[:alnum:]]" 0 | |
184 | C "p" "[[:alnum:]]" 0 | |
185 | C "q" "[[:alnum:]]" 0 | |
186 | C "r" "[[:alnum:]]" 0 | |
187 | C "s" "[[:alnum:]]" 0 | |
188 | C "t" "[[:alnum:]]" 0 | |
189 | C "u" "[[:alnum:]]" 0 | |
190 | C "v" "[[:alnum:]]" 0 | |
191 | C "w" "[[:alnum:]]" 0 | |
192 | C "x" "[[:alnum:]]" 0 | |
193 | C "y" "[[:alnum:]]" 0 | |
194 | C "z" "[[:alnum:]]" 0 | |
195 | C "A" "[[:alnum:]]" 0 | |
196 | C "B" "[[:alnum:]]" 0 | |
197 | C "C" "[[:alnum:]]" 0 | |
198 | C "D" "[[:alnum:]]" 0 | |
199 | C "E" "[[:alnum:]]" 0 | |
200 | C "F" "[[:alnum:]]" 0 | |
201 | C "G" "[[:alnum:]]" 0 | |
202 | C "H" "[[:alnum:]]" 0 | |
203 | C "I" "[[:alnum:]]" 0 | |
204 | C "J" "[[:alnum:]]" 0 | |
205 | C "K" "[[:alnum:]]" 0 | |
206 | C "L" "[[:alnum:]]" 0 | |
207 | C "M" "[[:alnum:]]" 0 | |
208 | C "N" "[[:alnum:]]" 0 | |
209 | C "O" "[[:alnum:]]" 0 | |
210 | C "P" "[[:alnum:]]" 0 | |
211 | C "Q" "[[:alnum:]]" 0 | |
212 | C "R" "[[:alnum:]]" 0 | |
213 | C "S" "[[:alnum:]]" 0 | |
214 | C "T" "[[:alnum:]]" 0 | |
215 | C "U" "[[:alnum:]]" 0 | |
216 | C "V" "[[:alnum:]]" 0 | |
217 | C "W" "[[:alnum:]]" 0 | |
218 | C "X" "[[:alnum:]]" 0 | |
219 | C "Y" "[[:alnum:]]" 0 | |
220 | C "Z" "[[:alnum:]]" 0 | |
221 | C "0" "[[:alnum:]]" 0 | |
222 | C "1" "[[:alnum:]]" 0 | |
223 | C "2" "[[:alnum:]]" 0 | |
224 | C "3" "[[:alnum:]]" 0 | |
225 | C "4" "[[:alnum:]]" 0 | |
226 | C "5" "[[:alnum:]]" 0 | |
227 | C "6" "[[:alnum:]]" 0 | |
228 | C "7" "[[:alnum:]]" 0 | |
229 | C "8" "[[:alnum:]]" 0 | |
230 | C "9" "[[:alnum:]]" 0 | |
231 | C "!" "[[:alnum:]]" NOMATCH | |
232 | C "#" "[[:alnum:]]" NOMATCH | |
233 | C "%" "[[:alnum:]]" NOMATCH | |
234 | C "+" "[[:alnum:]]" NOMATCH | |
235 | C "," "[[:alnum:]]" NOMATCH | |
236 | C "-" "[[:alnum:]]" NOMATCH | |
237 | C "." "[[:alnum:]]" NOMATCH | |
238 | C "/" "[[:alnum:]]" NOMATCH | |
239 | C ":" "[[:alnum:]]" NOMATCH | |
240 | C ";" "[[:alnum:]]" NOMATCH | |
241 | C "=" "[[:alnum:]]" NOMATCH | |
242 | C "@" "[[:alnum:]]" NOMATCH | |
243 | C "[" "[[:alnum:]]" NOMATCH | |
244 | C "\\" "[[:alnum:]]" NOMATCH | |
245 | C "]" "[[:alnum:]]" NOMATCH | |
246 | C "^" "[[:alnum:]]" NOMATCH | |
247 | C "_" "[[:alnum:]]" NOMATCH | |
248 | C "{" "[[:alnum:]]" NOMATCH | |
249 | C "}" "[[:alnum:]]" NOMATCH | |
250 | C "~" "[[:alnum:]]" NOMATCH | |
251 | C "\"" "[[:alnum:]]" NOMATCH | |
252 | C "$" "[[:alnum:]]" NOMATCH | |
253 | C "&" "[[:alnum:]]" NOMATCH | |
254 | C "'" "[[:alnum:]]" NOMATCH | |
255 | C "(" "[[:alnum:]]" NOMATCH | |
256 | C ")" "[[:alnum:]]" NOMATCH | |
257 | C "*" "[[:alnum:]]" NOMATCH | |
258 | C "?" "[[:alnum:]]" NOMATCH | |
259 | C "`" "[[:alnum:]]" NOMATCH | |
260 | C "|" "[[:alnum:]]" NOMATCH | |
261 | C "<" "[[:alnum:]]" NOMATCH | |
262 | C ">" "[[:alnum:]]" NOMATCH | |
263 | C "\t" "[[:cntrl:]]" 0 | |
264 | C "t" "[[:cntrl:]]" NOMATCH | |
265 | C "t" "[[:lower:]]" 0 | |
266 | C "\t" "[[:lower:]]" NOMATCH | |
267 | C "T" "[[:lower:]]" NOMATCH | |
268 | C "\t" "[[:space:]]" 0 | |
269 | C "t" "[[:space:]]" NOMATCH | |
270 | C "t" "[[:alpha:]]" 0 | |
271 | C "\t" "[[:alpha:]]" NOMATCH | |
272 | C "0" "[[:digit:]]" 0 | |
273 | C "\t" "[[:digit:]]" NOMATCH | |
274 | C "t" "[[:digit:]]" NOMATCH | |
275 | C "\t" "[[:print:]]" NOMATCH | |
276 | C "t" "[[:print:]]" 0 | |
277 | C "T" "[[:upper:]]" 0 | |
278 | C "\t" "[[:upper:]]" NOMATCH | |
279 | C "t" "[[:upper:]]" NOMATCH | |
280 | C "\t" "[[:blank:]]" 0 | |
281 | C "t" "[[:blank:]]" NOMATCH | |
282 | C "\t" "[[:graph:]]" NOMATCH | |
283 | C "t" "[[:graph:]]" 0 | |
284 | C "." "[[:punct:]]" 0 | |
285 | C "t" "[[:punct:]]" NOMATCH | |
286 | C "\t" "[[:punct:]]" NOMATCH | |
287 | C "0" "[[:xdigit:]]" 0 | |
288 | C "\t" "[[:xdigit:]]" NOMATCH | |
289 | C "a" "[[:xdigit:]]" 0 | |
290 | C "A" "[[:xdigit:]]" 0 | |
291 | C "t" "[[:xdigit:]]" NOMATCH | |
292 | C "a" "[[alpha]]" NOMATCH | |
293 | C "a" "[[alpha:]]" NOMATCH | |
294 | C "a]" "[[alpha]]" 0 | |
295 | C "a]" "[[alpha:]]" 0 | |
f3e29a1a UD |
296 | C "a" "[[:alpha:][.b.]]" 0 |
297 | C "a" "[[:alpha:][=b=]]" 0 | |
298 | C "a" "[[:alpha:][:digit:]]" 0 | |
299 | C "a" "[[:digit:][:alpha:]]" 0 | |
83b1b6d8 UD |
300 | |
301 | # B.6 018(C) | |
ab9afc21 UD |
302 | C "a" "[a-c]" 0 |
303 | C "b" "[a-c]" 0 | |
304 | C "c" "[a-c]" 0 | |
305 | C "a" "[b-c]" NOMATCH | |
306 | C "d" "[b-c]" NOMATCH | |
307 | C "B" "[a-c]" NOMATCH | |
308 | C "b" "[A-C]" NOMATCH | |
309 | C "" "[a-c]" NOMATCH | |
310 | C "as" "[a-ca-z]" NOMATCH | |
f3e29a1a UD |
311 | C "a" "[[.a.]-c]" 0 |
312 | C "a" "[a-[.c.]]" 0 | |
313 | C "a" "[[.a.]-[.c.]]" 0 | |
314 | C "b" "[[.a.]-c]" 0 | |
315 | C "b" "[a-[.c.]]" 0 | |
316 | C "b" "[[.a.]-[.c.]]" 0 | |
317 | C "c" "[[.a.]-c]" 0 | |
318 | C "c" "[a-[.c.]]" 0 | |
319 | C "c" "[[.a.]-[.c.]]" 0 | |
320 | C "d" "[[.a.]-c]" NOMATCH | |
321 | C "d" "[a-[.c.]]" NOMATCH | |
322 | C "d" "[[.a.]-[.c.]]" NOMATCH | |
83b1b6d8 UD |
323 | |
324 | # B.6 019(C) | |
f3e29a1a UD |
325 | C "a" "[c-a]" NOMATCH |
326 | C "a" "[[.c.]-a]" NOMATCH | |
327 | C "a" "[c-[.a.]]" NOMATCH | |
328 | C "a" "[[.c.]-[.a.]]" NOMATCH | |
329 | C "c" "[c-a]" NOMATCH | |
330 | C "c" "[[.c.]-a]" NOMATCH | |
331 | C "c" "[c-[.a.]]" NOMATCH | |
332 | C "c" "[[.c.]-[.a.]]" NOMATCH | |
83b1b6d8 UD |
333 | |
334 | # B.6 020(C) | |
ab9afc21 UD |
335 | C "a" "[a-c0-9]" 0 |
336 | C "d" "[a-c0-9]" NOMATCH | |
337 | C "B" "[a-c0-9]" NOMATCH | |
83b1b6d8 UD |
338 | |
339 | # B.6 021(C) | |
ab9afc21 UD |
340 | C "-" "[-a]" 0 |
341 | C "a" "[-b]" NOMATCH | |
342 | C "-" "[!-a]" NOMATCH | |
343 | C "a" "[!-b]" 0 | |
344 | C "-" "[a-c-0-9]" 0 | |
345 | C "b" "[a-c-0-9]" 0 | |
346 | C "a:" "a[0-9-a]" NOMATCH | |
347 | C "a:" "a[09-a]" 0 | |
83b1b6d8 UD |
348 | |
349 | # B.6 024(C) | |
ab9afc21 UD |
350 | C "" "*" 0 |
351 | C "asd/sdf" "*" 0 | |
83b1b6d8 UD |
352 | |
353 | # B.6 025(C) | |
ab9afc21 UD |
354 | C "as" "[a-c][a-z]" 0 |
355 | C "as" "??" 0 | |
83b1b6d8 UD |
356 | |
357 | # B.6 026(C) | |
ab9afc21 UD |
358 | C "asd/sdf" "as*df" 0 |
359 | C "asd/sdf" "as*" 0 | |
360 | C "asd/sdf" "*df" 0 | |
361 | C "asd/sdf" "as*dg" NOMATCH | |
362 | C "asdf" "as*df" 0 | |
363 | C "asdf" "as*df?" NOMATCH | |
364 | C "asdf" "as*??" 0 | |
365 | C "asdf" "a*???" 0 | |
366 | C "asdf" "*????" 0 | |
367 | C "asdf" "????*" 0 | |
368 | C "asdf" "??*?" 0 | |
83b1b6d8 UD |
369 | |
370 | # B.6 027(C) | |
ab9afc21 UD |
371 | C "/" "/" 0 |
372 | C "/" "/*" 0 | |
373 | C "/" "*/" 0 | |
374 | C "/" "/?" NOMATCH | |
375 | C "/" "?/" NOMATCH | |
376 | C "/" "?" 0 | |
377 | C "." "?" 0 | |
378 | C "/." "??" 0 | |
379 | C "/" "[!a-c]" 0 | |
380 | C "." "[!a-c]" 0 | |
f5c68a01 UD |
381 | |
382 | # B.6 029(C) | |
ab9afc21 UD |
383 | C "/" "/" 0 PATHNAME |
384 | C "//" "//" 0 PATHNAME | |
385 | C "/.a" "/*" 0 PATHNAME | |
386 | C "/.a" "/?a" 0 PATHNAME | |
387 | C "/.a" "/[!a-z]a" 0 PATHNAME | |
388 | C "/.a/.b" "/*/?b" 0 PATHNAME | |
f5c68a01 UD |
389 | |
390 | # B.6 030(C) | |
ab9afc21 UD |
391 | C "/" "?" NOMATCH PATHNAME |
392 | C "/" "*" NOMATCH PATHNAME | |
f5c68a01 | 393 | C "a/b" "a?b" NOMATCH PATHNAME |
ab9afc21 | 394 | C "/.a/.b" "/*b" NOMATCH PATHNAME |
f5c68a01 UD |
395 | |
396 | # B.6 031(C) | |
ab9afc21 UD |
397 | C "/$" "\\/\\$" 0 |
398 | C "/[" "\\/\\[" 0 | |
794c3ad3 UD |
399 | C "/[" "\\/[" 0 |
400 | C "/[]" "\\/\\[]" 0 | |
f5c68a01 UD |
401 | |
402 | # B.6 032(C) | |
ab9afc21 UD |
403 | C "/$" "\\/\\$" NOMATCH NOESCAPE |
404 | C "/\\$" "\\/\\$" NOMATCH NOESCAPE | |
405 | C "\\/\\$" "\\/\\$" 0 NOESCAPE | |
f5c68a01 UD |
406 | |
407 | # B.6 033(C) | |
ab9afc21 | 408 | C ".asd" ".*" 0 PERIOD |
955994e1 | 409 | C "/.asd" "*" 0 PERIOD |
ab9afc21 UD |
410 | C "/as/.df" "*/?*f" 0 PERIOD |
411 | C "..asd" ".[!a-z]*" 0 PERIOD | |
f5c68a01 UD |
412 | |
413 | # B.6 034(C) | |
ab9afc21 UD |
414 | C ".asd" "*" NOMATCH PERIOD |
415 | C ".asd" "?asd" NOMATCH PERIOD | |
416 | C ".asd" "[!a-z]*" NOMATCH PERIOD | |
f5c68a01 UD |
417 | |
418 | # B.6 035(C) | |
ab9afc21 UD |
419 | C "/." "/." 0 PATHNAME|PERIOD |
420 | C "/.a./.b." "/.*/.*" 0 PATHNAME|PERIOD | |
421 | C "/.a./.b." "/.??/.??" 0 PATHNAME|PERIOD | |
f5c68a01 UD |
422 | |
423 | # B.6 036(C) | |
ab9afc21 UD |
424 | C "/." "*" NOMATCH PATHNAME|PERIOD |
425 | C "/." "/*" NOMATCH PATHNAME|PERIOD | |
426 | C "/." "/?" NOMATCH PATHNAME|PERIOD | |
427 | C "/." "/[!a-z]" NOMATCH PATHNAME|PERIOD | |
428 | C "/a./.b." "/*/*" NOMATCH PATHNAME|PERIOD | |
429 | C "/a./.b." "/??/???" NOMATCH PATHNAME|PERIOD | |
430 | ||
955994e1 UD |
431 | # Some home-grown tests. |
432 | C "foobar" "foo*[abc]z" NOMATCH | |
433 | C "foobaz" "foo*[abc][xyz]" 0 | |
434 | C "foobaz" "foo?*[abc][xyz]" 0 | |
435 | C "foobaz" "foo?*[abc][x/yz]" 0 | |
436 | C "foobaz" "foo?*[abc]/[xyz]" NOMATCH PATHNAME | |
437 | C "a" "a/" NOMATCH PATHNAME | |
438 | C "a/" "a" NOMATCH PATHNAME | |
439 | C "//a" "/a" NOMATCH PATHNAME | |
440 | C "/a" "//a" NOMATCH PATHNAME | |
95eaff64 UD |
441 | C "az" "[a-]z" 0 |
442 | C "bz" "[ab-]z" 0 | |
443 | C "cz" "[ab-]z" NOMATCH | |
444 | C "-z" "[ab-]z" 0 | |
445 | C "az" "[-a]z" 0 | |
446 | C "bz" "[-ab]z" 0 | |
447 | C "cz" "[-ab]z" NOMATCH | |
448 | C "-z" "[-ab]z" 0 | |
aae95a1b UD |
449 | C "\\" "[\\\\-a]" 0 |
450 | C "_" "[\\\\-a]" 0 | |
451 | C "a" "[\\\\-a]" 0 | |
452 | C "-" "[\\\\-a]" NOMATCH | |
453 | C "\\" "[\\]-a]" NOMATCH | |
454 | C "_" "[\\]-a]" 0 | |
455 | C "a" "[\\]-a]" 0 | |
456 | C "]" "[\\]-a]" 0 | |
457 | C "-" "[\\]-a]" NOMATCH | |
458 | C "\\" "[!\\\\-a]" NOMATCH | |
459 | C "_" "[!\\\\-a]" NOMATCH | |
460 | C "a" "[!\\\\-a]" NOMATCH | |
461 | C "-" "[!\\\\-a]" 0 | |
462 | C "!" "[\\!-]" 0 | |
463 | C "-" "[\\!-]" 0 | |
464 | C "\\" "[\\!-]" NOMATCH | |
465 | C "Z" "[Z-\\\\]" 0 | |
466 | C "[" "[Z-\\\\]" 0 | |
467 | C "\\" "[Z-\\\\]" 0 | |
468 | C "-" "[Z-\\\\]" NOMATCH | |
469 | C "Z" "[Z-\\]]" 0 | |
470 | C "[" "[Z-\\]]" 0 | |
471 | C "\\" "[Z-\\]]" 0 | |
472 | C "]" "[Z-\\]]" 0 | |
473 | C "-" "[Z-\\]]" NOMATCH | |
955994e1 | 474 | |
ab9afc21 UD |
475 | # Following are tests outside the scope of IEEE 2003.2 since they are using |
476 | # locales other than the C locale. The main focus of the tests is on the | |
477 | # handling of ranges and the recognition of character (vs bytes). | |
478 | de_DE.ISO-8859-1 "a" "[a-z]" 0 | |
479 | de_DE.ISO-8859-1 "z" "[a-z]" 0 | |
480 |