From 09ff23c267f2b90576cb79c8d3187eda6cb435c8 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Thu, 31 Oct 2013 14:10:30 +0000 Subject: [PATCH 03/17] Use the Automake "parallel-tests" driver, albeit in non-parallel mode This seems perverse, but it means we invoke tests in the same way I want to use for other Telepathy projects, which will help when we want to merge their source trees together. Now that we can rely on having the parallel-tests setup, we can use AM_TESTS_ENVIRONMENT instead of TESTS_ENVIRONMENT (which is now reserved for the user, like CFLAGS), and we must use LOG_COMPILER rather than TESTS_ENVIRONMENT for "adverb" command prefixes. We no longer need to use test-wrapper.sh for the tests, because Automake has similar functionality built-in. On a buildbot or similar, use "make check VERBOSE=1" to cat the logs automatically. --- configure.ac | 2 +- tests/Makefile.am | 10 ++++++---- tests/dbus/Makefile.am | 23 ++++++++++++++--------- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/configure.ac b/configure.ac index 79783f6..472fc62 100644 --- a/configure.ac +++ b/configure.ac @@ -85,7 +85,7 @@ AC_CONFIG_HEADERS([config.h]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_AUX_DIR(.) -AM_INIT_AUTOMAKE(1.12 dist-bzip2 no-define no-dist-gzip tar-ustar -Wno-portability serial-tests) +AM_INIT_AUTOMAKE(1.12 dist-bzip2 no-define no-dist-gzip tar-ustar -Wno-portability parallel-tests) AC_SEARCH_LIBS([strerror],[cposix]) AC_PROG_CC AC_HEADER_STDC diff --git a/tests/Makefile.am b/tests/Makefile.am index 09a4989..880f02c 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,3 +1,7 @@ +# These tests aren't ready for parallel invocation yet: they all use +# the same log directory. +.NOTPARALLEL: + SUBDIRS = $(CHECKTWISTED) suppressions lib dbus EXTRA_DIST = logs @@ -19,19 +23,17 @@ AM_CFLAGS = \ -I$(top_builddir) \ $(NULL) -TESTS_ENVIRONMENT = \ +AM_TESTS_ENVIRONMENT = \ G_DEBUG=fatal-warnings,fatal-criticals \ TPL_TEST_MODE=true \ TEST_LOG_DIR=@abs_top_srcdir@/tests/logs \ - $(top_srcdir)/tools/test-wrapper.sh \ $(NULL) check-valgrind: $(TESTS) G_SLICE=always-malloc \ G_DEBUG=gc-friendly \ $(MAKE) \ - TESTS_ENVIRONMENT="$(TESTS_ENVIRONMENT) \ - libtool --mode=execute valgrind \ + LOG_COMPILER="libtool --mode=execute valgrind \ --leak-check=full \ --show-reachable=no \ --gen-suppressions=all \ diff --git a/tests/dbus/Makefile.am b/tests/dbus/Makefile.am index 36c39d0..3b837c5 100644 --- a/tests/dbus/Makefile.am +++ b/tests/dbus/Makefile.am @@ -1,3 +1,7 @@ +# These tests aren't ready for parallel invocation yet: they all use +# the same log directory. +.NOTPARALLEL: + noinst_PROGRAMS = \ test-entity \ test-log-manager \ @@ -35,7 +39,7 @@ AM_CFLAGS = \ -I$(top_srcdir)/tests $(NULL) -TESTS_ENVIRONMENT = \ +AM_TESTS_ENVIRONMENT = \ abs_top_builddir=@abs_top_builddir@ \ TPL_TEST_MODE=true \ TPL_TEST_LOG_DIR=@abs_top_srcdir@/tests/logs \ @@ -45,25 +49,26 @@ TESTS_ENVIRONMENT = \ G_SLICE=debug-blocks \ TPL_DEBUG=all \ G_DEBUG=fatal_warnings,fatal_criticals$(maybe_gc_friendly) \ - $(top_srcdir)/tools/test-wrapper.sh \ + $(NULL) + +LOG_COMPILER = \ sh $(top_srcdir)/tools/with-session-bus.sh \ --config-file=dbus-1/session.conf -- \ - $(EXTRA_TESTS_ENVIRONMENT) - -EXTRA_TESTS_ENVIRONMENT = + $(NULL) check-valgrind: $(MAKE) check-TESTS \ maybe_gc_friendly=,gc-friendly \ - TESTS_ENVIRONMENT="$(VALGRIND_TESTS_ENVIRONMENT)" + LOG_COMPILER="$(VALGRIND_LOG_COMPILER)" include $(top_srcdir)/tools/valgrind.mk -VALGRIND_TESTS_ENVIRONMENT = \ - $(TESTS_ENVIRONMENT) \ +VALGRIND_LOG_COMPILER = \ + $(LOG_COMPILER) \ env G_SLICE=always-malloc CHECK_VERBOSE=1 \ $(top_builddir)/libtool --mode=execute \ - $(VALGRIND) --suppressions=$(top_srcdir)/tests/suppressions/tpl.supp $(VALGRIND_FLAGS) + $(VALGRIND) --suppressions=$(top_srcdir)/tests/suppressions/tpl.supp $(VALGRIND_FLAGS) \ + $(NULL) BUILT_SOURCES = \ dbus-1/session.conf \ -- 1.8.4.rc3