]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
tests: auto-enable ASAN option if necessary
authorKarel Zak <kzak@redhat.com>
Wed, 24 Apr 2019 10:24:15 +0000 (12:24 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 24 Apr 2019 10:24:15 +0000 (12:24 +0200)
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>
tests/run.sh

index 2a71331490560982d960308c29deae1b85078e45..57faf734c0d9d0a56d8806878f5305f122a2c68c 100755 (executable)
@@ -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