tests: auto-enable ASAN option if necessary

Let's detect ASAN LDFLAGS in top level Makefile to make sure we call
tests with --memcheck-asan if build-system has been configured with
--enable-asan.

Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2019-04-24 12:24:15 +02:00
parent 0d37969cbe
commit 0b17c997c0
1 changed files with 15 additions and 1 deletions

View File

@ -25,6 +25,7 @@ SYSCOMMANDS=
top_srcdir=
top_builddir=
paraller_jobs=1
has_asan_opt=
function num_cpus()
{
@ -60,7 +61,6 @@ while [ -n "$1" ]; do
--force |\
--fake |\
--memcheck-valgrind |\
--memcheck-asan |\
--nolocks |\
--show-diff |\
--verbose |\
@ -70,6 +70,10 @@ while [ -n "$1" ]; do
# these options are simply forwarded to the test scripts
OPTS="$OPTS $1"
;;
--memcheck-asan)
OPTS="$OPTS $1"
has_asan_opt="yes"
;;
--use-system-commands)
OPTS="$OPTS $1"
SYSCOMMANDS="yes"
@ -145,6 +149,14 @@ fi
OPTS="$OPTS --srcdir=$top_srcdir --builddir=$top_builddir"
# Auto-enable ASAN to avoid conflicts between tests and binaries
if [ -z "$has_asan_opt" ]; then
asan=$(awk '/^ASAN_LDFLAGS/ { print $3 }' $top_builddir/Makefile)
if [ -n "$asan" ]; then
OPTS="$OPTS --memcheck-asan"
fi
fi
declare -a comps
if [ -n "$SUBTESTS" ]; then
# selected tests only
@ -196,6 +208,8 @@ echo
printf "%13s: %-30s " "kernel" "$(uname -r)"
echo
echo
echo " options: $(echo $OPTS | sed 's/ / \\\n /g')"
echo
if [ "$paraller_jobs" -ne 1 ]; then
tmp=$paraller_jobs