summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMark Wielaard <[email protected]>2013-12-13 22:42:46 +0100
committerMark Wielaard <[email protected]>2013-12-13 22:57:30 +0100
commit7fc4929958ca78bd7b268014e9029d5ae1608822 (patch)
tree3139dd1c55f84c09fbff01b5318b8f21dabe4d6b /tests
parentb47e28a743afef4cd02fbe753c1526ed89c472c9 (diff)
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 <[email protected]>
Diffstat (limited to 'tests')
-rw-r--r--tests/ChangeLog8
-rw-r--r--tests/Makefile.am2
-rw-r--r--tests/backtrace-subr.sh11
-rwxr-xr-xtests/run-backtrace-data.sh4
-rwxr-xr-xtests/run-backtrace-dwarf.sh6
5 files changed, 30 insertions, 1 deletions
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 31638d3c..44f4ef66 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,11 @@
+2013-12-10 Mark Wielaard <[email protected]>
+
+ * 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 <[email protected]>
* varlocs.c (print_expr): Update comment to explain empty location
diff --git a/tests/Makefile.am b/tests/Makefile.am
index fbcc752e..006b2322 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 39d40b3f..580a1cea 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 30127c34..34a4f01d 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 2f4ba0f5..a133b32d 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}