1 | #! /bin/sh
|
---|
2 |
|
---|
3 | common_objpfx=$1; shift
|
---|
4 | elf_objpfx=$1; shift
|
---|
5 | rtld_installed_name=$1; shift
|
---|
6 | logfile=$common_objpfx/posix/globtest.out
|
---|
7 |
|
---|
8 | #CMP=cmp
|
---|
9 | CMP="diff -u"
|
---|
10 |
|
---|
11 | # We have to make the paths `common_objpfx' absolute.
|
---|
12 | case "$common_objpfx" in
|
---|
13 | .*)
|
---|
14 | common_objpfx="`pwd`/$common_objpfx"
|
---|
15 | ;;
|
---|
16 | *)
|
---|
17 | ;;
|
---|
18 | esac
|
---|
19 |
|
---|
20 | # We have to find the libc and the NSS modules.
|
---|
21 | library_path=${common_objpfx}:${common_objpfx}nss:${common_objpfx}nis:${common_objpfx}db2:${common_objpfx}hesiod
|
---|
22 |
|
---|
23 | # Since we use `sort' we must make sure to use the same locale everywhere.
|
---|
24 | LC_ALL=C
|
---|
25 | export LC_ALL
|
---|
26 | LANG=C
|
---|
27 | export LANG
|
---|
28 |
|
---|
29 | # Create the arena
|
---|
30 | : ${TMPDIR=/tmp}
|
---|
31 | testdir=$TMPDIR/globtest-dir
|
---|
32 | testout=$TMPDIR/globtest-out
|
---|
33 |
|
---|
34 | trap 'chmod 777 $testdir/noread; rm -fr $testdir $testout' 1 2 3 15
|
---|
35 |
|
---|
36 | test -d $testdir/noread && chmod 777 $testdir/noread
|
---|
37 | rm -fr $testdir 2>/dev/null
|
---|
38 | mkdir $testdir
|
---|
39 | echo 1 > $testdir/file1
|
---|
40 | echo 2 > $testdir/file2
|
---|
41 | echo 3 > $testdir/-file3
|
---|
42 | echo 4 > $testdir/~file4
|
---|
43 | echo 5 > $testdir/.file5
|
---|
44 | echo 6 > $testdir/'*file6'
|
---|
45 | echo 7 > $testdir/'{file7,}'
|
---|
46 | echo 8 > $testdir/'\{file8\}'
|
---|
47 | echo 9 > $testdir/'\{file9\,file9b\}'
|
---|
48 | echo 9 > $testdir/'\file9b\' #'
|
---|
49 | echo a > $testdir/'filea,'
|
---|
50 | echo a > $testdir/'fileb}c'
|
---|
51 | mkdir $testdir/dir1
|
---|
52 | mkdir $testdir/dir2
|
---|
53 | test -d $testdir/noread || mkdir $testdir/noread
|
---|
54 | chmod a-r $testdir/noread
|
---|
55 | echo 1_1 > $testdir/dir1/file1_1
|
---|
56 | echo 1_2 > $testdir/dir1/file1_2
|
---|
57 | ln -fs dir1 $testdir/link1
|
---|
58 |
|
---|
59 | # Run some tests.
|
---|
60 | result=0
|
---|
61 | rm -f $logfile
|
---|
62 |
|
---|
63 | # Normal test
|
---|
64 | failed=0
|
---|
65 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
66 | ${common_objpfx}posix/globtest "$testdir" "*" |
|
---|
67 | sort > $testout
|
---|
68 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
69 | `*file6'
|
---|
70 | `-file3'
|
---|
71 | `\file9b\'
|
---|
72 | `\{file8\}'
|
---|
73 | `\{file9\,file9b\}'
|
---|
74 | `dir1'
|
---|
75 | `dir2'
|
---|
76 | `file1'
|
---|
77 | `file2'
|
---|
78 | `filea,'
|
---|
79 | `fileb}c'
|
---|
80 | `link1'
|
---|
81 | `noread'
|
---|
82 | `{file7,}'
|
---|
83 | `~file4'
|
---|
84 | EOF
|
---|
85 | if test $failed -ne 0; then
|
---|
86 | echo "Normal test failed" >> $logfile
|
---|
87 | result=1
|
---|
88 | fi
|
---|
89 |
|
---|
90 | # Don't let glob sort it
|
---|
91 | failed=0
|
---|
92 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
93 | ${common_objpfx}posix/globtest -s "$testdir" "*" |
|
---|
94 | sort > $testout
|
---|
95 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
96 | `*file6'
|
---|
97 | `-file3'
|
---|
98 | `\file9b\'
|
---|
99 | `\{file8\}'
|
---|
100 | `\{file9\,file9b\}'
|
---|
101 | `dir1'
|
---|
102 | `dir2'
|
---|
103 | `file1'
|
---|
104 | `file2'
|
---|
105 | `filea,'
|
---|
106 | `fileb}c'
|
---|
107 | `link1'
|
---|
108 | `noread'
|
---|
109 | `{file7,}'
|
---|
110 | `~file4'
|
---|
111 | EOF
|
---|
112 | if test $failed -ne 0; then
|
---|
113 | echo "No sort test failed" >> $logfile
|
---|
114 | result=1
|
---|
115 | fi
|
---|
116 |
|
---|
117 | # Mark directories
|
---|
118 | failed=0
|
---|
119 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
120 | ${common_objpfx}posix/globtest -m "$testdir" "*" |
|
---|
121 | sort > $testout
|
---|
122 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
123 | `*file6'
|
---|
124 | `-file3'
|
---|
125 | `\file9b\'
|
---|
126 | `\{file8\}'
|
---|
127 | `\{file9\,file9b\}'
|
---|
128 | `dir1/'
|
---|
129 | `dir2/'
|
---|
130 | `file1'
|
---|
131 | `file2'
|
---|
132 | `filea,'
|
---|
133 | `fileb}c'
|
---|
134 | `link1/'
|
---|
135 | `noread/'
|
---|
136 | `{file7,}'
|
---|
137 | `~file4'
|
---|
138 | EOF
|
---|
139 | if test $failed -ne 0; then
|
---|
140 | echo "Mark directories test failed" >> $logfile
|
---|
141 | result=1
|
---|
142 | fi
|
---|
143 |
|
---|
144 | # Find files starting with .
|
---|
145 | failed=0
|
---|
146 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
147 | ${common_objpfx}posix/globtest -p "$testdir" "*" |
|
---|
148 | sort > $testout
|
---|
149 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
150 | `*file6'
|
---|
151 | `-file3'
|
---|
152 | `.'
|
---|
153 | `..'
|
---|
154 | `.file5'
|
---|
155 | `\file9b\'
|
---|
156 | `\{file8\}'
|
---|
157 | `\{file9\,file9b\}'
|
---|
158 | `dir1'
|
---|
159 | `dir2'
|
---|
160 | `file1'
|
---|
161 | `file2'
|
---|
162 | `filea,'
|
---|
163 | `fileb}c'
|
---|
164 | `link1'
|
---|
165 | `noread'
|
---|
166 | `{file7,}'
|
---|
167 | `~file4'
|
---|
168 | EOF
|
---|
169 | if test $failed -ne 0; then
|
---|
170 | echo "Leading period test failed" >> $logfile
|
---|
171 | result=1
|
---|
172 | fi
|
---|
173 |
|
---|
174 | # Test braces
|
---|
175 | failed=0
|
---|
176 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
177 | ${common_objpfx}posix/globtest -b "$testdir" "file{1,2}" |
|
---|
178 | sort > $testout
|
---|
179 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
180 | `file1'
|
---|
181 | `file2'
|
---|
182 | EOF
|
---|
183 | if test $failed -ne 0; then
|
---|
184 | echo "Braces test failed" >> $logfile
|
---|
185 | result=1
|
---|
186 | fi
|
---|
187 |
|
---|
188 | failed=0
|
---|
189 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
190 | ${common_objpfx}posix/globtest -b "$testdir" "{file{1,2},-file3}" |
|
---|
191 | sort > $testout
|
---|
192 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
193 | `-file3'
|
---|
194 | `file1'
|
---|
195 | `file2'
|
---|
196 | EOF
|
---|
197 | if test $failed -ne 0; then
|
---|
198 | echo "Braces test 2 failed" >> $logfile
|
---|
199 | result=1
|
---|
200 | fi
|
---|
201 |
|
---|
202 | failed=0
|
---|
203 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
204 | ${common_objpfx}posix/globtest -b "$testdir" "{" |
|
---|
205 | sort > $testout
|
---|
206 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
207 | GLOB_NOMATCH
|
---|
208 | EOF
|
---|
209 | if test $failed -ne 0; then
|
---|
210 | echo "Braces test 3 failed" >> $logfile
|
---|
211 | result=1
|
---|
212 | fi
|
---|
213 |
|
---|
214 | # Test NOCHECK
|
---|
215 | failed=0
|
---|
216 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
217 | ${common_objpfx}posix/globtest -c "$testdir" "abc" |
|
---|
218 | sort > $testout
|
---|
219 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
220 | `abc'
|
---|
221 | EOF
|
---|
222 | if test $failed -ne 0; then
|
---|
223 | echo "No check test failed" >> $logfile
|
---|
224 | result=1
|
---|
225 | fi
|
---|
226 |
|
---|
227 | # Test NOMAGIC without magic characters
|
---|
228 | failed=0
|
---|
229 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
230 | ${common_objpfx}posix/globtest -g "$testdir" "abc" |
|
---|
231 | sort > $testout
|
---|
232 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
233 | `abc'
|
---|
234 | EOF
|
---|
235 | if test $failed -ne 0; then
|
---|
236 | echo "No magic test failed" >> $logfile
|
---|
237 | result=1
|
---|
238 | fi
|
---|
239 |
|
---|
240 | # Test NOMAGIC with magic characters
|
---|
241 | failed=0
|
---|
242 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
243 | ${common_objpfx}posix/globtest -g "$testdir" "abc*" |
|
---|
244 | sort > $testout
|
---|
245 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
246 | GLOB_NOMATCH
|
---|
247 | EOF
|
---|
248 | if test $failed -ne 0; then
|
---|
249 | echo "No magic w/ magic chars test failed" >> $logfile
|
---|
250 | result=1
|
---|
251 | fi
|
---|
252 |
|
---|
253 | # Test NOMAGIC for subdirs
|
---|
254 | failed=0
|
---|
255 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
256 | ${common_objpfx}posix/globtest -g "$testdir" "*/does-not-exist" |
|
---|
257 | sort > $testout
|
---|
258 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
259 | GLOB_NOMATCH
|
---|
260 | EOF
|
---|
261 | if test $failed -ne 0; then
|
---|
262 | echo "No magic in subdir test failed" >> $logfile
|
---|
263 | result=1
|
---|
264 | fi
|
---|
265 |
|
---|
266 | # Test subdirs correctly
|
---|
267 | failed=0
|
---|
268 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
269 | ${common_objpfx}posix/globtest "$testdir" "*/*" |
|
---|
270 | sort > $testout
|
---|
271 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
272 | `dir1/file1_1'
|
---|
273 | `dir1/file1_2'
|
---|
274 | `link1/file1_1'
|
---|
275 | `link1/file1_2'
|
---|
276 | EOF
|
---|
277 | if test $failed -ne 0; then
|
---|
278 | echo "Subdirs test failed" >> $logfile
|
---|
279 | result=1
|
---|
280 | fi
|
---|
281 |
|
---|
282 | # Test subdirs for invalid names
|
---|
283 | failed=0
|
---|
284 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
285 | ${common_objpfx}posix/globtest "$testdir" "*/1" |
|
---|
286 | sort > $testout
|
---|
287 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
288 | GLOB_NOMATCH
|
---|
289 | EOF
|
---|
290 | if test $failed -ne 0; then
|
---|
291 | echo "Invalid subdir test failed" >> $logfile
|
---|
292 | result=1
|
---|
293 | fi
|
---|
294 |
|
---|
295 | # Test subdirs with wildcard
|
---|
296 | failed=0
|
---|
297 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
298 | ${common_objpfx}posix/globtest "$testdir" "*/*1_1" |
|
---|
299 | sort > $testout
|
---|
300 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
301 | `dir1/file1_1'
|
---|
302 | `link1/file1_1'
|
---|
303 | EOF
|
---|
304 | if test $failed -ne 0; then
|
---|
305 | echo "Wildcard subdir test failed" >> $logfile
|
---|
306 | result=1
|
---|
307 | fi
|
---|
308 |
|
---|
309 | # Test subdirs with ?
|
---|
310 | failed=0
|
---|
311 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
312 | ${common_objpfx}posix/globtest "$testdir" "*/*?_?" |
|
---|
313 | sort > $testout
|
---|
314 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
315 | `dir1/file1_1'
|
---|
316 | `dir1/file1_2'
|
---|
317 | `link1/file1_1'
|
---|
318 | `link1/file1_2'
|
---|
319 | EOF
|
---|
320 | if test $failed -ne 0; then
|
---|
321 | echo "Wildcard2 subdir test failed" >> $logfile
|
---|
322 | result=1
|
---|
323 | fi
|
---|
324 |
|
---|
325 | failed=0
|
---|
326 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
327 | ${common_objpfx}posix/globtest "$testdir" "*/file1_1" |
|
---|
328 | sort > $testout
|
---|
329 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
330 | `dir1/file1_1'
|
---|
331 | `link1/file1_1'
|
---|
332 | EOF
|
---|
333 | if test $failed -ne 0; then
|
---|
334 | echo "Wildcard3 subdir test failed" >> $logfile
|
---|
335 | result=1
|
---|
336 | fi
|
---|
337 |
|
---|
338 | failed=0
|
---|
339 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
340 | ${common_objpfx}posix/globtest "$testdir" "*-/*" |
|
---|
341 | sort > $testout
|
---|
342 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
343 | GLOB_NOMATCH
|
---|
344 | EOF
|
---|
345 | if test $failed -ne 0; then
|
---|
346 | echo "Wildcard4 subdir test failed" >> $logfile
|
---|
347 | result=1
|
---|
348 | fi
|
---|
349 |
|
---|
350 | failed=0
|
---|
351 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
352 | ${common_objpfx}posix/globtest "$testdir" "*-" |
|
---|
353 | sort > $testout
|
---|
354 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
355 | GLOB_NOMATCH
|
---|
356 | EOF
|
---|
357 | if test $failed -ne 0; then
|
---|
358 | echo "Wildcard5 subdir test failed" >> $logfile
|
---|
359 | result=1
|
---|
360 | fi
|
---|
361 |
|
---|
362 | # Test subdirs with ?
|
---|
363 | failed=0
|
---|
364 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
365 | ${common_objpfx}posix/globtest "$testdir" "*/*?_?" |
|
---|
366 | sort > $testout
|
---|
367 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
368 | `dir1/file1_1'
|
---|
369 | `dir1/file1_2'
|
---|
370 | `link1/file1_1'
|
---|
371 | `link1/file1_2'
|
---|
372 | EOF
|
---|
373 | if test $failed -ne 0; then
|
---|
374 | echo "Wildcard6 subdir test failed" >> $logfile
|
---|
375 | result=1
|
---|
376 | fi
|
---|
377 |
|
---|
378 | # Test subdirs with [ .. ]
|
---|
379 | failed=0
|
---|
380 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
381 | ${common_objpfx}posix/globtest "$testdir" "*/file1_[12]" |
|
---|
382 | sort > $testout
|
---|
383 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
384 | `dir1/file1_1'
|
---|
385 | `dir1/file1_2'
|
---|
386 | `link1/file1_1'
|
---|
387 | `link1/file1_2'
|
---|
388 | EOF
|
---|
389 | if test $failed -ne 0; then
|
---|
390 | echo "Brackets test failed" >> $logfile
|
---|
391 | result=1
|
---|
392 | fi
|
---|
393 |
|
---|
394 | # Test ']' inside bracket expression
|
---|
395 | failed=0
|
---|
396 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
397 | ${common_objpfx}posix/globtest "$testdir" "dir1/file1_[]12]" |
|
---|
398 | sort > $testout
|
---|
399 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
400 | `dir1/file1_1'
|
---|
401 | `dir1/file1_2'
|
---|
402 | EOF
|
---|
403 | if test $failed -ne 0; then
|
---|
404 | echo "Brackets2 test failed" >> $logfile
|
---|
405 | result=1
|
---|
406 | fi
|
---|
407 |
|
---|
408 | # Test tilde expansion
|
---|
409 | failed=0
|
---|
410 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
411 | ${common_objpfx}posix/globtest -q -t "$testdir" "~" |
|
---|
412 | sort >$testout
|
---|
413 | echo ~ | $CMP - $testout >> $logfile || failed=1
|
---|
414 | if test $failed -ne 0; then
|
---|
415 | if test -d ~; then
|
---|
416 | echo "Tilde test failed" >> $logfile
|
---|
417 | result=1
|
---|
418 | else
|
---|
419 | echo "Tilde test could not be run" >> $logfile
|
---|
420 | fi
|
---|
421 | fi
|
---|
422 |
|
---|
423 | # Test tilde expansion with trailing slash
|
---|
424 | failed=0
|
---|
425 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
426 | ${common_objpfx}posix/globtest -q -t "$testdir" "~/" |
|
---|
427 | sort > $testout
|
---|
428 | # Some shell incorrectly(?) convert ~/ into // if ~ expands to /.
|
---|
429 | if test ~/ = //; then
|
---|
430 | echo / | $CMP - $testout >> $logfile || failed=1
|
---|
431 | else
|
---|
432 | echo ~/ | $CMP - $testout >> $logfile || failed=1
|
---|
433 | fi
|
---|
434 | if test $failed -ne 0; then
|
---|
435 | if test -d ~/; then
|
---|
436 | echo "Tilde2 test failed" >> $logfile
|
---|
437 | result=1
|
---|
438 | else
|
---|
439 | echo "Tilde2 test could not be run" >> $logfile
|
---|
440 | fi
|
---|
441 | fi
|
---|
442 |
|
---|
443 | # Test tilde expansion with username
|
---|
444 | failed=0
|
---|
445 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
446 | ${common_objpfx}posix/globtest -q -t "$testdir" "~"$USER |
|
---|
447 | sort > $testout
|
---|
448 | eval echo ~$USER | $CMP - $testout >> $logfile || failed=1
|
---|
449 | if test $failed -ne 0; then
|
---|
450 | if eval test -d ~$USER; then
|
---|
451 | echo "Tilde3 test failed" >> $logfile
|
---|
452 | result=1
|
---|
453 | else
|
---|
454 | echo "Tilde3 test could not be run" >> $logfile
|
---|
455 | fi
|
---|
456 | fi
|
---|
457 |
|
---|
458 | # Tilde expansion shouldn't match a file
|
---|
459 | failed=0
|
---|
460 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
461 | ${common_objpfx}posix/globtest -T "$testdir" "~file4" |
|
---|
462 | sort > $testout
|
---|
463 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
464 | GLOB_NOMATCH
|
---|
465 | EOF
|
---|
466 | if test $failed -ne 0; then
|
---|
467 | echo "Tilde4 test failed" >> $logfile
|
---|
468 | result=1
|
---|
469 | fi
|
---|
470 |
|
---|
471 | # Matching \** should only find *file6
|
---|
472 | failed=0
|
---|
473 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
474 | ${common_objpfx}posix/globtest "$testdir" "\**" |
|
---|
475 | sort > $testout
|
---|
476 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
477 | `*file6'
|
---|
478 | EOF
|
---|
479 | if test $failed -ne 0; then
|
---|
480 | echo "Star test failed" >> $logfile
|
---|
481 | result=1
|
---|
482 | fi
|
---|
483 |
|
---|
484 | # ... unless NOESCAPE is used, in which case it should entries with a
|
---|
485 | # leading \.
|
---|
486 | failed=0
|
---|
487 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
488 | ${common_objpfx}posix/globtest -e "$testdir" "\**" |
|
---|
489 | sort > $testout
|
---|
490 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
491 | `\file9b\'
|
---|
492 | `\{file8\}'
|
---|
493 | `\{file9\,file9b\}'
|
---|
494 | EOF
|
---|
495 | if test $failed -ne 0; then
|
---|
496 | echo "Star2 test failed" >> $logfile
|
---|
497 | result=1
|
---|
498 | fi
|
---|
499 |
|
---|
500 | # Matching \*file6 should find *file6
|
---|
501 | failed=0
|
---|
502 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
503 | ${common_objpfx}posix/globtest "$testdir" "\*file6" |
|
---|
504 | sort > $testout
|
---|
505 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
506 | `*file6'
|
---|
507 | EOF
|
---|
508 | if test $failed -ne 0; then
|
---|
509 | echo "Star3 test failed" >> $logfile
|
---|
510 | result=1
|
---|
511 | fi
|
---|
512 |
|
---|
513 | # GLOB_BRACE alone
|
---|
514 | failed=0
|
---|
515 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
516 | ${common_objpfx}posix/globtest -b "$testdir" '\{file7\,\}' |
|
---|
517 | sort > $testout
|
---|
518 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
519 | `{file7,}'
|
---|
520 | EOF
|
---|
521 | if test $failed -ne 0; then
|
---|
522 | echo "Brace4 test failed" >> $logfile
|
---|
523 | result=1
|
---|
524 | fi
|
---|
525 |
|
---|
526 | # GLOB_BRACE and GLOB_NOESCAPE
|
---|
527 | failed=0
|
---|
528 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
529 | ${common_objpfx}posix/globtest -b -e "$testdir" '\{file9\,file9b\}' |
|
---|
530 | sort > $testout
|
---|
531 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
532 | `\file9b\'
|
---|
533 | EOF
|
---|
534 | if test $failed -ne 0; then
|
---|
535 | echo "Brace5 test failed" >> $logfile
|
---|
536 | result=1
|
---|
537 | fi
|
---|
538 |
|
---|
539 | # Escaped comma
|
---|
540 | failed=0
|
---|
541 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
542 | ${common_objpfx}posix/globtest -b "$testdir" '{filea\,}' |
|
---|
543 | sort > $testout
|
---|
544 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
545 | `filea,'
|
---|
546 | EOF
|
---|
547 | if test $failed -ne 0; then
|
---|
548 | echo "Brace6 test failed" >> $logfile
|
---|
549 | result=1
|
---|
550 | fi
|
---|
551 |
|
---|
552 | # Escaped closing brace
|
---|
553 | failed=0
|
---|
554 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
555 | ${common_objpfx}posix/globtest -b "$testdir" '{fileb\}c}' |
|
---|
556 | sort > $testout
|
---|
557 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
558 | `fileb}c'
|
---|
559 | EOF
|
---|
560 | if test $failed -ne 0; then
|
---|
561 | echo "Brace7 test failed" >> $logfile
|
---|
562 | result=1
|
---|
563 | fi
|
---|
564 |
|
---|
565 | # Try a recursive failed search
|
---|
566 | failed=0
|
---|
567 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
568 | ${common_objpfx}posix/globtest -e "$testdir" "a*/*" |
|
---|
569 | sort > $testout
|
---|
570 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
571 | GLOB_NOMATCH
|
---|
572 | EOF
|
---|
573 | if test $failed -ne 0; then
|
---|
574 | echo "Star4 test failed" >> $logfile
|
---|
575 | result=1
|
---|
576 | fi
|
---|
577 |
|
---|
578 | # ... with GLOB_ERR
|
---|
579 | failed=0
|
---|
580 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
581 | ${common_objpfx}posix/globtest -E "$testdir" "a*/*" |
|
---|
582 | sort > $testout
|
---|
583 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
584 | GLOB_NOMATCH
|
---|
585 | EOF
|
---|
586 | if test $failed -ne 0; then
|
---|
587 | echo "Star5 test failed" >> $logfile
|
---|
588 | result=1
|
---|
589 | fi
|
---|
590 |
|
---|
591 | # Try a recursive search in unreadable directory
|
---|
592 | failed=0
|
---|
593 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
594 | ${common_objpfx}posix/globtest "$testdir" "noread/*" |
|
---|
595 | sort > $testout
|
---|
596 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
597 | GLOB_NOMATCH
|
---|
598 | EOF
|
---|
599 | if test $failed -ne 0; then
|
---|
600 | echo "Star6 test failed" >> $logfile
|
---|
601 | result=1
|
---|
602 | fi
|
---|
603 |
|
---|
604 | failed=0
|
---|
605 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
606 | ${common_objpfx}posix/globtest "$testdir" "noread*/*" |
|
---|
607 | sort > $testout
|
---|
608 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
609 | GLOB_NOMATCH
|
---|
610 | EOF
|
---|
611 | if test $failed -ne 0; then
|
---|
612 | echo "Star6 test failed" >> $logfile
|
---|
613 | result=1
|
---|
614 | fi
|
---|
615 |
|
---|
616 | # The following tests will fail if run as root.
|
---|
617 | user=`id -un 2> /dev/null`
|
---|
618 | if test -z "$user"; then
|
---|
619 | uid="$USER"
|
---|
620 | fi
|
---|
621 | if test "$user" != root; then
|
---|
622 | # ... with GLOB_ERR
|
---|
623 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
624 | ${common_objpfx}posix/globtest -E "$testdir" "noread/*" |
|
---|
625 | sort > $testout
|
---|
626 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
627 | GLOB_ABORTED
|
---|
628 | EOF
|
---|
629 |
|
---|
630 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
631 | ${common_objpfx}posix/globtest -E "$testdir" "noread*/*" |
|
---|
632 | sort > $testout
|
---|
633 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
634 | GLOB_ABORTED
|
---|
635 | EOF
|
---|
636 | if test $failed -ne 0; then
|
---|
637 | echo "GLOB_ERR test failed" >> $logfile
|
---|
638 | result=1
|
---|
639 | fi
|
---|
640 | fi # not run as root
|
---|
641 |
|
---|
642 | # Try multiple patterns (GLOB_APPEND)
|
---|
643 | failed=0
|
---|
644 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
645 | ${common_objpfx}posix/globtest "$testdir" "file1" "*/*" |
|
---|
646 | sort > $testout
|
---|
647 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
648 | `dir1/file1_1'
|
---|
649 | `dir1/file1_2'
|
---|
650 | `file1'
|
---|
651 | `link1/file1_1'
|
---|
652 | `link1/file1_2'
|
---|
653 | EOF
|
---|
654 | if test $failed -ne 0; then
|
---|
655 | echo "GLOB_APPEND test failed" >> $logfile
|
---|
656 | result=1
|
---|
657 | fi
|
---|
658 |
|
---|
659 | # Try multiple patterns (GLOB_APPEND) with offset (GLOB_DOOFFS)
|
---|
660 | failed=0
|
---|
661 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
662 | ${common_objpfx}posix/globtest -o "$testdir" "file1" "*/*" |
|
---|
663 | sort > $testout
|
---|
664 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
665 | `abc'
|
---|
666 | `dir1/file1_1'
|
---|
667 | `dir1/file1_2'
|
---|
668 | `file1'
|
---|
669 | `link1/file1_1'
|
---|
670 | `link1/file1_2'
|
---|
671 | EOF
|
---|
672 | if test $failed -ne 0; then
|
---|
673 | echo "GLOB_APPEND2 test failed" >> $logfile
|
---|
674 | result=1
|
---|
675 | fi
|
---|
676 |
|
---|
677 | # Test NOCHECK with non-existing file in subdir.
|
---|
678 | failed=0
|
---|
679 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
680 | ${common_objpfx}posix/globtest -c "$testdir" "*/blahblah" |
|
---|
681 | sort > $testout
|
---|
682 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
683 | `*/blahblah'
|
---|
684 | EOF
|
---|
685 | if test $failed -ne 0; then
|
---|
686 | echo "No check2 test failed" >> $logfile
|
---|
687 | result=1
|
---|
688 | fi
|
---|
689 |
|
---|
690 | # Test [[:punct:]] not matching leading period.
|
---|
691 | failed=0
|
---|
692 | ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
|
---|
693 | ${common_objpfx}posix/globtest -c "$testdir" "[[:punct:]]*" |
|
---|
694 | sort > $testout
|
---|
695 | cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
|
---|
696 | `*file6'
|
---|
697 | `-file3'
|
---|
698 | `\file9b\'
|
---|
699 | `\{file8\}'
|
---|
700 | `\{file9\,file9b\}'
|
---|
701 | `{file7,}'
|
---|
702 | `~file4'
|
---|
703 | EOF
|
---|
704 | if test $failed -ne 0; then
|
---|
705 | echo "Punct test failed" >> $logfile
|
---|
706 | result=1
|
---|
707 | fi
|
---|
708 |
|
---|
709 | if test $result -eq 0; then
|
---|
710 | chmod 777 $testdir/noread
|
---|
711 | rm -fr $testdir $testout
|
---|
712 | echo "All OK." > $logfile
|
---|
713 | fi
|
---|
714 |
|
---|
715 | exit $result
|
---|
716 |
|
---|
717 | # Preserve executable bits for this shell script.
|
---|
718 | Local Variables:
|
---|
719 | eval:(defun frobme () (set-file-modes buffer-file-name file-mode))
|
---|
720 | eval:(make-local-variable 'file-mode)
|
---|
721 | eval:(setq file-mode (file-modes (buffer-file-name)))
|
---|
722 | eval:(make-local-variable 'after-save-hook)
|
---|
723 | eval:(add-hook 'after-save-hook 'frobme)
|
---|
724 | End:
|
---|