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

Diff of /code/trunk/RunTest

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 139 by ph10, Fri Mar 30 13:41:47 2007 UTC revision 245 by ph10, Fri Sep 14 10:06:05 2007 UTC
# Line 25  utf8=$? Line 25  utf8=$?
25  ./pcretest -C | ./pcregrep 'No Unicode properties support' >/dev/null  ./pcretest -C | ./pcregrep 'No Unicode properties support' >/dev/null
26  ucp=$?  ucp=$?
27    
28    ./pcretest -C | ./pcregrep '\\R matches CR, LF, or CRLF only' >/dev/null
29    bsrok=$?
30    
31  # Select which tests to run; for those that are explicitly requested, check  # Select which tests to run; for those that are explicitly requested, check
32  # that the necessary optional facilities are available.  # that the necessary optional facilities are available.
33    
# Line 37  do6=no Line 40  do6=no
40  do7=no  do7=no
41  do8=no  do8=no
42  do9=no  do9=no
43    do10=no
44    
45  while [ $# -gt 0 ] ; do  while [ $# -gt 0 ] ; do
46    case $1 in    case $1 in
# Line 49  while [ $# -gt 0 ] ; do Line 53  while [ $# -gt 0 ] ; do
53      7) do7=yes;;      7) do7=yes;;
54      8) do8=yes;;      8) do8=yes;;
55      9) do9=yes;;      9) do9=yes;;
56      valgrind) valgrind="valgrind -q";;     10) do10=yes;;
57       valgrind) valgrind="valgrind -q";;
58      *) echo "Unknown test number $1"; exit 1;;      *) echo "Unknown test number $1"; exit 1;;
59    esac    esac
60    shift    shift
61  done  done
62    
 if [ "$link_size" != "2" ] ; then  
   if [ $do2 = yes ] ; then  
     echo "Can't run test 2 with an internal link size other than 2"  
     exit 1  
   fi  
   if [ $do5 = yes ] ; then  
     echo "Can't run test 5 with an internal link size other than 2"  
     exit 1  
   fi  
   if [ $do6 = yes ] ; then  
     echo "Can't run test 6 with an internal link size other than 2"  
     exit 1  
   fi  
 fi  
   
63  if [ $utf8 -eq 0 ] ; then  if [ $utf8 -eq 0 ] ; then
64    if [ $do4 = yes ] ; then    if [ $do4 = yes ] ; then
65      echo "Can't run test 4 because UTF-8 support is not configured"      echo "Can't run test 4 because UTF-8 support is not configured"
# Line 79  if [ $utf8 -eq 0 ] ; then Line 69  if [ $utf8 -eq 0 ] ; then
69      echo "Can't run test 5 because UTF-8 support is not configured"      echo "Can't run test 5 because UTF-8 support is not configured"
70      exit 1      exit 1
71    fi    fi
   if [ $do6 = yes ] ; then  
     echo "Can't run test 6 because UTF-8 support is not configured"  
     exit 1  
   fi  
72    if [ $do8 = yes ] ; then    if [ $do8 = yes ] ; then
73      echo "Can't run test 8 because UTF-8 support is not configured"      echo "Can't run test 8 because UTF-8 support is not configured"
74      exit 1      exit 1
75    fi    fi
   if [ $do9 = yes ] ; then  
     echo "Can't run test 9 because UTF-8 support is not configured"  
     exit 1  
   fi  
