2 # Copyright (C) 2000 Free Software Foundation, Inc.
3 # This file is part of the GNU C Library.
4 # Contributes by Ulrich Drepper <drepper@redhat.com>.
6 # The GNU C Library is free software; you can redistribute it and/or
7 # modify it under the terms of the GNU Library General Public License as
8 # published by the Free Software Foundation; either version 2 of the
9 # License, or (at your option) any later version.
11 # The GNU C Library is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 # Library General Public License for more details.
16 # You should have received a copy of the GNU Library General Public
17 # License along with the GNU C Library; see the file COPYING.LIB. If
18 # not, write to the Free Software Foundation, Inc.,
19 # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
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.
28 C "!#%+,-./01234567889" "!#%+,-./01234567889" 0
29 C ":;=@ABCDEFGHIJKLMNO" ":;=@ABCDEFGHIJKLMNO" 0
30 C "PQRSTUVWXYZ]abcdefg" "PQRSTUVWXYZ]abcdefg" 0
31 C "hijklmnopqrstuvwxyz" "hijklmnopqrstuvwxyz" 0
35 C "\"$&'()" "\\\"\\$\\&\\'\\(\\)" 0
36 C "*?[\\`|" "\\*\\?\\[\\\\\\`\\|" 0
40 C "?*[" "[?*[][?*[][?*[]" 0
46 C "aa/b" "?/b" NOMATCH
47 C "aa/b" "a?b" NOMATCH
48 C "a/bb" "a/?" NOMATCH
51 C "abc" "[abc]" NOMATCH
59 C "xyz" "[!abc]" NOMATCH
61 C "a" "[!abc]" NOMATCH
65 C "abc]" "[][abc]" NOMATCH
66 C "[]abc" "[][]abc" NOMATCH
68 C "aa]" "[!]a]" NOMATCH
84 C "b" "[[=a=][=b=]]" 0
87 C "=" "[[=a=]b]" NOMATCH
88 C "]" "[[=a=]b]" NOMATCH
89 C "a" "[[=b=]]" NOMATCH
93 C "a" "[![:alnum:]]" NOMATCH
94 C "-" "[[:alnum:]]" NOMATCH
95 C "a]a" "[[:alnum:]]a" NOMATCH
96 C "-" "[[:alnum:]-]" 0
97 C "aa" "[[:alnum:]]a" 0
98 C "-" "[![:alnum:]]" 0
99 C "]" "[!][:alnum:]]" NOMATCH
100 C "[" "[![:alnum:][]" NOMATCH
101 C "a" "[[:alnum:]]" 0
102 C "b" "[[:alnum:]]" 0
103 C "c" "[[:alnum:]]" 0
104 C "d" "[[:alnum:]]" 0
105 C "e" "[[:alnum:]]" 0
106 C "f" "[[:alnum:]]" 0
107 C "g" "[[:alnum:]]" 0
108 C "h" "[[:alnum:]]" 0
109 C "i" "[[:alnum:]]" 0
110 C "j" "[[:alnum:]]" 0
111 C "k" "[[:alnum:]]" 0
112 C "l" "[[:alnum:]]" 0
113 C "m" "[[:alnum:]]" 0
114 C "n" "[[:alnum:]]" 0
115 C "o" "[[:alnum:]]" 0
116 C "p" "[[:alnum:]]" 0
117 C "q" "[[:alnum:]]" 0
118 C "r" "[[:alnum:]]" 0
119 C "s" "[[:alnum:]]" 0
120 C "t" "[[:alnum:]]" 0
121 C "u" "[[:alnum:]]" 0
122 C "v" "[[:alnum:]]" 0
123 C "w" "[[:alnum:]]" 0
124 C "x" "[[:alnum:]]" 0
125 C "y" "[[:alnum:]]" 0
126 C "z" "[[:alnum:]]" 0
127 C "A" "[[:alnum:]]" 0
128 C "B" "[[:alnum:]]" 0
129 C "C" "[[:alnum:]]" 0
130 C "D" "[[:alnum:]]" 0
131 C "E" "[[:alnum:]]" 0
132 C "F" "[[:alnum:]]" 0
133 C "G" "[[:alnum:]]" 0
134 C "H" "[[:alnum:]]" 0
135 C "I" "[[:alnum:]]" 0
136 C "J" "[[:alnum:]]" 0
137 C "K" "[[:alnum:]]" 0
138 C "L" "[[:alnum:]]" 0
139 C "M" "[[:alnum:]]" 0
140 C "N" "[[:alnum:]]" 0
141 C "O" "[[:alnum:]]" 0
142 C "P" "[[:alnum:]]" 0
143 C "Q" "[[:alnum:]]" 0
144 C "R" "[[:alnum:]]" 0
145 C "S" "[[:alnum:]]" 0
146 C "T" "[[:alnum:]]" 0
147 C "U" "[[:alnum:]]" 0
148 C "V" "[[:alnum:]]" 0
149 C "W" "[[:alnum:]]" 0
150 C "X" "[[:alnum:]]" 0
151 C "Y" "[[:alnum:]]" 0
152 C "Z" "[[:alnum:]]" 0
153 C "0" "[[:alnum:]]" 0
154 C "1" "[[:alnum:]]" 0
155 C "2" "[[:alnum:]]" 0
156 C "3" "[[:alnum:]]" 0
157 C "4" "[[:alnum:]]" 0
158 C "5" "[[:alnum:]]" 0
159 C "6" "[[:alnum:]]" 0
160 C "7" "[[:alnum:]]" 0
161 C "8" "[[:alnum:]]" 0
162 C "9" "[[:alnum:]]" 0
163 C "!" "[[:alnum:]]" NOMATCH
164 C "#" "[[:alnum:]]" NOMATCH
165 C "%" "[[:alnum:]]" NOMATCH
166 C "+" "[[:alnum:]]" NOMATCH
167 C "," "[[:alnum:]]" NOMATCH
168 C "-" "[[:alnum:]]" NOMATCH
169 C "." "[[:alnum:]]" NOMATCH
170 C "/" "[[:alnum:]]" NOMATCH
171 C ":" "[[:alnum:]]" NOMATCH
172 C ";" "[[:alnum:]]" NOMATCH
173 C "=" "[[:alnum:]]" NOMATCH
174 C "@" "[[:alnum:]]" NOMATCH
175 C "[" "[[:alnum:]]" NOMATCH
176 C "\\" "[[:alnum:]]" NOMATCH
177 C "]" "[[:alnum:]]" NOMATCH
178 C "^" "[[:alnum:]]" NOMATCH
179 C "_" "[[:alnum:]]" NOMATCH
180 C "{" "[[:alnum:]]" NOMATCH
181 C "}" "[[:alnum:]]" NOMATCH
182 C "~" "[[:alnum:]]" NOMATCH
183 C "\"" "[[:alnum:]]" NOMATCH
184 C "$" "[[:alnum:]]" NOMATCH
185 C "&" "[[:alnum:]]" NOMATCH
186 C "'" "[[:alnum:]]" NOMATCH
187 C "(" "[[:alnum:]]" NOMATCH
188 C ")" "[[:alnum:]]" NOMATCH
189 C "*" "[[:alnum:]]" NOMATCH
190 C "?" "[[:alnum:]]" NOMATCH
191 C "`" "[[:alnum:]]" NOMATCH
192 C "|" "[[:alnum:]]" NOMATCH
193 C "<" "[[:alnum:]]" NOMATCH
194 C ">" "[[:alnum:]]" NOMATCH
195 C "\t" "[[:cntrl:]]" 0
196 C "t" "[[:cntrl:]]" NOMATCH
197 C "t" "[[:lower:]]" 0
198 C "\t" "[[:lower:]]" NOMATCH
199 C "T" "[[:lower:]]" NOMATCH
200 C "\t" "[[:space:]]" 0
201 C "t" "[[:space:]]" NOMATCH
202 C "t" "[[:alpha:]]" 0
203 C "\t" "[[:alpha:]]" NOMATCH
204 C "0" "[[:digit:]]" 0
205 C "\t" "[[:digit:]]" NOMATCH
206 C "t" "[[:digit:]]" NOMATCH
207 C "\t" "[[:print:]]" NOMATCH
208 C "t" "[[:print:]]" 0
209 C "T" "[[:upper:]]" 0
210 C "\t" "[[:upper:]]" NOMATCH
211 C "t" "[[:upper:]]" NOMATCH
212 C "\t" "[[:blank:]]" 0
213 C "t" "[[:blank:]]" NOMATCH
214 C "\t" "[[:graph:]]" NOMATCH
215 C "t" "[[:graph:]]" 0
216 C "." "[[:punct:]]" 0
217 C "t" "[[:punct:]]" NOMATCH
218 C "\t" "[[:punct:]]" NOMATCH
219 C "0" "[[:xdigit:]]" 0
220 C "\t" "[[:xdigit:]]" NOMATCH
221 C "a" "[[:xdigit:]]" 0
222 C "A" "[[:xdigit:]]" 0
223 C "t" "[[:xdigit:]]" NOMATCH
224 C "a" "[[alpha]]" NOMATCH
225 C "a" "[[alpha:]]" NOMATCH
227 C "a]" "[[alpha:]]" 0
233 C "a" "[b-c]" NOMATCH
234 C "d" "[b-c]" NOMATCH
235 C "B" "[a-c]" NOMATCH
236 C "b" "[A-C]" NOMATCH
238 C "as" "[a-ca-z]" NOMATCH
241 C "b" "[c-a]" NOMATCH
245 C "d" "[a-c0-9]" NOMATCH
246 C "B" "[a-c0-9]" NOMATCH
251 C "-" "[!-a]" NOMATCH
255 C "a:" "a[0-9-a]" NOMATCH
263 C "as" "[a-c][a-z]" 0
267 C "asd/sdf" "as*df" 0
270 C "asd/sdf" "as*dg" NOMATCH
272 C "asdf" "as*df?" NOMATCH
293 C "//" "//" 0 PATHNAME
294 C "/.a" "/*" 0 PATHNAME
295 C "/.a" "/?a" 0 PATHNAME
296 C "/.a" "/[!a-z]a" 0 PATHNAME
297 C "/.a/.b" "/*/?b" 0 PATHNAME
300 C "/" "?" NOMATCH PATHNAME
301 C "/" "*" NOMATCH PATHNAME
302 C "a/b" "a?b" NOMATCH PATHNAME
303 C "/.a/.b" "/*b" NOMATCH PATHNAME
308 C "/[" "\\/[" NOMATCH
311 C "/$" "\\/\\$" NOMATCH NOESCAPE
312 C "/\\$" "\\/\\$" NOMATCH NOESCAPE
313 C "\\/\\$" "\\/\\$" 0 NOESCAPE
316 C ".asd" ".*" 0 PERIOD
317 C "/.asd" "*" 0 PERIOD
318 C "/as/.df" "*/?*f" 0 PERIOD
319 C "..asd" ".[!a-z]*" 0 PERIOD
322 C ".asd" "*" NOMATCH PERIOD
323 C ".asd" "?asd" NOMATCH PERIOD
324 C ".asd" "[!a-z]*" NOMATCH PERIOD
327 C "/." "/." 0 PATHNAME|PERIOD
328 C "/.a./.b." "/.*/.*" 0 PATHNAME|PERIOD
329 C "/.a./.b." "/.??/.??" 0 PATHNAME|PERIOD
332 C "/." "*" NOMATCH PATHNAME|PERIOD
333 C "/." "/*" NOMATCH PATHNAME|PERIOD
334 C "/." "/?" NOMATCH PATHNAME|PERIOD
335 C "/." "/[!a-z]" NOMATCH PATHNAME|PERIOD
336 C "/a./.b." "/*/*" NOMATCH PATHNAME|PERIOD
337 C "/a./.b." "/??/???" NOMATCH PATHNAME|PERIOD
339 # Following are tests outside the scope of IEEE 2003.2 since they are using
340 # locales other than the C locale. The main focus of the tests is on the
341 # handling of ranges and the recognition of character (vs bytes).
342 de_DE.ISO-8859-1 "a" "[a-z]" 0
343 de_DE.ISO-8859-1 "z" "[a-z]" 0
344 de_DE.ISO-8859-1 "ä" "[a-z]" 0
345 de_DE.ISO-8859-1 "ö" "[a-z]" 0
346 de_DE.ISO-8859-1 "ü" "[a-z]" 0
347 de_DE.ISO-8859-1 "A" "[a-z]" NOMATCH
348 de_DE.ISO-8859-1 "Z" "[a-z]" NOMATCH
349 de_DE.ISO-8859-1 "Ä" "[a-z]" NOMATCH
350 de_DE.ISO-8859-1 "Ö" "[a-z]" NOMATCH
351 de_DE.ISO-8859-1 "Ü" "[a-z]" NOMATCH
352 de_DE.ISO-8859-1 "a" "[A-Z]" NOMATCH
353 de_DE.ISO-8859-1 "z" "[A-Z]" NOMATCH
354 de_DE.ISO-8859-1 "ä" "[A-Z]" NOMATCH
355 de_DE.ISO-8859-1 "ö" "[A-Z]" NOMATCH
356 de_DE.ISO-8859-1 "ü" "[A-Z]" NOMATCH
357 de_DE.ISO-8859-1 "A" "[A-Z]" 0
358 de_DE.ISO-8859-1 "Z" "[A-Z]" 0
359 de_DE.ISO-8859-1 "Ä" "[A-Z]" 0
360 de_DE.ISO-8859-1 "Ö" "[A-Z]" 0
361 de_DE.ISO-8859-1 "Ü" "[A-Z]" 0
362 de_DE.ISO-8859-1 "a" "[[:lower:]]" 0
363 de_DE.ISO-8859-1 "z" "[[:lower:]]" 0
364 de_DE.ISO-8859-1 "ä" "[[:lower:]]" 0
365 de_DE.ISO-8859-1 "ö" "[[:lower:]]" 0
366 de_DE.ISO-8859-1 "ü" "[[:lower:]]" 0
367 de_DE.ISO-8859-1 "A" "[[:lower:]]" NOMATCH
368 de_DE.ISO-8859-1 "Z" "[[:lower:]]" NOMATCH
369 de_DE.ISO-8859-1 "Ä" "[[:lower:]]" NOMATCH
370 de_DE.ISO-8859-1 "Ö" "[[:lower:]]" NOMATCH
371 de_DE.ISO-8859-1 "Ü" "[[:lower:]]" NOMATCH
372 de_DE.ISO-8859-1 "a" "[[:upper:]]" NOMATCH
373 de_DE.ISO-8859-1 "z" "[[:upper:]]" NOMATCH
374 de_DE.ISO-8859-1 "ä" "[[:upper:]]" NOMATCH
375 de_DE.ISO-8859-1 "ö" "[[:upper:]]" NOMATCH
376 de_DE.ISO-8859-1 "ü" "[[:upper:]]" NOMATCH
377 de_DE.ISO-8859-1 "A" "[[:upper:]]" 0
378 de_DE.ISO-8859-1 "Z" "[[:upper:]]" 0
379 de_DE.ISO-8859-1 "Ä" "[[:upper:]]" 0
380 de_DE.ISO-8859-1 "Ö" "[[:upper:]]" 0
381 de_DE.ISO-8859-1 "Ü" "[[:upper:]]" 0
382 de_DE.ISO-8859-1 "a" "[[:alpha:]]" 0
383 de_DE.ISO-8859-1 "z" "[[:alpha:]]" 0
384 de_DE.ISO-8859-1 "ä" "[[:alpha:]]" 0
385 de_DE.ISO-8859-1 "ö" "[[:alpha:]]" 0
386 de_DE.ISO-8859-1 "ü" "[[:alpha:]]" 0
387 de_DE.ISO-8859-1 "A" "[[:alpha:]]" 0
388 de_DE.ISO-8859-1 "Z" "[[:alpha:]]" 0
389 de_DE.ISO-8859-1 "Ä" "[[:alpha:]]" 0
390 de_DE.ISO-8859-1 "Ö" "[[:alpha:]]" 0
391 de_DE.ISO-8859-1 "Ü" "[[:alpha:]]" 0
393 de_DE.ISO-8859-1 "a" "[[=a=]b]" 0
394 de_DE.ISO-8859-1 "â" "[[=a=]b]" 0
395 de_DE.ISO-8859-1 "à" "[[=a=]b]" 0
396 de_DE.ISO-8859-1 "á" "[[=a=]b]" 0
397 de_DE.ISO-8859-1 "b" "[[=a=]b]" 0
398 de_DE.ISO-8859-1 "c" "[[=a=]b]" NOMATCH
399 de_DE.ISO-8859-1 "a" "[[=â=]b]" 0
400 de_DE.ISO-8859-1 "â" "[[=â=]b]" 0
401 de_DE.ISO-8859-1 "à" "[[=â=]b]" 0
402 de_DE.ISO-8859-1 "á" "[[=â=]b]" 0
403 de_DE.ISO-8859-1 "b" "[[=â=]b]" 0
404 de_DE.ISO-8859-1 "c" "[[=â=]b]" NOMATCH
405 de_DE.ISO-8859-1 "a" "[[=à=]b]" 0
406 de_DE.ISO-8859-1 "â" "[[=à=]b]" 0
407 de_DE.ISO-8859-1 "à" "[[=à=]b]" 0
408 de_DE.ISO-8859-1 "á" "[[=à=]b]" 0
409 de_DE.ISO-8859-1 "b" "[[=à=]b]" 0
410 de_DE.ISO-8859-1 "c" "[[=à=]b]" NOMATCH
411 de_DE.ISO-8859-1 "a" "[[=á=]b]" 0
412 de_DE.ISO-8859-1 "â" "[[=á=]b]" 0
413 de_DE.ISO-8859-1 "à" "[[=á=]b]" 0
414 de_DE.ISO-8859-1 "á" "[[=á=]b]" 0
415 de_DE.ISO-8859-1 "b" "[[=á=]b]" 0
416 de_DE.ISO-8859-1 "c" "[[=á=]b]" NOMATCH