SUBDIRS= . name-test
DIST_SUBDIRS=name-test
+CLEANFILES =
+EXTRA_DIST =
+
AM_CPPFLAGS = \
-I$(top_srcdir) \
$(DBUS_STATIC_BUILD_CPPFLAGS) \
$(top_builddir)/dbus/libdbus-internal.la \
$(NULL)
+TEST_EXTENSIONS = .sh
+
+LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/tap-driver.sh
+LOG_COMPILER = $(srcdir)/glib-tap-test.sh
+SH_LOG_DRIVER = $(LOG_DRIVER)
+SH_LOG_COMPILER = $(SHELL)
+EXTRA_DIST += glib-tap-test.sh
+
+TESTS =
+
if DBUS_ENABLE_EMBEDDED_TESTS
## break-loader removed for now
## these binaries are used in tests but are not themselves tests
## These are conceptually part of directories that come earlier in SUBDIRS
## order, but we don't want to run them til we arrive in this directory,
-## since they depend on stuff from this directory
-TESTS = \
- ../bus/test-bus$(EXEEXT) \
- ../dbus/test-dbus$(EXEEXT) \
- $(NULL)
+## since they depend on stuff from this directory. We wrap them in a
+## simple shell script to get TAP output.
+
+wrap_bus_tests = test-bus.sh
+wrap_dbus_tests = test-dbus.sh
if DBUS_UNIX
-TESTS += ../bus/test-bus-launch-helper$(EXEEXT)
-TESTS += ../bus/test-bus-system$(EXEEXT)
+wrap_bus_tests += test-bus-launch-helper.sh
+wrap_bus_tests += test-bus-system.sh
endif
+TESTS += $(wrap_bus_tests) $(wrap_dbus_tests)
+CLEANFILES += $(wrap_bus_tests) $(wrap_dbus_tests)
+EXTRA_DIST += tap-test.sh.in
+
+$(wrap_bus_tests): test-bus%.sh: ../bus/test-bus%$(EXEEXT) tap-test.sh.in Makefile
+ sed -e 's![@]RUN[@]!$<!' \
+ < $(srcdir)/tap-test.sh.in > $@
+
+$(wrap_dbus_tests): test-dbus%.sh: ../dbus/test-dbus%$(EXEEXT) tap-test.sh.in Makefile
+ sed -e 's![@]RUN[@]!$<!' \
+ < $(srcdir)/tap-test.sh.in > $@
+
else !DBUS_ENABLE_EMBEDDED_TESTS
TEST_BINARIES=
-TESTS=
endif !DBUS_ENABLE_EMBEDDED_TESTS
manual_tcp_SOURCES = manual-tcp.c
manual_tcp_LDADD = $(top_builddir)/dbus/libdbus-internal.la
-EXTRA_DIST = dbus-test-runner
+EXTRA_DIST += dbus-test-runner
testexecdir = $(libexecdir)/installed-tests/dbus
testmetadir = $(datadir)/installed-tests/dbus
$(NULL)
noinst_DATA = $(imported_data)
-CLEANFILES = \
+CLEANFILES += \
$(noinst_DATA) \
XDG_RUNTIME_DIR \
installable \
--- /dev/null
+#!/bin/sh
+
+# Wrapper to make an Automake-style test output TAP syntax:
+#
+# - arbitrary stdout/stderr is sent to stderr where it will not be
+# interpreted as TAP
+# - it is treated as a single test-case
+# - exit 77 is a skip
+# - exit 0 is a pass
+# - anything else is a failure
+#
+# Usage: use sed to replace @RUN@ with the shell command-line to be run.
+
+set -e
+
+# we plan to do 1 test-case
+echo "1..1"
+
+e=0
+@RUN@ >&2 || e=$?
+
+case "$e" in
+ (0)
+ echo "ok 1 @RUN@"
+ ;;
+ (77)
+ echo "ok 1 # SKIP @RUN@"
+ ;;
+ (*)
+ echo "not ok 1 @RUN@ (exit status $e)"
+ ;;
+esac