From ffef16389c4506ccfbe304d0ee5fd714abfa0f5d Mon Sep 17 00:00:00 2001 From: Aaron Merey Date: Wed, 26 Mar 2025 15:26:58 -0400 Subject: 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 --- configure.ac | 16 ++++++++++++++-- tests/Makefile.am | 4 ++++ 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)'; \ -- cgit v1.2.3