[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