76  fi  fi
77    
78  if [ $ucp -eq 0 ] ; then  if [ $ucp -eq 0 ] ; then
# Line 102  if [ $ucp -eq 0 ] ; then Line 84  if [ $ucp -eq 0 ] ; then
84      echo "Can't run test 9 because Unicode property support is not configured"      echo "Can't run test 9 because Unicode property support is not configured"
85      exit 1      exit 1
86    fi    fi
87      if [ $do10 = yes ] ; then
88        echo "Can't run test 10 because Unicode property support is not configured"
89        exit 1
90      fi
91    fi
92    
93    if [ $link_size -ne 2 ] ; then
94      if [ $do10 = yes ] ; then
95        echo "Can't run test 10 because the link size ($link_size) is not 2"
96        exit 1
97      fi
98    fi
99    
100    if [ $bsrok = 0 ] ; then
101      if [ $do2 = yes ] ; then
102        echo "Can't run test 2 because \\R is restricted"
103        exit 1
104      fi
105      if [ $do5 = yes ] ; then
106        echo "Can't run test 5 because \\R is restricted"
107        exit 1
108      fi
109      if [ $do7 = yes ] ; then
110        echo "Can't run test 7 because \\R is restricted"
111        exit 1
112      fi
113      if [ $do8 = yes ] ; then
114        echo "Can't run test 8 because \\R is restricted"
115        exit 1
116      fi
117  fi  fi
118    
119  # If no specific tests were requested, select all that are relevant.  # If no specific tests were requested, select all that are relevant.
120    
121  if [ $do1 = no -a $do2 = no -a $do3 = no -a $do4 = no -a \  if [ $do1 = no -a $do2 = no -a $do3 = no -a $do4 = no -a \
122       $do5 = no -a $do6 = no -a $do7 = no -a $do8 = no -a \       $do5 = no -a $do6 = no -a $do7 = no -a $do8 = no -a \
123       $do9 = no ] ; then       $do9 = no -a $do10 = no ] ; then
124    do1=yes    do1=yes
125    do2=yes    if [ $bsrok -ne 0 ] ; then do2=yes; fi
126    do3=yes    do3=yes
127    if [ $utf8 -ne 0 ] ; then do4=yes; fi    if [ $utf8 -ne 0 ] ; then do4=yes; fi
128    if [ $utf8 -ne 0 ] ; then do5=yes; fi    if [ $utf8 -ne 0 -a $bsrok -ne 0 ] ; then do5=yes; fi
129    if [ $utf8 -ne 0 -a $ucp -ne 0 ] ; then do6=yes; fi    if [ $utf8 -ne 0 -a $ucp -ne 0 ] ; then do6=yes; fi
130    do7=yes    if [ $bsrok -ne 0 ] ; then do7=yes; fi
131    if [ $utf8 -ne 0 ] ; then do8=yes; fi    if [ $utf8 -ne 0 -a $bsrok -ne 0 ] ; then do8=yes; fi
132    if [ $utf8 -ne 0 -a $ucp -ne 0 ] ; then do9=yes; fi    if [ $utf8 -ne 0 -a $ucp -ne 0 ] ; then do9=yes; fi
133      if [ $link_size -eq 2 -a $ucp -ne 0 ] ; then do10=yes; fi
134  fi  fi
135    
136  # Show which release  # Show which release
# Line 132  if [ $do1 = yes ] ; then Line 145  if [ $do1 = yes ] ; then
145    echo "Test 1: main functionality (Perl compatible)"    echo "Test 1: main functionality (Perl compatible)"
146    $valgrind ./pcretest -q $testdata/testinput1 testtry    $valgrind ./pcretest -q $testdata/testinput1 testtry
147    if [ $? = 0 ] ; then    if [ $? = 0 ] ; then
148      $cf testtry $testdata/testoutput1      $cf $testdata/testoutput1 testtry
149      if [ $? != 0 ] ; then exit 1; fi      if [ $? != 0 ] ; then exit 1; fi
150    else exit 1    else exit 1
151    fi    fi
# Line 142  fi Line 155  fi
155  # PCRE tests that are not Perl-compatible - API & error tests, mostly  # PCRE tests that are not Perl-compatible - API & error tests, mostly
156    
157  if [ $do2 = yes ] ; then  if [ $do2 = yes ] ; then
158    if [ "$link_size" = "2" ] ; then    echo "Test 2: API and error handling (not Perl compatible)"
159      echo "Test 2: API and error handling (not Perl compatible)"    $valgrind ./pcretest -q $testdata/testinput2 testtry
160      $valgrind ./pcretest -q $testdata/testinput2 testtry    if [ $? = 0 ] ; then
161      if [ $? = 0 ] ; then      $cf $testdata/testoutput2 testtry
162        $cf testtry $testdata/testoutput2      if [ $? != 0 ] ; then exit 1; fi
163        if [ $? != 0 ] ; then exit 1; fi    else exit 1
     else exit 1  
     fi  
     echo "OK"  
   else  
     echo Test 2 skipped for link size other than 2 \($link_size\)  
     echo " "  
