[gdb/testsuite] Allow override of ASAN_OPTIONS in lib/gdb.exp
authorTom de Vries <tdevries@suse.de>
Mon, 18 Jul 2022 04:20:38 +0000 (06:20 +0200)
committerTom de Vries <tdevries@suse.de>
Mon, 18 Jul 2022 04:20:38 +0000 (06:20 +0200)
Use set_sanitizer_default for ASAN_OPTIONS in lib/gdb.exp.

This allows us to override the default detect_leaks=0 setting, by manually
doing:
...
$ export ASAN_OPTIONS=detect_leaks=1
$ make check
...

Tested on x86_64-linux, by building with -fsanitize=address and running
test-case gdb.dwarf2/gdb-add-index.exp with and without
"export ASAN_OPTIONS=detect_leaks=1".

gdb/testsuite/lib/gdb.exp

index 5d6f1266b0fca041dab782b5b713e228c5edc8a0..ef68c3ce9fbb72f8064c08e1f784c624ded12e56 100644 (file)
@@ -25,13 +25,6 @@ if {$tool == ""} {
     exit 2
 }
 
-# If GDB is built with ASAN (and because there are leaks), it will output a
-# leak report when exiting as well as exit with a non-zero (failure) status.
-# This can affect tests that are sensitive to what GDB prints on stderr or its
-# exit status.  Add `detect_leaks=0` to the ASAN_OPTIONS environment variable
-# (which will affect any spawned sub-process) to avoid this.
-append ::env(ASAN_OPTIONS) ",detect_leaks=0"
-
 # Add VAR_ID=VAL to ENV_VAR, unless ENV_VAR already contains a VAR_ID setting.
 
 proc set_sanitizer_default { env_var var_id val } {
@@ -58,6 +51,13 @@ proc set_sanitizer_default { env_var var_id val } {
 set_sanitizer_default TSAN_OPTIONS suppressions \
     $srcdir/../tsan-suppressions.txt
 
+# If GDB is built with ASAN (and because there are leaks), it will output a
+# leak report when exiting as well as exit with a non-zero (failure) status.
+# This can affect tests that are sensitive to what GDB prints on stderr or its
+# exit status.  Add `detect_leaks=0` to the ASAN_OPTIONS environment variable
+# (which will affect any spawned sub-process) to avoid this.
+set_sanitizer_default ASAN_OPTIONS detect_leaks 0
+
 # List of procs to run in gdb_finish.
 set gdb_finish_hooks [list]