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

Contents of /code/trunk/RunTest

Parent Directory Parent Directory | Revision Log Revision Log


Revision 162 - (hide annotations) (download)
Thu May 3 10:47:48 2007 UTC (7 years, 7 months ago) by ph10
File size: 6091 byte(s)
Correct tests for link sizes 3 and 4

1 nigel 49 #! /bin/sh
2    
3     # Run PCRE tests
4    
5 ph10 137 cf="diff -u"
6 nigel 87 valgrind=
7 ph10 137 testdata=testdata
8    
9     if [ -n "$srcdir" -a -d "$srcdir" ] ; then
10     testdata="$srcdir/testdata"
11 nigel 81 fi
12 nigel 49
13 ph10 116 # Find which optional facilities are available
14 nigel 87
15 ph10 116 case `./pcretest -C | ./pcregrep 'Internal link size'` in
16     *2) link_size=2;;
17     *3) link_size=3;;
18     *4) link_size=4;;
19     *) echo "Failed to find internal link size"; exit 1;;
20     esac
21 nigel 49
22 ph10 116 ./pcretest -C | ./pcregrep 'No UTF-8 support' >/dev/null
23     utf8=$?
24    
25     ./pcretest -C | ./pcregrep 'No Unicode properties support' >/dev/null
26     ucp=$?
27    
28     # Select which tests to run; for those that are explicitly requested, check
29     # that the necessary optional facilities are available.
30    
31 nigel 49 do1=no
32     do2=no
33     do3=no
34     do4=no
35     do5=no
36 nigel 75 do6=no
37 nigel 77 do7=no
38     do8=no
39     do9=no
40 nigel 49
41     while [ $# -gt 0 ] ; do
42     case $1 in
43     1) do1=yes;;
44     2) do2=yes;;
45     3) do3=yes;;
46     4) do4=yes;;
47 nigel 77 5) do5=yes;;
48     6) do6=yes;;
49     7) do7=yes;;
50     8) do8=yes;;
51     9) do9=yes;;
52 ph10 97 valgrind) valgrind="valgrind -q";;
53 nigel 49 *) echo "Unknown test number $1"; exit 1;;
54     esac
55     shift
56     done
57    
58 ph10 116 if [ $utf8 -eq 0 ] ; then
59 nigel 63 if [ $do4 = yes ] ; then
60 nigel 75 echo "Can't run test 4 because UTF-8 support is not configured"
61 nigel 63 exit 1
62 nigel 77 fi
63 nigel 49 if [ $do5 = yes ] ; then
64 nigel 75 echo "Can't run test 5 because UTF-8 support is not configured"
65 nigel 49 exit 1
66 nigel 77 fi
67 nigel 75 if [ $do6 = yes ] ; then
68     echo "Can't run test 6 because UTF-8 support is not configured"
69     exit 1
70 nigel 77 fi
71     if [ $do8 = yes ] ; then
72     echo "Can't run test 8 because UTF-8 support is not configured"
73     exit 1
74     fi
75     if [ $do9 = yes ] ; then
76     echo "Can't run test 9 because UTF-8 support is not configured"
77     exit 1
78     fi
79     fi
80 nigel 49
81 ph10 116 if [ $ucp -eq 0 ] ; then
82 nigel 75 if [ $do6 = yes ] ; then
83     echo "Can't run test 6 because Unicode property support is not configured"
84     exit 1
85     fi
86 nigel 77 if [ $do9 = yes ] ; then
87     echo "Can't run test 9 because Unicode property support is not configured"
88     exit 1
89     fi
90     fi
91 nigel 75
92 ph10 116 # If no specific tests were requested, select all that are relevant.
93    
94 nigel 75 if [ $do1 = no -a $do2 = no -a $do3 = no -a $do4 = no -a \
95 nigel 77 $do5 = no -a $do6 = no -a $do7 = no -a $do8 = no -a \
96     $do9 = no ] ; then
97 nigel 49 do1=yes
98 nigel 77 do2=yes
99 nigel 49 do3=yes
100 ph10 116 if [ $utf8 -ne 0 ] ; then do4=yes; fi
101     if [ $utf8 -ne 0 ] ; then do5=yes; fi
102     if [ $utf8 -ne 0 -a $ucp -ne 0 ] ; then do6=yes; fi
103 ph10 97 do7=yes
104 ph10 116 if [ $utf8 -ne 0 ] ; then do8=yes; fi
105     if [ $utf8 -ne 0 -a $ucp -ne 0 ] ; then do9=yes; fi
106 nigel 49 fi
107    
108 nigel 73 # Show which release
109    
110 ph10 128 echo ""
111     echo PCRE C library tests
112 nigel 73 ./pcretest /dev/null
113    
114 nigel 49 # Primary test, Perl-compatible
115    
116     if [ $do1 = yes ] ; then
117 nigel 75 echo "Test 1: main functionality (Perl compatible)"
118 nigel 87 $valgrind ./pcretest -q $testdata/testinput1 testtry
119 nigel 49 if [ $? = 0 ] ; then
120 ph10 158 $cf $testdata/testoutput1 testtry
121 nigel 49 if [ $? != 0 ] ; then exit 1; fi
122     else exit 1
123     fi
124 nigel 77 echo "OK"
125 nigel 49 fi
126    
127     # PCRE tests that are not Perl-compatible - API & error tests, mostly
128    
129     if [ $do2 = yes ] ; then
130 ph10 162 echo "Test 2: API and error handling (not Perl compatible)"
131     $valgrind ./pcretest -q $testdata/testinput2 testtry
132     if [ $? = 0 ] ; then
133     $cf $testdata/testoutput2 testtry
134     if [ $? != 0 ] ; then exit 1; fi
135     else exit 1
136 nigel 77 fi
137 ph10 162 echo "OK"
138 nigel 49 fi
139    
140 ph10 157 # Locale-specific tests, provided that either the "fr_FR" or the "french"
141     # locale is available. The former is the Unix-like standard; the latter is
142     # for Windows.
143 nigel 49
144 nigel 63 if [ $do3 = yes ] ; then
145 nigel 73 locale -a | grep '^fr_FR$' >/dev/null
146 nigel 49 if [ $? -eq 0 ] ; then
147 ph10 157 locale=fr_FR
148     infile=$testdata/testinput3
149     outfile=$testdata/testoutput3
150     else
151     locale -a | grep '^french$' >/dev/null
152     if [ $? -eq 0 ] ; then
153     locale=french
154     sed 's/fr_FR/french/' $testdata/testinput3 >test3input
155     sed 's/fr_FR/french/' $testdata/testoutput3 >test3output
156     infile=test3input
157 ph10 159 outfile=test3output
158 ph10 157 else
159 ph10 159 locale=
160 ph10 157 fi
161 ph10 159 fi
162 ph10 157
163     if [ "$locale" != "" ] ; then
164     echo "Test 3: locale-specific features (using '$locale' locale)"
165     $valgrind ./pcretest -q $infile testtry
166 nigel 49 if [ $? = 0 ] ; then
167 ph10 158 $cf $outfile testtry
168 nigel 77 if [ $? != 0 ] ; then
169 nigel 49 echo " "
170     echo "Locale test did not run entirely successfully."
171     echo "This usually means that there is a problem with the locale"
172 nigel 77 echo "settings rather than a bug in PCRE."
173 nigel 49 else
174 nigel 77 echo "OK"
175     fi
176 nigel 49 else exit 1
177     fi
178     else
179 ph10 157 echo "Cannot test locale-specific features - neither the 'fr_FR' nor the"
180     echo "'french' locale exists, or the \"locale\" command is not available"
181     echo "to check for them."
182 nigel 77 echo " "
183 nigel 49 fi
184     fi
185    
186     # Additional tests for UTF8 support
187    
188 nigel 63 if [ $do4 = yes ] ; then
189 nigel 75 echo "Test 4: UTF-8 support (Perl compatible)"
190 nigel 87 $valgrind ./pcretest -q $testdata/testinput4 testtry
191 nigel 49 if [ $? = 0 ] ; then
192 ph10 158 $cf $testdata/testoutput4 testtry
193 nigel 49 if [ $? != 0 ] ; then exit 1; fi
194     else exit 1
195     fi
196 nigel 77 echo "OK"
197 nigel 49 fi
198    
199 nigel 63 if [ $do5 = yes ] ; then
200 ph10 162 echo "Test 5: API and internals for UTF-8 support (not Perl compatible)"
201     $valgrind ./pcretest -q $testdata/testinput5 testtry
202     if [ $? = 0 ] ; then
203     $cf $testdata/testoutput5 testtry
204     if [ $? != 0 ] ; then exit 1; fi
205     else exit 1
206 nigel 77 fi
207 ph10 162 echo "OK"
208 nigel 49 fi
209    
210 nigel 75 if [ $do6 = yes ] ; then
211 ph10 162 echo "Test 6: Unicode property support"
212     $valgrind ./pcretest -q $testdata/testinput6 testtry
213     if [ $? = 0 ] ; then
214     $cf $testdata/testoutput6 testtry
215     if [ $? != 0 ] ; then exit 1; fi
216     else exit 1
217 nigel 77 fi
218 ph10 162 echo "OK"
219 nigel 75 fi
220    
221 nigel 77 # Tests for DFA matching support
222    
223     if [ $do7 = yes ] ; then
224     echo "Test 7: DFA matching"
225 nigel 87 $valgrind ./pcretest -q -dfa $testdata/testinput7 testtry
226 nigel 77 if [ $? = 0 ] ; then
227 ph10 158 $cf $testdata/testoutput7 testtry
228 nigel 77 if [ $? != 0 ] ; then exit 1; fi
229     else exit 1
230     fi
231     echo "OK"
232     fi
233    
234     if [ $do8 = yes ] ; then
235     echo "Test 8: DFA matching with UTF-8"
236 nigel 87 $valgrind ./pcretest -q -dfa $testdata/testinput8 testtry
237 nigel 77 if [ $? = 0 ] ; then
238 ph10 158 $cf $testdata/testoutput8 testtry
239 nigel 77 if [ $? != 0 ] ; then exit 1; fi
240     else exit 1
241     fi
242     echo "OK"
243     fi
244    
245     if [ $do9 = yes ] ; then
246     echo "Test 9: DFA matching with Unicode properties"
247 nigel 87 $valgrind ./pcretest -q -dfa $testdata/testinput9 testtry
248 nigel 77 if [ $? = 0 ] ; then
249 ph10 158 $cf $testdata/testoutput9 testtry
250 nigel 77 if [ $? != 0 ] ; then exit 1; fi
251     else exit 1
252     fi
253     echo "OK"
254     fi
255    
256 nigel 49 # End

Properties

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

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12