/[pcre]/code/trunk/maint/ManyConfigTests
ViewVC logotype

Contents of /code/trunk/maint/ManyConfigTests

Parent Directory Parent Directory | Revision Log Revision Log


Revision 139 - (hide annotations) (download)
Fri Mar 30 13:41:47 2007 UTC (6 years, 1 month ago) by ph10
File size: 4817 byte(s)
Documentation notes that fr_FR locale is "french" in Windows; add an 
out-of-tree built test to maint/ManyConfigTests.

1 ph10 129 #! /bin/sh
2    
3     # This is a script for the use of PCRE maintainers. It configures and rebuilds
4     # PCRE with a variety of configuration options, and in each case runs the tests
5     # to ensure that all goes well. Every possible combination would take far too
6 ph10 139 # long, so we use a representative sample. This script should be run in the
7     # PCRE source directory.
8 ph10 129
9     # Some of the tests have to be skipped when PCRE is built with non-Unix newline
10     # recognition. I am planning to reduce this as much as possible in due course.
11    
12 ph10 139
13 ph10 129 # This is in case the caller has set aliases (as I do - PH)
14    
15     unset cp ls mv rm
16    
17     # Use -v to make the output more verbose
18    
19     verbose=0
20     if [ "$1" = "-v" ] ; then verbose=1; fi
21    
22 ph10 139 # This is a temporary directory for testing out-of-line builds
23 ph10 129
24 ph10 139 tmp=/tmp/pcretesting
25    
26    
27     # This function runs a single test with the set of configuration options that
28     # are in $opts. The source directory must be set in srcdir.
29    
30     function runtest()
31     {
32 ph10 129 rm -f *_unittest
33    
34     if [ "$opts" = "" ] ; then
35 ph10 139 echo "Configuring with: default settings"
36 ph10 129 else
37     olen=`expr length "$opts"`
38 ph10 139 if [ $olen -gt 53 ] ; then
39     echo "Configuring with:"
40     echo " $opts"
41 ph10 129 else
42 ph10 139 echo "Configuring with: $opts"
43 ph10 129 fi
44     fi
45    
46 ph10 139 $srcdir/configure $opts >/dev/null 2>teststderr
47 ph10 129 if [ $? -ne 0 ]; then
48     echo " "
49     echo "**** Error while configuring ****"
50     cat teststderr
51     exit 1
52     fi
53    
54 ph10 139 echo "Making"
55 ph10 129 make >/dev/null 2>teststderr
56     if [ $? -ne 0 ]; then
57     echo " "
58     echo "**** Error while making ****"
59     cat teststderr
60     exit 1
61     fi
62    
63     if [ $verbose -eq 1 ]; then
64     ./pcretest -C
65     fi
66    
67     conf=`./pcretest -C`
68     nl=`expr match "$conf" ".*Newline sequence is \([A-Z]*\)"`
69    
70     if [ "$nl" = "LF" -o "$nl" = "ANY" ]; then
71 ph10 139 echo "Running C library tests"
72     $srcdir/RunTest >teststdout
73 ph10 129 if [ $? -ne 0 ]; then
74     echo " "
75     echo "**** Test failed ****"
76     cat teststdout
77     exit 1
78     fi
79     else
80 ph10 139 echo "Skipping C library tests: newline is $nl"
81 ph10 129 fi
82    
83     if [ "$nl" = "LF" ]; then
84 ph10 139 echo "Running pcregrep tests"
85     $srcdir/RunGrepTest >teststdout 2>teststderr
86 ph10 129 if [ $? -ne 0 ]; then
87     echo " "
88     echo "**** Test failed ****"
89     cat teststderr
90     cat teststdout
91     exit 1
92     fi
93     else
94 ph10 139 echo "Skipping pcregrep tests: newline is $nl"
95 ph10 129 fi
96    
97     if [ "$nl" = "LF" -o "$nl" = "ANY" ]; then
98     if [ -f pcrecpp_unittest ] ; then
99     for utest in pcrecpp_unittest \
100     pcre_scanner_unittest \
101     pcre_stringpiece_unittest
102     do
103 ph10 139 echo "Running $utest"
104 ph10 129 $utest >teststdout
105     if [ $? -ne 0 ]; then
106     echo " "
107     echo "**** Test failed ****"
108     cat teststdout
109     exit 1
110     fi
111     done
112 ph10 139 else
113     echo "Skipping C++ tests: pcrecpp_unittest does not exist"
114 ph10 129 fi
115     else
116 ph10 139 echo "Skipping C++ tests: newline is $nl"
117 ph10 129 fi
118 ph10 139 }
119 ph10 129
120 ph10 139
121     # This set of tests builds PCRE and runs the tests with a variety of configure
122     # options, in the current (source) directory. The first (empty) configuration
123     # builds with all the default settings. As well as testing that these options
124     # work, we use --disable-shared or --disable-static after the first test (which
125     # builds both) to save a bit of time by building only one version of the
126     # library for the subsequent tests.
127    
128     echo "Tests in the current directory"
129     srcdir=.
130     for opts in \
131     "" \
132     "--enable-utf8 --disable-static" \
133     "--enable-unicode-properties --disable-shared" \
134     "--enable-unicode-properties --disable-stack-for-recursion --disable-shared" \
135     "--enable-unicode-properties --disable-cpp --with-link-size=3 --disable-shared" \
136     "--enable-rebuild-chartables --disable-shared" \
137     "--enable-newline-is-any --disable-shared" \
138     "--enable-newline-is-cr --disable-shared" \
139     "--enable-newline-is-crlf --disable-shared" \
140     "--enable-utf8 --enable-newline-is-any --enable-unicode-properties --disable-stack-for-recursion --disable-static --disable-cpp"
141     do
142     runtest
143 ph10 129 done
144    
145 ph10 139
146     # Clean up the distribution and then do at least one build and test in a
147     # directory other than the source directory. It doesn't work unless the
148     # source directory is cleaned up first - and anyway, it's best to leave it
149     # in a clean state after all this reconfiguring.
150    
151     if [ -f Makefile ]; then
152     echo "Running 'make distclean'"
153     make distclean >/dev/null 2>&1
154     if [ $? -ne 0 ]; then
155     echo "** 'make distclean' failed"
156     exit 1
157     fi
158     fi
159    
160     echo "Tests in the $tmp directory"
161     srcdir=`pwd`
162     export srcdir
163    
164     if [ ! -e $tmp ]; then
165     mkdir $tmp
166     fi
167    
168     if [ ! -d $tmp ]; then
169     echo "** Failed to create $tmp or it is not a directory"
170     exit 1
171     fi
172    
173     cd $tmp
174     if [ $? -ne 0 ]; then
175     echo "** Failed to cd to $tmp"
176     exit 1
177     fi
178    
179     for opts in \
180     "--enable-unicode-properties --disable-shared"
181     do
182     runtest
183     done
184    
185     echo "Removing $tmp"
186    
187     rm -rf $tmp
188    
189     echo "All done"
190    
191 ph10 129 # End

Properties

Name Value
svn:executable *

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12