valgrind for unittest.

git-svn-id: file:///svn/unbound/trunk@4668 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
Wouter Wijngaards 2018-05-01 12:20:37 +00:00
parent 4e2bafafef
commit 913d4537f4

View file

@ -9,11 +9,48 @@ PRE="../.."
get_make
(cd $PRE ; $MAKE unittest; $MAKE lock-verify)
if (cd $PRE; ./unittest); then
echo "unit test worked."
if test -f $PRE/unbound_do_valgrind_in_test; then
do_valgrind=yes
else
echo "unit test failed."
exit 1
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