From: Markus Armbruster Date: Sun, 27 Sep 2015 07:56:21 +0000 (+0200) Subject: tests: Enable GNU libc memory allocation error checking X-Git-Tag: v4.4.0~315 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=6e80cf103f1e4e46efccbd3ea3454151b83b08ec tests: Enable GNU libc memory allocation error checking MALLOC_CHECK_=3 makes glibc check for memory allocation programming errors. It's the factory default, but set it anyway just in case someone disabled it for speed. Non-zero MALLOC_PERTURB_ makes glibc wipe memory value on allocation and deallocation. The actual value determines the bit pattern. Set it to the value of environment variable EMPIRE_CHECK_MALLOC_PERTURB or else a pseudo-random number, and record it in sandbox/malloc-perturb. See mallopt(3) for more information. Signed-off-by: Markus Armbruster --- diff --git a/tests/test-common.sh b/tests/test-common.sh index f54ba4521..7d1403998 100644 --- a/tests/test-common.sh +++ b/tests/test-common.sh @@ -20,6 +20,11 @@ empdump="src/util/empdump -e $econfig" files="src/util/files -e $econfig" fairland="src/util/fairland -e $econfig" +# GNU libc memory allocation checking, see mallopt(3) +# $RANDOM isn't portable +malloc_perturb=${EMPIRE_CHECK_MALLOC_PERTURB:-$(perl -e 'print int(rand(255))')} +env="MALLOC_CHECK_=3 MALLOC_PERTURB_=$malloc_perturb" + empthread=`sed -n 's/empthread *:= *\(.*\)/\1/p' sandbox/malloc-perturb touch $schedule cat >$econfig <>sandbox/$name.out 2>>sandbox/$name.err + env $env "$@" >>sandbox/$name.out 2>>sandbox/$name.err ret=$? set -e echo $ret >>sandbox/$name.status @@ -126,7 +132,7 @@ start_server() check_empthread pid= - src/server/emp_server -e $econfig -R 1 -s -E crash-dump + env $env src/server/emp_server -e $econfig -R 1 -s -E crash-dump timeout=$((`now`+5)) until pid=`cat $pidfile 2>/dev/null` && [ -n "$pid" ] do