cannam@133
|
1 #! /usr/bin/env bash
|
cannam@133
|
2
|
cannam@133
|
3 set -euo pipefail
|
cannam@133
|
4
|
cannam@133
|
5 doit() {
|
cannam@133
|
6 echo "@@@@ $@"
|
cannam@133
|
7 "$@"
|
cannam@133
|
8 }
|
cannam@133
|
9
|
cannam@133
|
10 QUICK=
|
cannam@133
|
11
|
cannam@133
|
12 while [ $# -gt 0 ]; do
|
cannam@133
|
13 case "$1" in
|
cannam@133
|
14 test )
|
cannam@133
|
15 ;; # nothing
|
cannam@133
|
16 quick )
|
cannam@133
|
17 QUICK=quick
|
cannam@133
|
18 ;;
|
cannam@133
|
19 caffeinate )
|
cannam@133
|
20 # Re-run preventing sleep.
|
cannam@133
|
21 shift
|
cannam@133
|
22 exec caffeinate -ims $0 $@
|
cannam@133
|
23 ;;
|
cannam@133
|
24 tmpdir )
|
cannam@133
|
25 # Clone to a temp directory.
|
cannam@133
|
26 if [ "$#" -lt 2 ]; then
|
cannam@133
|
27 echo "usage: $0 tmpdir NAME [COMMAND]" >&2
|
cannam@133
|
28 exit 1
|
cannam@133
|
29 fi
|
cannam@133
|
30 DIR=/tmp/$2
|
cannam@133
|
31 shift 2
|
cannam@133
|
32 if [ -e $DIR ]; then
|
cannam@133
|
33 if [ "${DIR/*..*}" = "" ]; then
|
cannam@133
|
34 echo "NO DO NOT PUT .. IN THERE IT'S GOING TO GO IN /tmp AND I'M GONNA DELETE IT" >&2
|
cannam@133
|
35 exit 1
|
cannam@133
|
36 fi
|
cannam@133
|
37 if [ ! -e "$DIR/super-test.sh" ]; then
|
cannam@133
|
38 echo "$DIR exists and it doesn't look like one of mine." >&2
|
cannam@133
|
39 exit 1
|
cannam@133
|
40 fi
|
cannam@133
|
41 # make distcheck leaves non-writable files when it fails, so we need to chmod to be safe.
|
cannam@133
|
42 chmod -R +w $DIR
|
cannam@133
|
43 rm -rf $DIR
|
cannam@133
|
44 fi
|
cannam@133
|
45 git clone . $DIR
|
cannam@133
|
46 cd $DIR
|
cannam@133
|
47 exec ./super-test.sh "$@"
|
cannam@133
|
48 ;;
|
cannam@133
|
49 remote )
|
cannam@133
|
50 if [ "$#" -lt 2 ]; then
|
cannam@133
|
51 echo "usage: $0 remote HOST [COMMAND]" >&2
|
cannam@133
|
52 exit 1
|
cannam@133
|
53 fi
|
cannam@133
|
54 HOST=$2
|
cannam@133
|
55 shift 2
|
cannam@133
|
56 echo "========================================================================="
|
cannam@133
|
57 echo "Pushing code to $HOST..."
|
cannam@133
|
58 echo "========================================================================="
|
cannam@133
|
59 BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
cannam@133
|
60 ssh $HOST '(chmod -fR +w tmp-test-capnp || true) && rm -rf tmp-test-capnp && mkdir tmp-test-capnp && git init tmp-test-capnp'
|
cannam@133
|
61 git push ssh://$HOST/~/tmp-test-capnp "$BRANCH:test"
|
cannam@133
|
62 ssh $HOST "cd tmp-test-capnp && git checkout test"
|
cannam@133
|
63 exec ssh $HOST "cd tmp-test-capnp && ./super-test.sh $@ && cd .. && rm -rf tmp-test-capnp"
|
cannam@133
|
64 ;;
|
cannam@133
|
65 clang )
|
cannam@133
|
66 export CXX=clang++
|
cannam@133
|
67 ;;
|
cannam@133
|
68 gcc-4.9 )
|
cannam@133
|
69 export CXX=g++-4.9
|
cannam@133
|
70 ;;
|
cannam@133
|
71 gcc-4.8 )
|
cannam@133
|
72 export CXX=g++-4.8
|
cannam@133
|
73 ;;
|
cannam@133
|
74 gcc-4.7 )
|
cannam@133
|
75 export CXX=g++-4.7
|
cannam@133
|
76 ;;
|
cannam@133
|
77 mingw )
|
cannam@133
|
78 if [ "$#" -ne 2 ]; then
|
cannam@133
|
79 echo "usage: $0 mingw CROSS_HOST" >&2
|
cannam@133
|
80 exit 1
|
cannam@133
|
81 fi
|
cannam@133
|
82 CROSS_HOST=$2
|
cannam@133
|
83
|
cannam@133
|
84 cd c++
|
cannam@133
|
85 test -e configure || doit autoreconf -i
|
cannam@133
|
86 test ! -e Makefile || (echo "ERROR: Directory unclean!" >&2 && false)
|
cannam@133
|
87 doit ./configure --host="$CROSS_HOST" --disable-shared CXXFLAGS='-static-libgcc -static-libstdc++'
|
cannam@133
|
88 doit make -j6 capnp.exe capnpc-c++.exe
|
cannam@133
|
89
|
cannam@133
|
90 cp capnp.exe capnp-mingw.exe
|
cannam@133
|
91 cp capnpc-c++.exe capnpc-c++-mingw.exe
|
cannam@133
|
92
|
cannam@133
|
93 doit make distclean
|
cannam@133
|
94 doit ./configure --host="$CROSS_HOST" --with-external-capnp --disable-shared --disable-reflection CXXFLAGS='-static-libgcc -static-libstdc++' CAPNP=./capnp-mingw.exe CAPNPC_CXX=./capnpc-c++-mingw.exe
|
cannam@133
|
95
|
cannam@133
|
96 doit make -j6 check
|
cannam@133
|
97 doit make distclean
|
cannam@133
|
98 rm -f *-mingw.exe
|
cannam@133
|
99 exit 0
|
cannam@133
|
100 ;;
|
cannam@133
|
101 android )
|
cannam@133
|
102 if [ "$#" -ne 4 ]; then
|
cannam@133
|
103 echo "usage: $0 android SDK_HOME TOOLCHAIN_HOME CROSS_HOST" >&2
|
cannam@133
|
104 exit 1
|
cannam@133
|
105 fi
|
cannam@133
|
106 SDK_HOME=$2
|
cannam@133
|
107 TOOLCHAIN_HOME=$3
|
cannam@133
|
108 CROSS_HOST=$4
|
cannam@133
|
109
|
cannam@133
|
110 cd c++
|
cannam@133
|
111 test -e configure || doit autoreconf -i
|
cannam@133
|
112 test ! -e Makefile || (echo "ERROR: Directory unclean!" >&2 && false)
|
cannam@133
|
113 doit ./configure --disable-shared
|
cannam@133
|
114 doit make -j6 capnp capnpc-c++
|
cannam@133
|
115
|
cannam@133
|
116 cp capnp capnp-host
|
cannam@133
|
117 cp capnpc-c++ capnpc-c++-host
|
cannam@133
|
118
|
cannam@133
|
119 export PATH="$TOOLCHAIN_HOME/bin:$PATH"
|
cannam@133
|
120 doit make distclean
|
cannam@133
|
121 doit ./configure --host="$CROSS_HOST" --with-external-capnp --disable-shared CXXFLAGS='-pie -fPIE' CAPNP=./capnp-host CAPNPC_CXX=./capnpc-c++-host
|
cannam@133
|
122
|
cannam@133
|
123 doit make -j6
|
cannam@133
|
124 doit make -j6 capnp-test
|
cannam@133
|
125
|
cannam@133
|
126 echo "Starting emulator..."
|
cannam@133
|
127 trap 'kill $(jobs -p)' EXIT
|
cannam@133
|
128 $SDK_HOME/tools/emulator -avd n6 -no-window &
|
cannam@133
|
129 $SDK_HOME/platform-tools/adb wait-for-device
|
cannam@133
|
130 echo "Waiting for localhost to be resolvable..."
|
cannam@133
|
131 $SDK_HOME/platform-tools/adb shell 'while ! ping -c 1 localhost > /dev/null 2>&1; do sleep 1; done'
|
cannam@133
|
132 doit $SDK_HOME/platform-tools/adb push capnp-test /data/capnp-test
|
cannam@133
|
133 doit $SDK_HOME/platform-tools/adb shell 'cd /data && /data/capnp-test && echo ANDROID_""TESTS_PASSED' | tee android-test.log
|
cannam@133
|
134 grep -q ANDROID_TESTS_PASSED android-test.log
|
cannam@133
|
135
|
cannam@133
|
136 doit make distclean
|
cannam@133
|
137 rm -f capnp-host capnpc-c++-host
|
cannam@133
|
138 exit 0
|
cannam@133
|
139 ;;
|
cannam@133
|
140 cmake )
|
cannam@133
|
141 cd c++
|
cannam@133
|
142 rm -rf cmake-build
|
cannam@133
|
143 mkdir cmake-build
|
cannam@133
|
144 cd cmake-build
|
cannam@133
|
145 doit cmake -G "Unix Makefiles" ..
|
cannam@133
|
146 doit make -j6 check
|
cannam@133
|
147 exit 0
|
cannam@133
|
148 ;;
|
cannam@133
|
149 exotic )
|
cannam@133
|
150 echo "========================================================================="
|
cannam@133
|
151 echo "MinGW 64-bit"
|
cannam@133
|
152 echo "========================================================================="
|
cannam@133
|
153 "$0" mingw x86_64-w64-mingw32
|
cannam@133
|
154 echo "========================================================================="
|
cannam@133
|
155 echo "MinGW 32-bit"
|
cannam@133
|
156 echo "========================================================================="
|
cannam@133
|
157 "$0" mingw i686-w64-mingw32
|
cannam@133
|
158 echo "========================================================================="
|
cannam@133
|
159 echo "Android"
|
cannam@133
|
160 echo "========================================================================="
|
cannam@133
|
161 "$0" android /home/kenton/android/android-sdk-linux /home/kenton/android/android-16 arm-linux-androideabi
|
cannam@133
|
162 echo "========================================================================="
|
cannam@133
|
163 echo "CMake"
|
cannam@133
|
164 echo "========================================================================="
|
cannam@133
|
165 "$0" cmake
|
cannam@133
|
166 exit 0
|
cannam@133
|
167 ;;
|
cannam@133
|
168 clean )
|
cannam@133
|
169 rm -rf tmp-staging
|
cannam@133
|
170 cd c++
|
cannam@133
|
171 if [ -e Makefile ]; then
|
cannam@133
|
172 doit make maintainer-clean
|
cannam@133
|
173 fi
|
cannam@133
|
174 rm -f capnproto-*.tar.gz samples/addressbook samples/addressbook.capnp.c++ \
|
cannam@133
|
175 samples/addressbook.capnp.h
|
cannam@133
|
176 exit 0
|
cannam@133
|
177 ;;
|
cannam@133
|
178 help )
|
cannam@133
|
179 echo "usage: $0 [COMMAND]"
|
cannam@133
|
180 echo "commands:"
|
cannam@133
|
181 echo " test Runs tests (the default)."
|
cannam@133
|
182 echo " clang Runs tests using Clang compiler."
|
cannam@133
|
183 echo " gcc-4.7 Runs tests using gcc-4.7."
|
cannam@133
|
184 echo " gcc-4.8 Runs tests using gcc-4.8."
|
cannam@133
|
185 echo " gcc-4.9 Runs tests using gcc-4.9."
|
cannam@133
|
186 echo " remote HOST Runs tests on HOST via SSH."
|
cannam@133
|
187 echo " mingw Cross-compiles to MinGW and runs tests using WINE."
|
cannam@133
|
188 echo " android Cross-compiles to Android and runs tests using emulator."
|
cannam@133
|
189 echo " clean Delete temporary files that may be left after failure."
|
cannam@133
|
190 echo " help Prints this help text."
|
cannam@133
|
191 exit 0
|
cannam@133
|
192 ;;
|
cannam@133
|
193 * )
|
cannam@133
|
194 echo "unknown command: $1" >&2
|
cannam@133
|
195 echo "try: $0 help" >&2
|
cannam@133
|
196 exit 1
|
cannam@133
|
197 ;;
|
cannam@133
|
198 esac
|
cannam@133
|
199 shift
|
cannam@133
|
200 done
|
cannam@133
|
201
|
cannam@133
|
202 # Build optimized builds because they catch more problems, but also enable debugging macros.
|
cannam@133
|
203 # Enable lots of warnings and make sure the build breaks if they fire. Disable strict-aliasing
|
cannam@133
|
204 # because GCC warns about code that I know is OK. Disable sign-compare because I've fixed more
|
cannam@133
|
205 # sign-compare warnings than probably all other warnings combined and I've never seen it flag a
|
cannam@133
|
206 # real problem. Disable unused parameters because it's stupidly noisy and never a real problem.
|
cannam@133
|
207 export CXXFLAGS="-O2 -DDEBUG -Wall -Wextra -Werror -Wno-strict-aliasing -Wno-sign-compare -Wno-unused-parameter"
|
cannam@133
|
208
|
cannam@133
|
209 STAGING=$PWD/tmp-staging
|
cannam@133
|
210
|
cannam@133
|
211 rm -rf "$STAGING"
|
cannam@133
|
212 mkdir "$STAGING"
|
cannam@133
|
213 mkdir "$STAGING/bin"
|
cannam@133
|
214 mkdir "$STAGING/lib"
|
cannam@133
|
215 export PATH=$STAGING/bin:$PATH
|
cannam@133
|
216 export LD_LIBRARY_PATH=$STAGING/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
cannam@133
|
217 export PKG_CONFIG_PATH=$STAGING/lib/pkgconfig
|
cannam@133
|
218
|
cannam@133
|
219 if [ "$QUICK" = quick ]; then
|
cannam@133
|
220 echo "************************** QUICK TEST ***********************************"
|
cannam@133
|
221 fi
|
cannam@133
|
222
|
cannam@133
|
223 echo "========================================================================="
|
cannam@133
|
224 echo "Building c++"
|
cannam@133
|
225 echo "========================================================================="
|
cannam@133
|
226
|
cannam@133
|
227 # Apple now aliases gcc to clang, so probe to find out what compiler we're really using.
|
cannam@133
|
228 if (${CXX:-g++} -dM -E -x c++ /dev/null 2>&1 | grep -q '__clang__'); then
|
cannam@133
|
229 IS_CLANG=yes
|
cannam@133
|
230 else
|
cannam@133
|
231 IS_CLANG=no
|
cannam@133
|
232 fi
|
cannam@133
|
233
|
cannam@133
|
234 if [ $IS_CLANG = yes ]; then
|
cannam@133
|
235 # Don't fail out on this ridiculous "argument unused during compilation" warning.
|
cannam@133
|
236 export CXXFLAGS="$CXXFLAGS -Wno-error=unused-command-line-argument"
|
cannam@133
|
237 else
|
cannam@133
|
238 # GCC emits uninitialized warnings all over and they seem bogus. We use valgrind to test for
|
cannam@133
|
239 # uninitialized memory usage later on.
|
cannam@133
|
240 CXXFLAGS="$CXXFLAGS -Wno-maybe-uninitialized"
|
cannam@133
|
241 fi
|
cannam@133
|
242
|
cannam@133
|
243 cd c++
|
cannam@133
|
244 doit autoreconf -i
|
cannam@133
|
245 doit ./configure --prefix="$STAGING"
|
cannam@133
|
246 doit make -j6 check
|
cannam@133
|
247
|
cannam@133
|
248 if [ $IS_CLANG = no ]; then
|
cannam@133
|
249 # Verify that generated code compiles with pedantic warnings. Make sure to treat capnp headers
|
cannam@133
|
250 # as system headers so warnings in them are ignored.
|
cannam@133
|
251 doit ${CXX:-g++} -isystem src -std=c++11 -fno-permissive -pedantic -Wall -Wextra -Werror \
|
cannam@133
|
252 -c src/capnp/test.capnp.c++ -o /dev/null
|
cannam@133
|
253 fi
|
cannam@133
|
254
|
cannam@133
|
255 echo "========================================================================="
|
cannam@133
|
256 echo "Testing c++ install"
|
cannam@133
|
257 echo "========================================================================="
|
cannam@133
|
258
|
cannam@133
|
259 doit make install
|
cannam@133
|
260
|
cannam@133
|
261 test "x$(which capnp)" = "x$STAGING/bin/capnp"
|
cannam@133
|
262 test "x$(which capnpc-c++)" = "x$STAGING/bin/capnpc-c++"
|
cannam@133
|
263
|
cannam@133
|
264 cd samples
|
cannam@133
|
265
|
cannam@133
|
266 doit capnp compile -oc++ addressbook.capnp -I"$STAGING"/include --no-standard-import
|
cannam@133
|
267 doit ${CXX:-g++} -std=c++11 addressbook.c++ addressbook.capnp.c++ -o addressbook \
|
cannam@133
|
268 $CXXFLAGS $(pkg-config --cflags --libs capnp)
|
cannam@133
|
269 echo "@@@@ ./addressbook (in various configurations)"
|
cannam@133
|
270 ./addressbook write | ./addressbook read
|
cannam@133
|
271 ./addressbook dwrite | ./addressbook dread
|
cannam@133
|
272 rm addressbook addressbook.capnp.c++ addressbook.capnp.h
|
cannam@133
|
273
|
cannam@133
|
274 doit capnp compile -oc++ calculator.capnp -I"$STAGING"/include --no-standard-import
|
cannam@133
|
275 doit ${CXX:-g++} -std=c++11 calculator-client.c++ calculator.capnp.c++ -o calculator-client \
|
cannam@133
|
276 $CXXFLAGS $(pkg-config --cflags --libs capnp-rpc)
|
cannam@133
|
277 doit ${CXX:-g++} -std=c++11 calculator-server.c++ calculator.capnp.c++ -o calculator-server \
|
cannam@133
|
278 $CXXFLAGS $(pkg-config --cflags --libs capnp-rpc)
|
cannam@133
|
279 rm -f /tmp/capnp-calculator-example-$$
|
cannam@133
|
280 ./calculator-server unix:/tmp/capnp-calculator-example-$$ &
|
cannam@133
|
281 sleep 0.1
|
cannam@133
|
282 ./calculator-client unix:/tmp/capnp-calculator-example-$$
|
cannam@133
|
283 kill %+
|
cannam@133
|
284 wait %+ || true
|
cannam@133
|
285 rm calculator-client calculator-server calculator.capnp.c++ calculator.capnp.h /tmp/capnp-calculator-example-$$
|
cannam@133
|
286
|
cannam@133
|
287 cd ..
|
cannam@133
|
288
|
cannam@133
|
289 if [ "$QUICK" = quick ]; then
|
cannam@133
|
290 doit make maintainer-clean
|
cannam@133
|
291 rm -rf "$STAGING"
|
cannam@133
|
292 exit 0
|
cannam@133
|
293 fi
|
cannam@133
|
294
|
cannam@133
|
295 echo "========================================================================="
|
cannam@133
|
296 echo "Testing --with-external-capnp"
|
cannam@133
|
297 echo "========================================================================="
|
cannam@133
|
298
|
cannam@133
|
299 doit make distclean
|
cannam@133
|
300 doit ./configure --prefix="$STAGING" --disable-shared \
|
cannam@133
|
301 --with-external-capnp CAPNP=$STAGING/bin/capnp
|
cannam@133
|
302 doit make -j6 check
|
cannam@133
|
303
|
cannam@133
|
304 echo "========================================================================="
|
cannam@133
|
305 echo "Testing --disable-reflection"
|
cannam@133
|
306 echo "========================================================================="
|
cannam@133
|
307
|
cannam@133
|
308 doit make distclean
|
cannam@133
|
309 doit ./configure --prefix="$STAGING" --disable-shared --disable-reflection \
|
cannam@133
|
310 --with-external-capnp CAPNP=$STAGING/bin/capnp
|
cannam@133
|
311 doit make -j6 check
|
cannam@133
|
312 doit make distclean
|
cannam@133
|
313
|
cannam@133
|
314 # Test 32-bit build now while we have $STAGING available for cross-compiling.
|
cannam@133
|
315 if [ "x`uname -m`" = "xx86_64" ]; then
|
cannam@133
|
316 echo "========================================================================="
|
cannam@133
|
317 echo "Testing 32-bit build"
|
cannam@133
|
318 echo "========================================================================="
|
cannam@133
|
319
|
cannam@133
|
320 if [[ "`uname`" =~ CYGWIN ]]; then
|
cannam@133
|
321 # It's just not possible to run cygwin32 binaries from within cygwin64.
|
cannam@133
|
322
|
cannam@133
|
323 # Build as if we are cross-compiling, using the capnp we installed to $STAGING.
|
cannam@133
|
324 doit ./configure --prefix="$STAGING" --disable-shared --host=i686-pc-cygwin \
|
cannam@133
|
325 --with-external-capnp CAPNP=$STAGING/bin/capnp
|
cannam@133
|
326 doit make -j6
|
cannam@133
|
327 doit make -j6 capnp-test.exe
|
cannam@133
|
328
|
cannam@133
|
329 # Expect a cygwin32 sshd to be listening at localhost port 2222, and use it
|
cannam@133
|
330 # to run the tests.
|
cannam@133
|
331 doit scp -P 2222 capnp-test.exe localhost:~/tmp-capnp-test.exe
|
cannam@133
|
332 doit ssh -p 2222 localhost './tmp-capnp-test.exe && rm tmp-capnp-test.exe'
|
cannam@133
|
333
|
cannam@133
|
334 doit make distclean
|
cannam@133
|
335
|
cannam@133
|
336 elif [ "x${CXX:-g++}" != "xg++-4.8" ]; then
|
cannam@133
|
337 doit ./configure CXX="${CXX:-g++} -m32" --disable-shared
|
cannam@133
|
338 doit make -j6 check
|
cannam@133
|
339 doit make distclean
|
cannam@133
|
340 fi
|
cannam@133
|
341 fi
|
cannam@133
|
342
|
cannam@133
|
343 echo "========================================================================="
|
cannam@133
|
344 echo "Testing c++ uninstall"
|
cannam@133
|
345 echo "========================================================================="
|
cannam@133
|
346
|
cannam@133
|
347 doit ./configure --prefix="$STAGING"
|
cannam@133
|
348 doit make uninstall
|
cannam@133
|
349
|
cannam@133
|
350 echo "========================================================================="
|
cannam@133
|
351 echo "Testing c++ dist"
|
cannam@133
|
352 echo "========================================================================="
|
cannam@133
|
353
|
cannam@133
|
354 doit make -j6 distcheck
|
cannam@133
|
355 doit make distclean
|
cannam@133
|
356 rm capnproto-*.tar.gz
|
cannam@133
|
357
|
cannam@133
|
358 if [ "x`uname`" = xLinux ]; then
|
cannam@133
|
359 echo "========================================================================="
|
cannam@133
|
360 echo "Testing generic Unix (no Linux-specific features)"
|
cannam@133
|
361 echo "========================================================================="
|
cannam@133
|
362
|
cannam@133
|
363 doit ./configure --disable-shared CXXFLAGS="$CXXFLAGS -DKJ_USE_FUTEX=0 -DKJ_USE_EPOLL=0"
|
cannam@133
|
364 doit make -j6 check
|
cannam@133
|
365 doit make distclean
|
cannam@133
|
366 fi
|
cannam@133
|
367
|
cannam@133
|
368 echo "========================================================================="
|
cannam@133
|
369 echo "Testing with -fno-rtti and -fno-exceptions"
|
cannam@133
|
370 echo "========================================================================="
|
cannam@133
|
371
|
cannam@133
|
372 doit ./configure --disable-shared CXXFLAGS="$CXXFLAGS -fno-rtti"
|
cannam@133
|
373 doit make -j6 check
|
cannam@133
|
374 doit make distclean
|
cannam@133
|
375 doit ./configure --disable-shared CXXFLAGS="$CXXFLAGS -fno-exceptions"
|
cannam@133
|
376 doit make -j6 check
|
cannam@133
|
377 doit make distclean
|
cannam@133
|
378 doit ./configure --disable-shared CXXFLAGS="$CXXFLAGS -fno-rtti -fno-exceptions"
|
cannam@133
|
379 doit make -j6 check
|
cannam@133
|
380
|
cannam@133
|
381 # Valgrind is currently "experimental and mostly broken" on OSX and fails to run the full test
|
cannam@133
|
382 # suite, but I have it installed because it did manage to help me track down a bug or two. Anyway,
|
cannam@133
|
383 # skip it on OSX for now.
|
cannam@133
|
384 if [ "x`uname`" != xDarwin ] && which valgrind > /dev/null; then
|
cannam@133
|
385 doit make distclean
|
cannam@133
|
386
|
cannam@133
|
387 echo "========================================================================="
|
cannam@133
|
388 echo "Testing with valgrind"
|
cannam@133
|
389 echo "========================================================================="
|
cannam@133
|
390
|
cannam@133
|
391 doit ./configure --disable-shared CXXFLAGS="-g"
|
cannam@133
|
392 doit make -j6
|
cannam@133
|
393 doit make -j6 capnp-test
|
cannam@133
|
394 doit valgrind --leak-check=full --track-fds=yes --error-exitcode=1 ./capnp-test
|
cannam@133
|
395 fi
|
cannam@133
|
396
|
cannam@133
|
397 doit make maintainer-clean
|
cannam@133
|
398
|
cannam@133
|
399 rm -rf "$STAGING"
|