56 lines
1.5 KiB
Bash
56 lines
1.5 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
|
||
|
|
BUILD_DIR=$(pwd)
|
||
|
|
echo "PATH=$PATH" > "$BUILD_DIR/test/.tpkg.var.master"
|
||
|
|
|
||
|
|
if git log HEAD^..HEAD | grep -q 'git:TEST [0-9][0-9]*'
|
||
|
|
then
|
||
|
|
ONLY_TEST=$(git log HEAD^..HEAD | grep 'git:TEST [0-9][0-9]*' | sed 's/^.*git:TEST \([0-9][0-9]*\).*$/\1/g')
|
||
|
|
else
|
||
|
|
ONLY_TEST=""
|
||
|
|
fi
|
||
|
|
|
||
|
|
if git log HEAD^..HEAD | grep -q 'git:REGRESSION'
|
||
|
|
then
|
||
|
|
NO_REGRESSION=0
|
||
|
|
else
|
||
|
|
NO_REGRESSION=1
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ -z "$TPKG" ] || [ ! -x "$TPKG" ]
|
||
|
|
then
|
||
|
|
if [ -x tpkg/tpkg ] ; then TPKG="$(pwd)/tpkg/tpkg"
|
||
|
|
elif [ -x test/tpkg/tpkg ] ; then TPKG="$(pwd)/test/tpkg/tpkg"
|
||
|
|
elif command -v tpkg > /dev/null; then TPKG="$(command -v tpkg)"
|
||
|
|
else
|
||
|
|
echo Did not find tpkg program!
|
||
|
|
exit 255 # Shell can only return 0-255
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
|
||
|
|
# RUN THE TESTS
|
||
|
|
for tests in "$BUILD_DIR"/test/*.tpkg
|
||
|
|
do
|
||
|
|
TESTFN="$(basename "$tests")"
|
||
|
|
TESTNR=${TESTFN%-*}
|
||
|
|
[ -n "$ONLY_TEST" ] && [ x"$ONLY_TEST" != x"$TESTNR" ] && continue
|
||
|
|
case "$TESTNR" in
|
||
|
|
[3-5][0-9]*) [ $NO_REGRESSION = 1 ] && continue
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
case $TESTNR in
|
||
|
|
02) # splint doesn't work on linux
|
||
|
|
[ "x$(uname -s)" = "xLinux" ] && continue
|
||
|
|
;;
|
||
|
|
32) # No backwards compatibility regression testing
|
||
|
|
# when .so had major version bump.
|
||
|
|
chmod +x "$BUILD_DIR/packaging/ldns-config"
|
||
|
|
BINAPI=$("$BUILD_DIR/packaging/ldns-config" --libversion)
|
||
|
|
[ "x${BINAPI#*.}" = "x0.0" ] && continue
|
||
|
|
esac
|
||
|
|
$TPKG -b "$BUILD_DIR/test" -a "$BUILD_DIR" exe "$TESTFN"
|
||
|
|
done
|
||
|
|
|
||
|
|
cd test || { echo "Where is the test directory?"; exit 1; }
|
||
|
|
exec $TPKG -n -1 r
|