libdb/test/c/chk.ctests
2011-09-13 13:44:24 -04:00

70 lines
1.3 KiB
Bash

#!/bin/sh -
#
# $Id$
#
# Check to make sure we can run DB 1.85 code.
d=../../
b=./tmp_build/
s=$d/src
mkdir -p $b
[ -f $d/LICENSE ] || {
echo 'FAIL: Test must be run from scr directory.'
exit 1
}
nocleanup=0
while [ $# -gt 0 ]
do
case "$1" in
-nocleanup)
nocleanup=1; shift;;
*)
echo "Unrecognized option: $1, ignoring"
shift;;
esac
done
opts="--enable-compat185 --disable-shared"
echo "Building DB library, this can take a while."
(cd $b && ../../../dist/configure $opts > /dev/null && make libdb.a > /dev/null) || {
echo 'FAIL: unable to build libdb.a'
exit 1
}
# if compiling on linux blade server, add -pthread on cc
CINC="-I$b -I$s -I$s/dbinc"
[ `uname` = "Linux" ] && CINC="$CINC -pthread"
for i in `ls test_*.c`; do
echo "=== Running $i ===" | tee -a compile.out
if cc -g -Wall $CINC $i $b/libdb.a -o t >> compile.out 2>&1; then
:
else
echo "FAIL: unable to compile test program $i"
exit 1
fi
if ./t; then
:
else
echo "FAIL: test program failed"
exit 1
fi
rm -f ./t
done
# Cleanup.
# TODO: The test should be consistent, so this cleanup isn't so haphazard.
# Alternatively we could build each test in a sub-dir and cleanup after
# individual runs.
rm a.db __db.* output
rm -rf ./TESTDIR
if [ nocleanup = 0 ]; then
rm -rf compile.out $b
fi
exit 0