diff --git a/tools/tests_in_valgrind.sh b/tools/tests_in_valgrind.sh index bf489b4419..cee177fc66 100755 --- a/tools/tests_in_valgrind.sh +++ b/tools/tests_in_valgrind.sh @@ -1,7 +1,23 @@ #!/bin/bash - # Yes, really bash, there are some bashisms +########################################### +# This script runs all tests in valgrind. Configure and compile bind the way +# you want it to be tested (you should use --with-gtest, however, or you get +# no tests). Then run this script from the top build directory. +# +# Note that the test isn't what you would call "production quality" (it is +# expected to be used by the bind10 developers, not end user) and might break, +# some ways of breaking it are known. +# +# There are two variables that modify it's behaviour. +# * VALGRIND_FLAGS are the flag passed to valgrind. There are some, hopefully +# reasonable defaults which you can overwrite. Note that the variable is +# used unmodified inside a sed pattern with # as a modifier, which can +# easily break it. There was no motivation to fix this. +# * VALGRIND_FILE is the file to store the output into. Default is valgrind.log +########################################### + # First, make sure the tests are up to date make diff --git a/tools/valgrind_test_cleaner.pl b/tools/valgrind_test_cleaner.pl index 7f8f432eeb..5ebf297f43 100755 --- a/tools/valgrind_test_cleaner.pl +++ b/tools/valgrind_test_cleaner.pl @@ -2,6 +2,18 @@ use strict; use warnings; +# This script can be used on a valgrind output of the tests (from +# tests_in_valgrind.sh) to remove some uninteresting error reports. +# Since we care about the tested application not leaking/crashing, not +# the tests itself, memory leaks that are caused only by the tests +# (eg. unreleased test data), we don't want to have logs full of them. +# +# This script does some heuristics to eliminate some of such error +# reports. Currently, the memory lost reports whose stack contains +# no call from the real application are suppressed. +# +# Of course, the rest still can contain many uninteresting entries. + my ($block, $blockOK); sub endBlock(_) {