/[pcre]/code/tags/pcre-8.20/RunTest
ViewVC logotype

Contents of /code/tags/pcre-8.20/RunTest

Parent Directory Parent Directory | Revision Log Revision Log


Revision 173 - (show annotations) (download)
Tue Jun 5 11:17:10 2007 UTC (7 years, 3 months ago) by ph10
Original Path: code/trunk/RunTest
File size: 6883 byte(s)
Update to next RC number; fix bug in test script.

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

Properties

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

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12