# #-- 02-unittest.test --# # source the master var file when it's there [ -f ../.tpkg.var.master ] && source ../.tpkg.var.master # use .tpkg.var.test for in test variable passing [ -f .tpkg.var.test ] && source .tpkg.var.test . ../common.sh PRE="../.." get_make (cd $PRE ; $MAKE unittest; $MAKE lock-verify) if test -f $PRE/unbound_do_valgrind_in_test; then do_valgrind=yes else do_valgrind=no fi VALGRIND_FLAGS="--leak-check=full --show-leak-kinds=all" if test $do_valgrind = "yes"; then echo "valgrind yes" echo tmpout=/tmp/tmpout.$$ if (cd $PRE; valgrind $VALGRIND_FLAGS ./unittest >$tmpout 2>&1); then echo "unit test worked." else echo "unit test failed." exit 1 fi if grep "All heap blocks were freed -- no leaks are possible" $tmpout; then : # clean else cat $tmpout echo "Memory leaked in unittest" grep "in use at exit" $tmpout exit 1 fi if grep "ERROR SUMMARY: 0 errors from 0 contexts" $tmpout; then : # clean else cat $tmpout echo "Errors in unittest" grep "ERROR SUMMARY" $tmpout exit 1 fi rm -f $tmpout else # without valgrind if (cd $PRE; ./unittest); then echo "unit test worked." else echo "unit test failed." exit 1 fi fi if test -f $PRE/ublocktrace.0; then if (cd $PRE; ./lock-verify ublocktrace.*); then echo "lock-verify test worked." else echo "lock-verify test failed." exit 1 fi fi exit 0