From: Wouter Wijngaards Date: Tue, 1 May 2018 12:20:37 +0000 (+0000) Subject: valgrind for unittest. X-Git-Tag: release-1.7.2rc1~36 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=913d4537f44ee30be37b75a7d533e222d4246d15;p=thirdparty%2Funbound.git valgrind for unittest. git-svn-id: file:///svn/unbound/trunk@4668 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/testdata/02-unittest.tdir/02-unittest.test b/testdata/02-unittest.tdir/02-unittest.test index 898cd3dcc..7b1105b74 100644 --- a/testdata/02-unittest.tdir/02-unittest.test +++ b/testdata/02-unittest.tdir/02-unittest.test @@ -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