/[pcre]/code/trunk/RunTest
ViewVC logotype

Contents of /code/trunk/RunTest

Parent Directory Parent Directory | Revision Log Revision Log


Revision 912 - (show annotations)
Sun Feb 12 16:53:39 2012 UTC (7 years, 6 months ago) by ph10
File size: 23149 byte(s)
Remove bashism from the RunTest script.
1 #! /bin/sh
2
3 # Run the PCRE tests using the pcretest program. The appropriate tests are
4 # selected, depending on which build-time options were used.
5
6 # All tests are now run both with and without -s, to ensure that everything is
7 # tested with and without studying. However, there are some tests that produce
8 # different output after studying, typically when we are tracing the actual
9 # matching process (for example, using auto-callouts). In these few cases, the
10 # tests are duplicated in the files, one with /S to force studying always, and
11 # one with /SS to force *not* studying always. The use of -s doesn't then make
12 # any difference to their output. There is also one test which compiles invalid
13 # UTF-8 with the UTF-8 check turned off; for this, studying must also be
14 # disabled with /SS.
15
16 # When JIT support is available, all the tests are also run with -s+ to test
17 # (again, almost) everything with studying and the JIT option. There are also
18 # two tests for JIT-specific features, one to be run when JIT support is
19 # available, and one when it is not.
20
21 # Whichever of the 8-bit and 16-bit libraries exist are tested. It is also
22 # possible to select which to test by the arguments -8 or -16.
23
24 # Other arguments for this script can be individual test numbers, or the word
25 # "valgrind", or "sim" followed by an argument to run cross-compiled
26 # executables under a simulator, for example:
27 #
28 # RunTest 3 sim "qemu-arm -s 8388608"
29
30 valgrind=
31 sim=
32 arg8=
33 arg16=
34
35 # This is in case the caller has set aliases (as I do - PH)
36 unset cp ls mv rm
37
38 # Select which tests to run; for those that are explicitly requested, check
39 # that the necessary optional facilities are available.
40
41 do1=no
42 do2=no
43 do3=no
44 do4=no
45 do5=no
46 do6=no
47 do7=no
48 do8=no
49 do9=no
50 do10=no
51 do11=no
52 do12=no
53 do13=no
54 do14=no
55 do15=no
56 do16=no
57 do17=no
58 do18=no
59 do19=no
60 do20=no
61 do21=no
62 do22=no
63
64 while [ $# -gt 0 ] ; do
65 case $1 in
66 1) do1=yes;;
67 2) do2=yes;;
68 3) do3=yes;;
69 4) do4=yes;;
70 5) do5=yes;;
71 6) do6=yes;;
72 7) do7=yes;;
73 8) do8=yes;;
74 9) do9=yes;;
75 10) do10=yes;;
76 11) do11=yes;;
77 12) do12=yes;;
78 13) do13=yes;;
79 14) do14=yes;;
80 15) do15=yes;;
81 16) do16=yes;;
82 17) do17=yes;;
83 18) do18=yes;;
84 19) do19=yes;;
85 20) do20=yes;;
86 21) do21=yes;;
87 22) do22=yes;;
88 -8) arg8=yes;;
89 -16) arg16=yes;;
90 valgrind) valgrind="valgrind -q --smc-check=all";;
91 sim) shift; sim=$1;;
92 *) echo "Unknown test number $1"; exit 1;;
93 esac
94 shift
95 done
96
97 # Set up a suitable "diff" command for comparison. Some systems
98 # have a diff that lacks a -u option. Try to deal with this.
99
100 if diff -u /dev/null /dev/null; then cf="diff -u"; else cf="diff"; fi
101
102 # Find the test data
103
104 if [ -n "$srcdir" -a -d "$srcdir" ] ; then
105 testdata="$srcdir/testdata"
106 elif [ -d "./testdata" ] ; then
107 testdata=./testdata
108 elif [ -d "../testdata" ] ; then
109 testdata=../testdata
110 else
111 echo "Cannot find the testdata directory"
112 exit 1
113 fi
114
115 # Find which optional facilities are available. In some Windows environments
116 # the output of pcretest -C has CRLF at the end of each line, but the shell
117 # strips only linefeeds from the output of a `backquoted` command. Hence the
118 # alternative patterns.
119
120 $sim ./pcretest -C linksize >/dev/null
121 link_size=$?
122 if [ $link_size -lt 2 ] ; then
123 echo "Failed to find internal link size"
124 exit 1
125 fi
126 if [ $link_size -gt 4 ] ; then
127 echo "Failed to find internal link size"
128 exit 1
129 fi
130
131 # Both 8-bit and 16-bit character strings may be supported, but only one
132 # need be.
133
134 $sim ./pcretest -C pcre8 >/dev/null
135 support8=$?
136 $sim ./pcretest -C pcre16 >/dev/null
137 support16=$?
138 if [ `expr $support8 + $support16` -eq 2 ] ; then
139 test8=
140 test16=-16
141 if [ "$arg8" = yes -a "$arg16" != yes ] ; then
142 test16=skip
143 fi
144 if [ "$arg16" = yes -a "$arg8" != yes ] ; then
145 test8=skip
146 fi
147 else
148 if [ $support8 -ne 0 ] ; then
149 if [ "$arg16" = yes ] ; then
150 echo "Cannot run 16-bit library tests: 16-bit library not compiled"
151 exit 1
152 fi
153 test8=
154 test16=skip
155 else
156 if [ "$arg8" = yes ] ; then
157 echo "Cannot run 8-bit library tests: 8-bit library not compiled"
158 exit 1
159 fi
160 test8=skip
161 test16=-16
162 fi
163 fi
164
165 # UTF support always applies to both bit sizes if both are supported; we can't
166 # have UTF-8 support without UTF-16 support (for example).
167
168 $sim ./pcretest -C utf >/dev/null
169 utf=$?
170
171 $sim ./pcretest -C ucp >/dev/null
172 ucp=$?
173
174 jitopt=
175 $sim ./pcretest -C jit >/dev/null
176 jit=$?
177 if [ $jit -ne 0 ] ; then
178 jitopt=-s+
179 fi
180
181 if [ $utf -eq 0 ] ; then
182 if [ $do4 = yes ] ; then
183 echo "Can't run test 4 because UTF support is not configured"
184 exit 1
185 fi
186 if [ $do5 = yes ] ; then
187 echo "Can't run test 5 because UTF support is not configured"
188 exit 1
189 fi
190 if [ $do9 = yes ] ; then
191 echo "Can't run test 8 because UTF support is not configured"
192 exit 1
193 fi
194 if [ $do15 = yes ] ; then
195 echo "Can't run test 15 because UTF support is not configured"
196 exit 1
197 fi
198 if [ $do18 = yes ] ; then
199 echo "Can't run test 18 because UTF support is not configured"
200 fi
201 if [ $do22 = yes ] ; then
202 echo "Can't run test 22 because UTF support is not configured"
203 fi
204 fi
205
206 if [ $ucp -eq 0 ] ; then
207 if [ $do6 = yes ] ; then
208 echo "Can't run test 6 because Unicode property support is not configured"
209 exit 1
210 fi
211 if [ $do7 = yes ] ; then
212 echo "Can't run test 7 because Unicode property support is not configured"
213 exit 1
214 fi
215 if [ $do10 = yes ] ; then
216 echo "Can't run test 10 because Unicode property support is not configured"
217 exit 1
218 fi
219 if [ $do16 = yes ] ; then
220 echo "Can't run test 16 because Unicode property support is not configured"
221 exit 1
222 fi
223 if [ $do19 = yes ] ; then
224 echo "Can't run test 19 because Unicode property support is not configured"
225 exit 1
226 fi
227 fi
228
229 if [ $link_size -ne 2 ] ; then
230 if [ $do11 = yes ] ; then
231 echo "Can't run test 11 because the link size ($link_size) is not 2"
232 exit 1
233 fi
234 fi
235
236 if [ $jit -eq 0 ] ; then
237 if [ $do12 = "yes" ] ; then
238 echo "Can't run test 12 because JIT support is not configured"
239 exit 1
240 fi
241 else
242 if [ $do13 = "yes" ] ; then
243 echo "Can't run test 13 because JIT support is configured"
244 exit 1
245 fi
246 fi
247
248 # If no specific tests were requested, select all. Those that are not
249 # relevant will be skipped.
250
251 if [ $do1 = no -a $do2 = no -a $do3 = no -a $do4 = no -a \
252 $do5 = no -a $do6 = no -a $do7 = no -a $do8 = no -a \
253 $do9 = no -a $do10 = no -a $do11 = no -a $do12 = no -a \
254 $do13 = no -a $do14 = no -a $do15 = no -a $do16 = no -a \
255 $do17 = no -a $do18 = no -a $do19 = no -a $do20 = no -a \
256 $do21 = no -a $do22 = no ] ; then
257 do1=yes
258 do2=yes
259 do3=yes
260 do4=yes
261 do5=yes
262 do6=yes
263 do7=yes
264 do8=yes
265 do9=yes
266 do10=yes
267 do11=yes
268 do12=yes
269 do13=yes
270 do14=yes
271 do15=yes
272 do16=yes
273 do17=yes
274 do18=yes
275 do19=yes
276 do20=yes
277 do21=yes
278 do22=yes
279 fi
280
281 # Show which release and which test data
282
283 echo ""
284 echo PCRE C library tests using test data from $testdata
285 $sim ./pcretest /dev/null
286
287 for bmode in "$test8" "$test16"; do
288 case "$bmode" in
289 skip) continue;;
290 -16) if [ "$test8" != "skip" ] ; then echo ""; fi
291 bits=16; echo "---- Testing 16-bit library ----"; echo "";;
292 *) bits=8; echo "---- Testing 8-bit library ----"; echo "";;
293 esac
294
295 # Primary test, compatible with JIT and all versions of Perl >= 5.8
296
297 if [ $do1 = yes ] ; then
298 echo "Test 1: main functionality (Compatible with Perl >= 5.10)"
299 for opt in "" "-s" $jitopt; do
300 $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput1 testtry
301 if [ $? = 0 ] ; then
302 $cf $testdata/testoutput1 testtry
303 if [ $? != 0 ] ; then exit 1; fi
304 else exit 1
305 fi
306 if [ "$opt" = "-s" ] ; then echo " OK with study"
307 elif [ "$opt" = "-s+" ] ; then echo " OK with JIT study"
308 else echo " OK"
309 fi
310 done
311 fi
312
313 # PCRE tests that are not JIT or Perl-compatible: API, errors, internals
314
315 if [ $do2 = yes ] ; then
316 echo "Test 2: API, errors, internals, and non-Perl stuff (not UTF-$bits)"
317 for opt in "" "-s" $jitopt; do
318 $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput2 testtry
319 if [ $? = 0 ] ; then
320 $cf $testdata/testoutput2 testtry
321 if [ $? != 0 ] ; then exit 1; fi
322 else
323 echo " "
324 echo "** Test 2 requires a lot of stack. If it has crashed with a"
325 echo "** segmentation fault, it may be that you do not have enough"
326 echo "** stack available by default. Please see the 'pcrestack' man"
327 echo "** page for a discussion of PCRE's stack usage."
328 echo " "
329 exit 1
330 fi
331 if [ "$opt" = "-s" ] ; then echo " OK with study"
332 elif [ "$opt" = "-s+" ] ; then echo " OK with JIT study"
333 else echo " OK"
334 fi
335 done
336 fi
337
338 # Locale-specific tests, provided that either the "fr_FR" or the "french"
339 # locale is available. The former is the Unix-like standard; the latter is
340 # for Windows. Another possibility is "fr", which needs to be run against
341 # the Windows-specific input and output files.
342
343 if [ $do3 = yes ] ; then
344 locale -a | grep '^fr_FR$' >/dev/null
345 if [ $? -eq 0 ] ; then
346 locale=fr_FR
347 infile=$testdata/testinput3
348 outfile=$testdata/testoutput3
349 else
350 infile=test3input
351 outfile=test3output
352 locale -a | grep '^french$' >/dev/null
353 if [ $? -eq 0 ] ; then
354 locale=french
355 sed 's/fr_FR/french/' $testdata/testinput3 >test3input
356 sed 's/fr_FR/french/' $testdata/testoutput3 >test3output
357 else
358 locale -a | grep '^fr$' >/dev/null
359 if [ $? -eq 0 ] ; then
360 locale=fr
361 sed 's/fr_FR/fr/' $testdata/wintestinput3 >test3input
362 sed 's/fr_FR/fr/' $testdata/wintestoutput3 >test3output
363 else
364 locale=
365 fi
366 fi
367 fi
368
369 if [ "$locale" != "" ] ; then
370 echo "Test 3: locale-specific features (using '$locale' locale)"
371 for opt in "" "-s" $jitopt; do
372 $sim $valgrind ./pcretest -q $bmode $opt $infile testtry
373 if [ $? = 0 ] ; then
374 $cf $outfile testtry
375 if [ $? != 0 ] ; then
376 echo " "
377 echo "Locale test did not run entirely successfully."
378 echo "This usually means that there is a problem with the locale"
379 echo "settings rather than a bug in PCRE."
380 break;
381 else
382 if [ "$opt" = "-s" ] ; then echo " OK with study"
383 elif [ "$opt" = "-s+" ] ; then echo " OK with JIT study"
384 else echo " OK"
385 fi
386 fi
387 else exit 1
388 fi
389 done
390 else
391 echo "Cannot test locale-specific features - none of the 'fr_FR', 'fr' or"
392 echo "'french' locales exist, or the \"locale\" command is not available"
393 echo "to check for them."
394 echo " "
395 fi
396 fi
397
398 # Additional tests for UTF support
399
400 if [ $do4 = yes ] ; then
401 echo "Test 4: UTF-$bits support (Compatible with Perl >= 5.10)"
402 if [ $utf -eq 0 ] ; then
403 echo " Skipped because UTF-$bits support is not available"
404 else
405 for opt in "" "-s" $jitopt; do
406 $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput4 testtry
407 if [ $? = 0 ] ; then
408 $cf $testdata/testoutput4 testtry
409 if [ $? != 0 ] ; then exit 1; fi
410 else exit 1
411 fi
412 if [ "$opt" = "-s" ] ; then echo " OK with study"
413 elif [ "$opt" = "-s+" ] ; then echo " OK with JIT study"
414 else echo " OK"
415 fi
416 done
417 fi
418 fi
419
420 if [ $do5 = yes ] ; then
421 echo "Test 5: API, internals, and non-Perl stuff for UTF-$bits support"
422 if [ $utf -eq 0 ] ; then
423 echo " Skipped because UTF-$bits support is not available"
424 else
425 for opt in "" "-s" $jitopt; do
426 $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput5 testtry
427 if [ $? = 0 ] ; then
428 $cf $testdata/testoutput5 testtry
429 if [ $? != 0 ] ; then exit 1; fi
430 else exit 1
431 fi
432 if [ "$opt" = "-s" ] ; then echo " OK with study"
433 elif [ "$opt" = "-s+" ] ; then echo " OK with JIT study"
434 else echo " OK"
435 fi
436 done
437 fi
438 fi
439
440 if [ $do6 = yes ] ; then
441 echo "Test 6: Unicode property support (Compatible with Perl >= 5.10)"
442 if [ $utf -eq 0 -o $ucp -eq 0 ] ; then
443 echo " Skipped because Unicode property support is not available"
444 else
445 for opt in "" "-s" $jitopt; do
446 $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput6 testtry
447 if [ $? = 0 ] ; then
448 $cf $testdata/testoutput6 testtry
449 if [ $? != 0 ] ; then exit 1; fi
450 else exit 1
451 fi
452 if [ "$opt" = "-s" ] ; then echo " OK with study"
453 elif [ "$opt" = "-s+" ] ; then echo " OK with JIT study"
454 else echo " OK"
455 fi
456 done
457 fi
458 fi
459
460 # Test non-Perl-compatible Unicode property support
461
462 if [ $do7 = yes ] ; then
463 echo "Test 7: API, internals, and non-Perl stuff for Unicode property support"
464 if [ $utf -eq 0 -o $ucp -eq 0 ] ; then
465 echo " Skipped because Unicode property support is not available"
466 else
467 for opt in "" "-s" $jitopt; do
468 $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput7 testtry
469 if [ $? = 0 ] ; then
470 $cf $testdata/testoutput7 testtry
471 if [ $? != 0 ] ; then exit 1; fi
472 else exit 1
473 fi
474 if [ "$opt" = "-s" ] ; then echo " OK with study"
475 elif [ "$opt" = "-s+" ] ; then echo " OK with JIT study"
476 else echo " OK"
477 fi
478 done
479 fi
480 fi
481
482 # Tests for DFA matching support
483
484 if [ $do8 = yes ] ; then
485 echo "Test 8: DFA matching main functionality"
486 for opt in "" "-s"; do
487 $sim $valgrind ./pcretest -q $bmode $opt -dfa $testdata/testinput8 testtry
488 if [ $? = 0 ] ; then
489 $cf $testdata/testoutput8 testtry
490 if [ $? != 0 ] ; then exit 1; fi
491 else exit 1
492 fi
493 if [ "$opt" = "-s" ] ; then echo " OK with study" ; else echo " OK"; fi
494 done
495 fi
496
497 if [ $do9 = yes ] ; then
498 echo "Test 9: DFA matching with UTF-$bits"
499 if [ $utf -eq 0 ] ; then
500 echo " Skipped because UTF-$bits support is not available"
501 else
502 for opt in "" "-s"; do
503 $sim $valgrind ./pcretest -q $bmode $opt -dfa $testdata/testinput9 testtry
504 if [ $? = 0 ] ; then
505 $cf $testdata/testoutput9 testtry
506 if [ $? != 0 ] ; then exit 1; fi
507 else exit 1
508 fi
509 if [ "$opt" = "-s" ] ; then echo " OK with study" ; else echo " OK"; fi
510 done
511 fi
512 fi
513
514 if [ $do10 = yes ] ; then
515 echo "Test 10: DFA matching with Unicode properties"
516 if [ $utf -eq 0 -o $ucp -eq 0 ] ; then
517 echo " Skipped because Unicode property support is not available"
518 else
519 for opt in "" "-s"; do
520 $sim $valgrind ./pcretest -q $bmode $opt -dfa $testdata/testinput10 testtry
521 if [ $? = 0 ] ; then
522 $cf $testdata/testoutput10 testtry
523 if [ $? != 0 ] ; then exit 1; fi
524 else exit 1
525 fi
526 if [ "$opt" = "-s" ] ; then echo " OK with study" ; else echo " OK"; fi
527 done
528 fi
529 fi
530
531 # Test of internal offsets and code sizes. This test is run only when there
532 # is Unicode property support and the link size is 2. The actual tests are
533 # mostly the same as in some of the above, but in this test we inspect some
534 # offsets and sizes that require a known link size. This is a doublecheck for
535 # the maintainer, just in case something changes unexpectely. The output from
536 # this test is not the same in 8-bit and 16-bit modes.
537
538 if [ $do11 = yes ] ; then
539 echo "Test 11: Internal offsets and code size tests"
540 if [ $link_size -ne 2 ] ; then
541 echo " Skipped because link size is not 2"
542 elif [ $ucp -eq 0 ] ; then
543 echo " Skipped because Unicode property support is not available"
544 else
545 for opt in "" "-s"; do
546 $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput11 testtry
547 if [ $? = 0 ] ; then
548 $cf $testdata/testoutput11-$bits testtry
549 if [ $? != 0 ] ; then exit 1; fi
550 else exit 1
551 fi
552 if [ "$opt" = "-s" ] ; then echo " OK with study" ; else echo " OK"; fi
553 done
554 fi
555 fi
556
557 # Test JIT-specific features when JIT is available
558
559 if [ $do12 = yes ] ; then
560 echo "Test 12: JIT-specific features (JIT available)"
561 if [ $jit -eq 0 ] ; then
562 echo " Skipped because JIT is not available or not usable"
563 else
564 $sim $valgrind ./pcretest -q $bmode $testdata/testinput12 testtry
565 if [ $? = 0 ] ; then
566 $cf $testdata/testoutput12 testtry
567 if [ $? != 0 ] ; then exit 1; fi
568 else exit 1
569 fi
570 echo " OK"
571 fi
572 fi
573
574 # Test JIT-specific features when JIT is not available
575
576 if [ $do13 = yes ] ; then
577 echo "Test 13: JIT-specific features (JIT not available)"
578 if [ $jit -ne 0 ] ; then
579 echo " Skipped because JIT is available"
580 else
581 $sim $valgrind ./pcretest -q $bmode $testdata/testinput13 testtry
582 if [ $? = 0 ] ; then
583 $cf $testdata/testoutput13 testtry
584 if [ $? != 0 ] ; then exit 1; fi
585 else exit 1
586 fi
587 echo " OK"
588 fi
589 fi
590
591 # Tests for 8-bit-specific features
592
593 if [ "$do14" = yes ] ; then
594 echo "Test 14: specials for the basic 8-bit library"
595 if [ "$bits" = "16" ] ; then
596 echo " Skipped when running 16-bit tests"
597 else
598 cp -f $testdata/saved16 testsaved16
599 for opt in "" "-s" $jitopt; do
600 $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput14 testtry
601 if [ $? = 0 ] ; then
602 $cf $testdata/testoutput14 testtry
603 if [ $? != 0 ] ; then exit 1; fi
604 else exit 1
605 fi
606 if [ "$opt" = "-s" ] ; then echo " OK with study"
607 elif [ "$opt" = "-s+" ] ; then echo " OK with JIT study"
608 else echo " OK"
609 fi
610 done
611 fi
612 fi
613
614 # Tests for 8-bit-specific features (needs UTF-8 support)
615
616 if [ "$do15" = yes ] ; then
617 echo "Test 15: specials for the 8-bit library with UTF-8 support"
618 if [ "$bits" = "16" ] ; then
619 echo " Skipped when running 16-bit tests"
620 elif [ $utf -eq 0 ] ; then
621 echo " Skipped because UTF-$bits support is not available"
622 else
623 for opt in "" "-s" $jitopt; do
624 $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput15 testtry
625 if [ $? = 0 ] ; then
626 $cf $testdata/testoutput15 testtry
627 if [ $? != 0 ] ; then exit 1; fi
628 else exit 1
629 fi
630 if [ "$opt" = "-s" ] ; then echo " OK with study"
631 elif [ "$opt" = "-s+" ] ; then echo " OK with JIT study"
632 else echo " OK"
633 fi
634 done
635 fi
636 fi
637
638 # Tests for 8-bit-specific features (Unicode property support)
639
640 if [ $do16 = yes ] ; then
641 echo "Test 16: specials for the 8-bit library with Unicode propery support"
642 if [ "$bits" = "16" ] ; then
643 echo " Skipped when running 16-bit tests"
644 elif [ $ucp -eq 0 ] ; then
645 echo " Skipped because Unicode property support is not available"
646 else
647 for opt in "" "-s" $jitopt; do
648 $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput16 testtry
649 if [ $? = 0 ] ; then
650 $cf $testdata/testoutput16 testtry
651 if [ $? != 0 ] ; then exit 1; fi
652 else exit 1
653 fi
654 if [ "$opt" = "-s" ] ; then echo " OK with study"
655 elif [ "$opt" = "-s+" ] ; then echo " OK with JIT study"
656 else echo " OK"
657 fi
658 done
659 fi
660 fi
661
662 # Tests for 16-bit-specific features
663
664 if [ $do17 = yes ] ; then
665 echo "Test 17: specials for the basic 16-bit library"
666 if [ "$bits" = "8" ] ; then
667 echo " Skipped when running 8-bit tests"
668 else
669 for opt in "" "-s" $jitopt; do
670 $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput17 testtry
671 if [ $? = 0 ] ; then
672 $cf $testdata/testoutput17 testtry
673 if [ $? != 0 ] ; then exit 1; fi
674 else exit 1
675 fi
676 if [ "$opt" = "-s" ] ; then echo " OK with study"
677 elif [ "$opt" = "-s+" ] ; then echo " OK with JIT study"
678 else echo " OK"
679 fi
680 done
681 fi
682 fi
683
684 # Tests for 16-bit-specific features (UTF-16 support)
685
686 if [ $do18 = yes ] ; then
687 echo "Test 18: specials for the 16-bit library with UTF-16 support"
688 if [ "$bits" = "8" ] ; then
689 echo " Skipped when running 8-bit tests"
690 elif [ $utf -eq 0 ] ; then
691 echo " Skipped because UTF-$bits support is not available"
692 else
693 for opt in "" "-s" $jitopt; do
694 $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput18 testtry
695 if [ $? = 0 ] ; then
696 $cf $testdata/testoutput18 testtry
697 if [ $? != 0 ] ; then exit 1; fi
698 else exit 1
699 fi
700 if [ "$opt" = "-s" ] ; then echo " OK with study"
701 elif [ "$opt" = "-s+" ] ; then echo " OK with JIT study"
702 else echo " OK"
703 fi
704 done
705 fi
706 fi
707
708 # Tests for 16-bit-specific features (Unicode property support)
709
710 if [ $do19 = yes ] ; then
711 echo "Test 19: specials for the 16-bit library with Unicode propery support"
712 if [ "$bits" = "8" ] ; then
713 echo " Skipped when running 8-bit tests"
714 elif [ $ucp -eq 0 ] ; then
715 echo " Skipped because Unicode property support is not available"
716 else
717 for opt in "" "-s" $jitopt; do
718 $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput19 testtry
719 if [ $? = 0 ] ; then
720 $cf $testdata/testoutput19 testtry
721 if [ $? != 0 ] ; then exit 1; fi
722 else exit 1
723 fi
724 if [ "$opt" = "-s" ] ; then echo " OK with study"
725 elif [ "$opt" = "-s+" ] ; then echo " OK with JIT study"
726 else echo " OK"
727 fi
728 done
729 fi
730 fi
731
732 # Tests for 16-bit-specific features in DFA non-UTF-16 mode
733
734 if [ $do20 = yes ] ; then
735 echo "Test 20: DFA specials for the basic 16-bit library"
736 if [ "$bits" = "8" ] ; then
737 echo " Skipped when running 8-bit tests"
738 else
739 for opt in "" "-s"; do
740 $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput20 testtry
741 if [ $? = 0 ] ; then
742 $cf $testdata/testoutput20 testtry
743 if [ $? != 0 ] ; then exit 1; fi
744 else exit 1
745 fi
746 if [ "$opt" = "-s" ] ; then echo " OK with study"
747 else echo " OK"
748 fi
749 done
750 fi
751 fi
752
753 # Tests for reloads with 16-bit library
754
755 if [ $do21 = yes ] ; then
756 echo "Test 21: reloads for the basic 16-bit library"
757 if [ "$bits" = "8" ] ; then
758 echo " Skipped when running 8-bit tests"
759 elif [ $link_size -ne 2 ] ; then
760 echo " Skipped because link size is not 2"
761 else
762 cp -f $testdata/saved8 testsaved8
763 cp -f $testdata/saved16LE-1 testsaved16LE-1
764 cp -f $testdata/saved16BE-1 testsaved16BE-1
765 $sim $valgrind ./pcretest -q $bmode $testdata/testinput21 testtry
766 if [ $? = 0 ] ; then
767 $cf $testdata/testoutput21 testtry
768 if [ $? != 0 ] ; then exit 1; fi
769 else exit 1
770 fi
771 echo " OK"
772 fi
773 fi
774
775 # Tests for reloads with 16-bit library (UTF-16 support)
776
777 if [ $do22 = yes ] ; then
778 echo "Test 22: reloads for the 16-bit library with UTF-16 support"
779 if [ "$bits" = "8" ] ; then
780 echo " Skipped when running 8-bit tests"
781 elif [ $utf -eq 0 ] ; then
782 echo " Skipped because UTF-$bits support is not available"
783 elif [ $link_size -ne 2 ] ; then
784 echo " Skipped because link size is not 2"
785 else
786 cp -f $testdata/saved16LE-2 testsaved16LE-2
787 cp -f $testdata/saved16BE-2 testsaved16BE-2
788 $sim $valgrind ./pcretest -q $bmode $testdata/testinput22 testtry
789 if [ $? = 0 ] ; then
790 $cf $testdata/testoutput22 testtry
791 if [ $? != 0 ] ; then exit 1; fi
792 else exit 1
793 fi
794 echo " OK"
795 fi
796 fi
797
798 # End of loop for 8-bit/16-bit tests
799 done
800
801 # Clean up local working files
802 rm -f test3input test3output testNinput testsaved* teststderr teststdout testtry
803
804 # End

Properties

Name Value
svn:executable *
svn:keywords "Author Date Id Revision Url"

  ViewVC Help
Powered by ViewVC 1.1.5