This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[COMMITTED] tests: Disable valgrind for core dumping and for self-introspecting tests.


The only tests that fork and exec are those that will then try to ptrace
attach the child for unwind testing. That won't work when the child is
also running under valgrind. So remove --trace-children=yes. Also disable
valgrind while dumping a core or for tests that try to inspect their own
state. They will get confused otherwise finding pieces of valgrind in
their maps.

Note we still seem to hit the following valgrind bug because the way we
map and unmap some shared libraries gets valgrind confused:
https://bugs.kde.org/show_bug.cgi?id=327427

Signed-off-by: Mark Wielaard <mjw@redhat.com>
---
 tests/ChangeLog              |    8 ++++++++
 tests/Makefile.am            |    2 +-
 tests/backtrace-subr.sh      |   11 +++++++++++
 tests/run-backtrace-data.sh  |    4 ++++
 tests/run-backtrace-dwarf.sh |    6 ++++++
 5 files changed, 30 insertions(+), 1 deletions(-)

diff --git a/tests/ChangeLog b/tests/ChangeLog
index 31638d3..44f4ef6 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,11 @@
+2013-12-10  Mark Wielaard  <mjw@redhat.com>
+
+	* Makefile.am (valgrind_cmd): Remove --trace-children=yes.
+	* backtrace-subr.sh (check_native_core): Disable valgrind while
+	dumping core.
+	* run-backtrace-data.sh: Disable valgrind.
+	* run-backtrace-dwarf.sh: Likewise.
+
 2013-12-09  Mark Wielaard  <mjw@redhat.com>
 
 	* varlocs.c (print_expr): Update comment to explain empty location
diff --git a/tests/Makefile.am b/tests/Makefile.am
index fbcc752..006b232 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -248,7 +248,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \
 	     backtrace.x86_64.core.bz2 backtrace.x86_64.exec.bz2
 
 if USE_VALGRIND
-valgrind_cmd='valgrind -q --trace-children=yes --error-exitcode=1 --run-libc-freeres=no'
+valgrind_cmd='valgrind -q --error-exitcode=1 --run-libc-freeres=no'
 endif
 
 
diff --git a/tests/backtrace-subr.sh b/tests/backtrace-subr.sh
index 39d40b3..580a1ce 100644
--- a/tests/backtrace-subr.sh
+++ b/tests/backtrace-subr.sh
@@ -104,7 +104,18 @@ check_native()
 check_native_core()
 {
   child=$1
+
+  # Disable valgrind while dumping core.
+  SAVED_VALGRIND_CMD="$VALGRIND_CMD"
+  unset VALGRIND_CMD
+
   core="core.`ulimit -c unlimited; set +ex; testrun ${abs_builddir}/$child --gencore; true`"
+
+  if [ "x$SAVED_VALGRIND_CMD" != "x" ]; then
+    VALGRIND_CMD="$SAVED_VALGRIND_CMD"
+    export VALGRIND_CMD
+  fi
+
   # Do not abort on non-zero exit code due to some warnings of ./backtrace
   # - see function check_err.
   tempfiles $core{,.{bt,err}}
diff --git a/tests/run-backtrace-data.sh b/tests/run-backtrace-data.sh
index 30127c3..34a4f01 100755
--- a/tests/run-backtrace-data.sh
+++ b/tests/run-backtrace-data.sh
@@ -17,6 +17,10 @@
 
 . $srcdir/backtrace-subr.sh
 
+# This test really cannot be run under valgrind, it tries to introspect
+# its own maps and registers and will find valgrinds instead.
+unset VALGRIND_CMD
+
 tempfiles data.{bt,err}
 (set +ex; testrun ${abs_builddir}/backtrace-data 1>data.bt 2>data.err; true)
 cat data.{bt,err}
diff --git a/tests/run-backtrace-dwarf.sh b/tests/run-backtrace-dwarf.sh
index 2f4ba0f..a133b32 100755
--- a/tests/run-backtrace-dwarf.sh
+++ b/tests/run-backtrace-dwarf.sh
@@ -17,6 +17,12 @@
 
 . $srcdir/backtrace-subr.sh
 
+# This test really cannot be run under valgrind, it tries to introspect
+# itself through ptrace and will find bits and pieces of valgrind.
+# On top of that valgrind also tries to read all the unwind info and
+# will warn and complain about various opcodes it doesn't understand...
+unset VALGRIND_CMD
+
 tempfiles dwarf.{bt,err}
 (set +ex; testrun ${abs_builddir}/backtrace-dwarf 1>dwarf.bt 2>dwarf.err; true)
 cat dwarf.{bt,err}
-- 
1.7.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]