164    fi    fi
165      echo "OK"
166  fi  fi
167    
168  # Locale-specific tests, provided the "fr_FR" locale is available.  # Locale-specific tests, provided that either the "fr_FR" or the "french"
169  # TODO: Try the locale name "french" instead - as used on Windows - but  # locale is available. The former is the Unix-like standard; the latter is
170  # this will mean modifying the input and output data.  # for Windows.
171    
172  if [ $do3 = yes ] ; then  if [ $do3 = yes ] ; then
173    locale -a | grep '^fr_FR$' >/dev/null    locale -a | grep '^fr_FR$' >/dev/null
174    if [ $? -eq 0 ] ; then    if [ $? -eq 0 ] ; then
175      echo "Test 3: locale-specific features (using 'fr_FR' locale)"      locale=fr_FR
176      $valgrind ./pcretest -q $testdata/testinput3 testtry      infile=$testdata/testinput3
177        outfile=$testdata/testoutput3
178      else
179        locale -a | grep '^french$' >/dev/null
180        if [ $? -eq 0 ] ; then
181          locale=french
182          sed 's/fr_FR/french/' $testdata/testinput3 >test3input
183          sed 's/fr_FR/french/' $testdata/testoutput3 >test3output
184          infile=test3input
185          outfile=test3output
186        else
187          locale=
188        fi
189      fi
190    
191      if [ "$locale" != "" ] ; then
192        echo "Test 3: locale-specific features (using '$locale' locale)"
193        $valgrind ./pcretest -q $infile testtry
194      if [ $? = 0 ] ; then      if [ $? = 0 ] ; then
195        $cf testtry $testdata/testoutput3        $cf $outfile testtry
196        if [ $? != 0 ] ; then        if [ $? != 0 ] ; then
197          echo " "          echo " "
198          echo "Locale test did not run entirely successfully."          echo "Locale test did not run entirely successfully."
# Line 179  if [ $do3 = yes ] ; then Line 204  if [ $do3 = yes ] ; then
204      else exit 1      else exit 1
205      fi      fi
206    else    else
207      echo "Cannot test locale-specific features - 'fr_FR' locale not found,"      echo "Cannot test locale-specific features - neither the 'fr_FR' nor the"
208      echo "or the \"locale\" command is not available to check for it."      echo "'french' locale exists, or the \"locale\" command is not available"
209        echo "to check for them."
210      echo " "      echo " "
211    fi    fi
212  fi  fi
# Line 191  if [ $do4 = yes ] ; then Line 217  if [ $do4 = yes ] ; then
217    echo "Test 4: UTF-8 support (Perl compatible)"    echo "Test 4: UTF-8 support (Perl compatible)"
218    $valgrind ./pcretest -q $testdata/testinput4 testtry    $valgrind ./pcretest -q $testdata/testinput4 testtry
219    if [ $? = 0 ] ; then    if [ $? = 0 ] ; then
220      $cf testtry $testdata/testoutput4      $cf $testdata/testoutput4 testtry
221      if [ $? != 0 ] ; then exit 1; fi      if [ $? != 0 ] ; then exit 1; fi
222    else exit 1    else exit 1
223    fi    fi
# Line 199  if [ $do4 = yes ] ; then Line 225  if [ $do4 = yes ] ; then
225  fi  fi
226    
227  if [ $do5 = yes ] ; then  if [ $do5 = yes ] ; then
228    if [ "$link_size" = "2" ] ; then    echo "Test 5: API and internals for UTF-8 support (not Perl compatible)"
229      echo "Test 5: API and internals for UTF-8 support (not Perl compatible)"    $valgrind ./pcretest -q $testdata/testinput5 testtry
230      $valgrind ./pcretest -q $testdata/testinput5 testtry    if [ $? = 0 ] ; then
231      if [ $? = 0 ] ; then      $cf $testdata/testoutput5 testtry
232        $cf testtry $testdata/testoutput5      if [ $? != 0 ] ; then exit 1; fi
233        if [ $? != 0 ] ; then exit 1; fi    else exit 1
     else exit 1  
     fi  
     echo "OK"  
   else  
     echo Test 5 skipped for link size other than 2 \($link_size\)  
     echo " "  
