From caf64fc464497c31409d66974b82274bfca0134b Mon Sep 17 00:00:00 2001 From: Klas Lindfors Date: Tue, 9 Dec 2014 15:11:22 +0100 Subject: [PATCH] add valgrind for tests --- configure.ac | 1 + lib/tests/Makefile.am | 2 ++ m4/valgrind-tests.m4 | 37 +++++++++++++++++++++++++++++++++++++ tool/tests/Makefile.am | 1 + 4 files changed, 41 insertions(+) create mode 100644 m4/valgrind-tests.m4 diff --git a/configure.ac b/configure.ac index a01fbd2..e39c106 100644 --- a/configure.ac +++ b/configure.ac @@ -50,6 +50,7 @@ PKG_PROG_PKG_CONFIG PKG_CHECK_MODULES(OPENSSL, openssl) gl_LD_VERSION_SCRIPT +gl_VALGRIND_TESTS AC_ARG_WITH([backend], [AS_HELP_STRING([--with-backend=ARG], diff --git a/lib/tests/Makefile.am b/lib/tests/Makefile.am index 6fefb8f..65337f1 100644 --- a/lib/tests/Makefile.am +++ b/lib/tests/Makefile.am @@ -32,3 +32,5 @@ LDADD = ../libykpiv.la check_PROGRAMS = basic parse_key TESTS = $(check_PROGRAMS) + +TESTS_ENVIRONMENT = $(VALGRIND) diff --git a/m4/valgrind-tests.m4 b/m4/valgrind-tests.m4 new file mode 100644 index 0000000..5191a5f --- /dev/null +++ b/m4/valgrind-tests.m4 @@ -0,0 +1,37 @@ +# valgrind-tests.m4 serial 3 +dnl Copyright (C) 2008-2014 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Simon Josefsson + +# gl_VALGRIND_TESTS() +# ------------------- +# Check if valgrind is available, and set VALGRIND to it if available. +AC_DEFUN([gl_VALGRIND_TESTS], +[ + AC_ARG_ENABLE(valgrind-tests, + AS_HELP_STRING([--enable-valgrind-tests], + [run self tests under valgrind]), + [opt_valgrind_tests=$enableval], [opt_valgrind_tests=yes]) + + # Run self-tests under valgrind? + if test "$opt_valgrind_tests" = "yes" && test "$cross_compiling" = no; then + AC_CHECK_PROGS(VALGRIND, valgrind) + fi + + OPTS="-q --error-exitcode=1 --leak-check=full" + + if test -n "$VALGRIND" \ + && $VALGRIND $OPTS $SHELL -c 'exit 0' > /dev/null 2>&1; then + opt_valgrind_tests=yes + VALGRIND="$VALGRIND $OPTS" + else + opt_valgrind_tests=no + VALGRIND= + fi + + AC_MSG_CHECKING([whether self tests are run under valgrind]) + AC_MSG_RESULT($opt_valgrind_tests) +]) diff --git a/tool/tests/Makefile.am b/tool/tests/Makefile.am index 7b2e6f4..95ac560 100644 --- a/tool/tests/Makefile.am +++ b/tool/tests/Makefile.am @@ -25,6 +25,7 @@ # for the parts of OpenSSL used as well as that of the covered work. TESTS_ENVIRONMENT = export VERSION=$(PACKAGE_VERSION); export EXEEXT=$(EXEEXT); +TESTS_ENVIRONMENT += $(VALGRIND) AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/lib -I$(top_builddir)/lib