AM_CONDITIONAL([DBUS_ENABLE_MODULAR_TESTS],
[test "x$enable_modular_tests" = xyes])
+AC_ARG_ENABLE([installed-tests],
+ AS_HELP_STRING([--enable-installed-tests],
+ [enable unit test code in the library and binaries]),
+ [], [enable_installed_tests=no])
+AM_CONDITIONAL([DBUS_ENABLE_INSTALLED_TESTS],
+ [test "x$enable_installed_tests" = xyes])
+
if test x$enable_verbose_mode = xyes; then
AC_DEFINE(DBUS_ENABLE_VERBOSE_MODE,1,[Support a verbose mode])
fi
spawn_test_LDADD=$(TEST_LIBS)
spawn_test_LDFLAGS=@R_DYNAMIC_LDFLAG@
-EXTRA_DIST=
+EXTRA_DIST = dbus-test-runner
-modular_tests = \
+testexecdir = $(libdir)/dbus-1.0/test
+
+testexec_PROGRAMS =
+
+installable_tests = \
test-corrupt \
- test-dbus-daemon \
test-loopback \
- test-relay
+ test-relay \
+ $(NULL)
+
+modular_tests = \
+ test-dbus-daemon
installcheck_tests =
installcheck_environment = \
if DBUS_ENABLE_MODULAR_TESTS
noinst_PROGRAMS += $(modular_tests)
TESTS += $(modular_tests)
+TESTS += $(installable_tests)
+installcheck_tests += $(installable_tests)
installcheck_tests += $(modular_tests)
+
+if DBUS_ENABLE_INSTALLED_TESTS
+ testexec_PROGRAMS += $(installable_tests)
+else !DBUS_ENABLE_INSTALLED_TESTS
+ testexec_PROGRAMS += $(installable_tests)
+endif !DBUS_ENABLE_INSTALLED_TESTS
+
endif DBUS_ENABLE_MODULAR_TESTS
installcheck-local:
$(MAKE) check-TESTS TESTS='$$(installcheck_tests)' \
TESTS_ENVIRONMENT='$$(installcheck_environment)'
+if DBUS_ENABLE_INSTALLED_TESTS
+ $(installcheck_environment) \
+ $(srcdir)/dbus-test-runner \
+ $(testexecdir) \
+ $(testexec_PROGRAMS)
+endif DBUS_ENABLE_INSTALLED_TESTS
## keep these in creation order, i.e. uppermost dirs first
TESTDIRS= \
--- /dev/null
+#!/bin/sh
+
+set -e
+
+dir="$1"
+shift
+
+if ! test -d "$dir"; then
+ echo "Usage: dbus-test-runner directory [executable...]"
+ exit 0
+fi
+
+passed=0
+failed=0
+skipped=0
+
+for prog in "$@"; do
+ e=0
+ "$dir/$prog" || e=$?
+ case $e in
+ (0)
+ echo "PASS: $prog"
+ passed=`expr $passed + 1`
+ ;;
+ (77)
+ echo "SKIP: $prog"
+ skipped=`expr $skipped + 1`
+ ;;
+ (*)
+ echo "FAIL: $prog"
+ failed=`expr $failed + 1`
+ ;;
+ esac
+done
+
+if test $failed = 0; then
+ # avoid saying "FAIL", to make it easy to grep results!
+ echo "PASSED $passed / SKIPPED $skipped"
+ exit 0
+else
+ echo "PASSED $passed / FAILED $failed / SKIPPED $skipped"
+ exit 1
+fi