234    fi    fi
235      echo "OK"
236  fi  fi
237    
238  if [ $do6 = yes ] ; then  if [ $do6 = yes ] ; then
239    if [ "$link_size" = "2" ] ; then    echo "Test 6: Unicode property support"
240      echo "Test 6: Unicode property support"    $valgrind ./pcretest -q $testdata/testinput6 testtry
241      $valgrind ./pcretest -q $testdata/testinput6 testtry    if [ $? = 0 ] ; then
242      if [ $? = 0 ] ; then      $cf $testdata/testoutput6 testtry
243        $cf testtry $testdata/testoutput6      if [ $? != 0 ] ; then exit 1; fi
244        if [ $? != 0 ] ; then exit 1; fi    else exit 1
     else exit 1  
     fi  
     echo "OK"  
   else  
     echo Test 6 skipped for link size other than 2 \($link_size\)  
     echo " "  
245    fi    fi
246      echo "OK"
247  fi  fi
248    
249  # Tests for DFA matching support  # Tests for DFA matching support
# Line 236  if [ $do7 = yes ] ; then Line 252  if [ $do7 = yes ] ; then
252    echo "Test 7: DFA matching"    echo "Test 7: DFA matching"
253    $valgrind ./pcretest -q -dfa $testdata/testinput7 testtry    $valgrind ./pcretest -q -dfa $testdata/testinput7 testtry
254    if [ $? = 0 ] ; then    if [ $? = 0 ] ; then
255      $cf testtry $testdata/testoutput7      $cf $testdata/testoutput7 testtry
256      if [ $? != 0 ] ; then exit 1; fi      if [ $? != 0 ] ; then exit 1; fi
257    else exit 1    else exit 1
258    fi    fi
# Line 247  if [ $do8 = yes ] ; then Line 263  if [ $do8 = yes ] ; then
263    echo "Test 8: DFA matching with UTF-8"    echo "Test 8: DFA matching with UTF-8"
264    $valgrind ./pcretest -q -dfa $testdata/testinput8 testtry    $valgrind ./pcretest -q -dfa $testdata/testinput8 testtry
265    if [ $? = 0 ] ; then    if [ $? = 0 ] ; then
266      $cf testtry $testdata/testoutput8      $cf $testdata/testoutput8 testtry
267      if [ $? != 0 ] ; then exit 1; fi      if [ $? != 0 ] ; then exit 1; fi
268    else exit 1    else exit 1
269    fi    fi
# Line 258  if [ $do9 = yes ] ; then Line 274  if [ $do9 = yes ] ; then
274    echo "Test 9: DFA matching with Unicode properties"    echo "Test 9: DFA matching with Unicode properties"
275    $valgrind ./pcretest -q -dfa $testdata/testinput9 testtry    $valgrind ./pcretest -q -dfa $testdata/testinput9 testtry
276    if [ $? = 0 ] ; then    if [ $? = 0 ] ; then
277      $cf testtry $testdata/testoutput9      $cf $testdata/testoutput9 testtry
278        if [ $? != 0 ] ; then exit 1; fi
279      else exit 1
280      fi
281      echo "OK"
282    fi
283    
284    # Test of internal offsets and code sizes. This test is run only when there
285    # is Unicode property support and the link size is 2. The actual tests are
286    # mostly the same as in some of the above, but in this test we inspect some
287    # offsets and sizes that require a known link size. This is a doublecheck for
288    # the maintainer, just in case something changes unexpectely.
289    
290    if [ $do10 = yes ] ; then
291      echo "Test 10: Internal offsets and code size tests"
292      $valgrind ./pcretest -q $testdata/testinput10 testtry
293      if [ $? = 0 ] ; then
294        $cf $testdata/testoutput10 testtry
295      if [ $? != 0 ] ; then exit 1; fi      if [ $? != 0 ] ; then exit 1; fi
296    else exit 1    else exit 1
297    fi    fi

Legend:
Removed from v.139  
changed lines
  Added in v.245

  ViewVC Help
Powered by ViewVC 1.1.5