[PATCH libevdev 3/3] test: run all tests through valgrind

Peter Hutterer peter.hutterer at who-t.net
Wed Apr 23 22:50:15 PDT 2014


Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 configure.ac               |  7 +++++--
 test/Makefile.am           | 17 +++++++++++++++++
 test/valgrind.suppressions | 22 ++++++++++++++++++++++
 3 files changed, 44 insertions(+), 2 deletions(-)
 create mode 100644 test/valgrind.suppressions

diff --git a/configure.ac b/configure.ac
index 1c57bf9..f63760d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -68,9 +68,12 @@ AC_SUBST([GNU_LD_FLAGS], $with_ldflags)
 
 PKG_PROG_PKG_CONFIG()
 PKG_CHECK_MODULES(CHECK, [check >= 0.9.9], [HAVE_CHECK="yes"], [HAVE_CHECK="no"])
-if test "x$HAVE_CHECK" != "xyes"; then
-       AC_MSG_WARN([check not found - skipping building unit tests])
+if test "x$HAVE_CHECK" = "xyes"; then
+	AC_PATH_PROG(VALGRIND, [valgrind])
+else
+	AC_MSG_WARN([check not found - skipping building unit tests])
 fi
+AM_CONDITIONAL(HAVE_VALGRIND, [test "x$VALGRIND" != "x"])
 AM_CONDITIONAL(BUILD_TESTS, [test "x$HAVE_CHECK" = "xyes"])
 
 with_cflags=""
diff --git a/test/Makefile.am b/test/Makefile.am
index 9cf0726..e076d84 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -2,6 +2,8 @@ if BUILD_TESTS
 run_tests = test-libevdev test-kernel
 build_tests = test-compile-pedantic test-link
 
+EXTRA_DIST =
+
 .NOTPARALLEL:
 
 noinst_PROGRAMS = $(run_tests) $(build_tests)
@@ -51,6 +53,21 @@ test_kernel_SOURCES = \
 test_kernel_CFLAGS = -I$(top_srcdir)
 test_kernel_LDADD = $(CHECK_LIBS)
 
+if HAVE_VALGRIND
+VALGRIND_FLAGS=--leak-check=full \
+		--quiet \
+		--error-exitcode=3 \
+		--suppressions=$(srcdir)/valgrind.suppressions
+
+valgrind:
+	        $(MAKE) check-TESTS LOG_COMPILER="$(VALGRIND)" LOG_FLAGS="$(VALGRIND_FLAGS)"
+
+check: valgrind
+
+EXTRA_DIST += valgrind.suppressions
+endif
+
+
 if GCOV_ENABLED
 
 CLEANFILES = gcov-report.txt
diff --git a/test/valgrind.suppressions b/test/valgrind.suppressions
new file mode 100644
index 0000000..07fae53
--- /dev/null
+++ b/test/valgrind.suppressions
@@ -0,0 +1,22 @@
+{
+   <timer_create@@GLIBC_2.3.3>
+   Memcheck:Param
+   timer_create(evp)
+   fun:timer_create@@GLIBC_2.3.3
+   fun:srunner_run
+   fun:main
+}
+{
+   <ioctl_EVIOCGRAB_unaddressable_bytes>
+   Memcheck:Param
+   ioctl(generic)
+   fun:ioctl
+   fun:libevdev_grab
+}
+{
+   <ioctl_EVIOCREVOKE_unaddressable_bytes>
+   Memcheck:Param
+   ioctl(generic)
+   fun:ioctl
+   fun:test_revoke*
+}
-- 
1.9.0



More information about the Input-tools mailing list