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=""
run_tests = test-libevdev test-kernel
build_tests = test-compile-pedantic test-link
+EXTRA_DIST =
+
.NOTPARALLEL:
noinst_PROGRAMS = $(run_tests) $(build_tests)
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
--- /dev/null
+{
+ <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*
+}