mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-12-15 05:37:47 +08:00
libctf: suppress spurious failure of malloc-counting tests under valgrind
The libctf-regression/open-error-free.c test works by interposing malloc and counting mallocs and frees across libctf operations. This only works under suitably-interposable mallocs on systems supporting dlsym (RTLD_NEXT, ...), so its operation is restricted to glibc systems for now, but also it interacts badly with valgrind, which interposes malloc itself. Detect a running valgrind and skip the test. Add new facilities allowing libctf lookup tests to declare themselves unsupported, by printing "UNSUPPORTED: " and then some meaningful message instead of their normal output. libctf/ * configure.ac: Check for <valgrind/valgrind.h>. * config.h.in: Regenerate. * configure: Likewise. * testsuite/lib/ctf-lib.exp (run_lookup_test): Add support for UNSUPPORTED tests. * testsuite/libctf-regression/open-error-free.c: When running under valgrind, this test is unsupported.
This commit is contained in:
@@ -270,6 +270,11 @@ proc run_lookup_test { name } {
|
||||
set results [run_host_cmd "$opts(wrapper) tmpdir/lookup" $lookup_output]
|
||||
}
|
||||
|
||||
if { [regexp {^UNSUPPORTED: (.*)$} $results -> reason] } {
|
||||
unsupported "$testname: $reason"
|
||||
return 0
|
||||
}
|
||||
|
||||
set f [open "tmpdir/lookup.out" "w"]
|
||||
puts $f $results
|
||||
close $f
|
||||
|
||||
Reference in New Issue
Block a user