summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Merey <[email protected]>2025-03-26 15:26:58 -0400
committerAaron Merey <[email protected]>2025-03-26 17:01:24 -0400
commitffef16389c4506ccfbe304d0ee5fd714abfa0f5d (patch)
treee7a466773d3b49660aea9be0ad1439f0b4b88ffa
parent5580435eee04c44b8a7d93d30b58fa82a0cea539 (diff)
Add configure option --enable-helgrind
Like --enable-valgrind but uses helgrind instead of memcheck. If both --enable-valgrind and --enable-helgrind are given then helgrind takes priority. --enable-helgrind requires --enable-valgrind-annotations. * configure.ac: Add --enable-helgrind option. * tests/Makefile.am: If USE_HELGRIND is true, then include --tool=helgrind in the valgrind command that tests are run under. Signed-off-by: Aaron Merey <[email protected]>
-rw-r--r--configure.ac16
-rw-r--r--tests/Makefile.am4
2 files changed, 18 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index 3298f7fc..1679a17d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -363,10 +363,15 @@ if test "$use_address" = yes; then
fi
AM_CONDITIONAL(USE_ADDRESS_SANITIZER, test "$use_address" = yes)
+AC_ARG_ENABLE([helgrind],
+AS_HELP_STRING([--enable-helgrind],[run all tests under the valgrind tool helgrind]),
+[use_helgrind=$enableval], [use_helgrind=no])
+
AC_ARG_ENABLE([valgrind],
AS_HELP_STRING([--enable-valgrind],[run all tests under valgrind]),
[use_valgrind=$enableval], [use_valgrind=no])
-if test "$use_valgrind" = yes; then
+
+if test "$use_valgrind" = yes -o "$use_helgrind" = yes; then
if test "$use_address" = yes; then
AC_MSG_ERROR([cannot enable valgrind and sanitize address together])
fi
@@ -375,7 +380,8 @@ if test "$use_valgrind" = yes; then
AC_MSG_ERROR([valgrind not found])
fi
fi
-AM_CONDITIONAL(USE_VALGRIND, test "$use_valgrind" = yes)
+AM_CONDITIONAL(USE_VALGRIND, test "$use_valgrind" = yes -o "$use_helgrind" = yes)
+AM_CONDITIONAL(USE_HELGRIND, test "$use_helgrind" = yes)
AC_ARG_WITH([valgrind],
AS_HELP_STRING([--with-valgrind],[include directory for Valgrind headers]),
@@ -394,6 +400,12 @@ fi
AC_ARG_ENABLE([valgrind-annotations],
AS_HELP_STRING([--enable-valgrind-annotations],[insert extra annotations for better valgrind support]),
[use_vg_annotations=$enableval], [use_vg_annotations=no])
+
+# Helgrind requires Valgrind annotations.
+if test "$use_vg_annotations" = no -a "$use_helgrind" = yes; then
+ AC_MSG_ERROR(["--enable-helgrind requires --enable-valgrind-annotations"])
+fi
+
if test "$use_vg_annotations" = yes; then
if test "x$HAVE_VALGRIND_HEADERS" != "xyes"; then
AC_MSG_CHECKING([whether Valgrind headers are available])
diff --git a/tests/Makefile.am b/tests/Makefile.am
index f53fd926..7c3bf837 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -710,9 +710,13 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
run-debuginfod-seekable.sh
+if USE_HELGRIND
+valgrind_cmd=valgrind -q --tool=helgrind --error-exitcode=1 --track-fds=yes
+else
if USE_VALGRIND
valgrind_cmd=valgrind -q --leak-check=full --error-exitcode=1 --track-fds=yes
endif
+endif
installed_TESTS_ENVIRONMENT = libdir='$(DESTDIR)$(libdir)'; \