mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-01-03 01:00:12 +01:00
This is really three separate test-cases: one for traditional activation as a direct child process of the dbus-daemon, and two for traditional activation (successful and failing) via the setuid dbus-daemon-launch-helper on Unix. The ones where activation succeeds extremely slow, as a result of the instrumentation for simulating malloc() failures combined with a large number of memory operations, particularly when using AddressSanitizer. Splitting up "OOM" tests like these has a disproportionately good impact on the time they take, because the simulated malloc() failure instrumentation repeats the entire test making the first malloc() fail, then making the second malloc() fail, and so on. For allocation failures in the second half of the test, this means we repeat the first half of the test with no malloc() failures a very large number of times, which is not a good use of time, because we already tested it successfully. Even when not using the "OOM" instrumentation, splitting up these tests lets them run in parallel, which is also a major time saving. Needless to say, this speeds up testing considerably. On my modern but unexceptional x86 laptop, in a typical debug build with Meson, the old dispatch test took just over 21 minutes, which drops to about 40 seconds each for the new normal-activation and helper-activation tests (and for most of that time, they're running in parallel, so the wall-clock time taken for the whole test suite is somewhere around a minute). In a debug build with Meson, gcc and AddressSanitizer, the old dispatch test takes longer than my patience will allow, and the new separate tests take about 5-6 minutes each. Reduce their timeout accordingly, but not as far as the default for slow tests (5 minutes) to allow some headroom for AddressSanitizer or slower systems. The failed-helper-activation test is almost instantaneous, and no longer needs to be marked as slow. Signed-off-by: Simon McVittie <smcv@collabora.com>
891 lines
28 KiB
Makefile
891 lines
28 KiB
Makefile
## the "name-test" subdir in fact contains a bunch of tests now that need a temporary bus
|
|
## to be running to do stuff with. The directory should be renamed.
|
|
## We want to build the current directory first to pick up the testutils lib
|
|
SUBDIRS= . name-test
|
|
DIST_SUBDIRS=name-test
|
|
|
|
CLEANFILES =
|
|
EXTRA_DIST =
|
|
|
|
AM_CPPFLAGS = \
|
|
$(CODE_COVERAGE_CPPFLAGS) \
|
|
-I$(top_srcdir) \
|
|
$(DBUS_STATIC_BUILD_CPPFLAGS) \
|
|
-DDBUS_COMPILATION \
|
|
$(APPARMOR_CFLAGS) \
|
|
$(GLIB_CFLAGS) \
|
|
$(GIO_UNIX_CFLAGS) \
|
|
$(VALGRIND_CFLAGS) \
|
|
$(NULL)
|
|
|
|
# improve backtraces from test stuff
|
|
AM_LDFLAGS = @R_DYNAMIC_LDFLAG@
|
|
|
|
AM_CFLAGS = \
|
|
$(CODE_COVERAGE_CFLAGS) \
|
|
$(SANITIZE_CFLAGS) \
|
|
$(NULL)
|
|
|
|
noinst_LTLIBRARIES = libdbus-testutils.la
|
|
|
|
libdbus_testutils_la_SOURCES = \
|
|
disable-crash-handling.c \
|
|
disable-crash-handling.h \
|
|
test-utils.c \
|
|
test-utils.h \
|
|
$(NULL)
|
|
|
|
if DBUS_WITH_GLIB
|
|
libdbus_testutils_la_SOURCES += \
|
|
test-utils-glib.c \
|
|
test-utils-glib.h \
|
|
$(NULL)
|
|
endif
|
|
|
|
libdbus_testutils_la_LIBADD = \
|
|
$(CODE_COVERAGE_LIBS) \
|
|
$(top_builddir)/dbus/libdbus-1.la \
|
|
$(top_builddir)/dbus/libdbus-internal.la \
|
|
$(NULL)
|
|
|
|
TEST_EXTENSIONS = .sh
|
|
|
|
LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/build-aux/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
|
|
EXTRA_DIST += tap-test.sh.in
|
|
|
|
TESTS =
|
|
noinst_PROGRAMS =
|
|
|
|
if DBUS_ENABLE_EMBEDDED_TESTS
|
|
|
|
uninstallable_test_programs =
|
|
|
|
## break-loader removed for now
|
|
## these binaries are used in tests but are not themselves tests
|
|
TEST_BINARIES = \
|
|
test-exit \
|
|
test-names \
|
|
test-privserver \
|
|
test-segfault \
|
|
test-shell-service \
|
|
$(NULL)
|
|
|
|
if !DBUS_WINCE
|
|
if ENABLE_TRADITIONAL_ACTIVATION
|
|
uninstallable_test_programs += test-spawn-oom
|
|
endif ENABLE_TRADITIONAL_ACTIVATION
|
|
endif !DBUS_WINCE
|
|
|
|
if ENABLE_TRADITIONAL_ACTIVATION
|
|
TEST_BINARIES += test-spawn
|
|
endif
|
|
|
|
uninstallable_test_programs += \
|
|
test-platform-mutex \
|
|
test-bus \
|
|
test-bus-dispatch-sha1 \
|
|
test-marshal-recursive \
|
|
test-message-internals \
|
|
$(NULL)
|
|
|
|
if ENABLE_TRADITIONAL_ACTIVATION
|
|
uninstallable_test_programs += test-normal-activation
|
|
endif
|
|
|
|
if DBUS_UNIX
|
|
if ENABLE_TRADITIONAL_ACTIVATION
|
|
uninstallable_test_programs += test-bus-launch-helper-oom
|
|
uninstallable_test_programs += test-bus-system
|
|
uninstallable_test_programs += test-failed-helper-activation
|
|
uninstallable_test_programs += test-helper-activation
|
|
# this is used by the tests but is not, itself, a test
|
|
TEST_BINARIES += dbus-daemon-launch-helper-for-tests
|
|
endif ENABLE_TRADITIONAL_ACTIVATION
|
|
endif DBUS_UNIX
|
|
|
|
noinst_PROGRAMS += $(uninstallable_test_programs)
|
|
TESTS += $(uninstallable_test_programs)
|
|
|
|
else !DBUS_ENABLE_EMBEDDED_TESTS
|
|
|
|
TEST_BINARIES=
|
|
|
|
endif !DBUS_ENABLE_EMBEDDED_TESTS
|
|
|
|
test_atomic_SOURCES = internals/atomic.c
|
|
test_atomic_LDADD = libdbus-testutils.la
|
|
|
|
noinst_PROGRAMS += $(TEST_BINARIES)
|
|
|
|
# This helper is meant to crash, so if we're compiling the rest with
|
|
# AddressSanitizer, we need to stop it from catching the SIGSEGV and
|
|
# turning it into _exit(1); so don't give it SANITIZE_CFLAGS.
|
|
# CODE_COVERAGE_CFLAGS are fairly pointless here, too.
|
|
test_segfault_CFLAGS =
|
|
|
|
test_service_LDADD = libdbus-testutils.la
|
|
test_names_LDADD = libdbus-testutils.la
|
|
test_privserver_LDADD = libdbus-testutils.la
|
|
## break_loader_LDADD = $(top_builddir)/dbus/libdbus-internal.la
|
|
test_shell_service_LDADD = libdbus-testutils.la
|
|
test_shell_SOURCES = shell-test.c
|
|
test_shell_LDADD = libdbus-testutils.la
|
|
|
|
if ENABLE_TRADITIONAL_ACTIVATION
|
|
test_spawn_SOURCES = spawn-test.c
|
|
test_spawn_LDADD = $(top_builddir)/dbus/libdbus-internal.la
|
|
test_spawn_oom_SOURCES = internals/spawn-oom.c
|
|
test_spawn_oom_LDADD = libdbus-testutils.la
|
|
endif
|
|
|
|
test_assertions_SOURCES = internals/assertions.c
|
|
test_assertions_LDADD = libdbus-testutils.la $(GLIB_LIBS)
|
|
|
|
test_printf_SOURCES = internals/printf.c
|
|
test_printf_LDADD = libdbus-testutils.la
|
|
|
|
test_refs_SOURCES = internals/refs.c
|
|
test_refs_LDADD = libdbus-testutils.la $(GLIB_LIBS)
|
|
|
|
# We have to compile a separate copy of disable-crash-handling.c for
|
|
# test-segfault rather than using libdbus-testutils.la, because
|
|
# otherwise it would fail to link when using the AddressSanitizer.
|
|
test_segfault_SOURCES = \
|
|
disable-crash-handling.c \
|
|
disable-crash-handling.h \
|
|
test-segfault.c \
|
|
$(NULL)
|
|
# Deliberately not adding CODE_COVERAGE_LIBS here because we really
|
|
# don't care about coverage for the test program that segfaults!
|
|
|
|
test_server_oom_SOURCES = internals/server-oom.c
|
|
test_server_oom_LDADD = libdbus-testutils.la $(GLIB_LIBS)
|
|
|
|
test_sysdeps_SOURCES = internals/sysdeps.c
|
|
test_sysdeps_LDADD = libdbus-testutils.la $(GLIB_LIBS)
|
|
|
|
test_syslog_SOURCES = internals/syslog.c
|
|
test_syslog_LDADD = libdbus-testutils.la $(GLIB_LIBS)
|
|
|
|
test_variant_SOURCES = internals/variant.c
|
|
test_variant_LDADD = libdbus-testutils.la $(GLIB_LIBS)
|
|
|
|
manual_backtrace_SOURCES = manual-backtrace.c
|
|
manual_backtrace_LDADD = $(top_builddir)/dbus/libdbus-1.la
|
|
|
|
manual_dir_iter_SOURCES = manual-dir-iter.c
|
|
manual_dir_iter_LDADD = $(top_builddir)/dbus/libdbus-internal.la
|
|
|
|
manual_paths_SOURCES = manual-paths.c
|
|
manual_paths_LDADD = libdbus-testutils.la
|
|
|
|
manual_tcp_SOURCES = manual-tcp.c
|
|
manual_tcp_LDADD = $(top_builddir)/dbus/libdbus-internal.la
|
|
|
|
test_bus_launch_helper_oom_SOURCES = bus/launch-helper-oom.c
|
|
test_bus_launch_helper_oom_LDADD = \
|
|
$(top_builddir)/bus/liblaunch-helper-internal.la \
|
|
libdbus-testutils.la \
|
|
$(NULL)
|
|
|
|
dbus_daemon_launch_helper_for_tests_SOURCES = bus/launch-helper-for-tests.c
|
|
dbus_daemon_launch_helper_for_tests_LDADD = \
|
|
$(CODE_COVERAGE_LIBS) \
|
|
$(top_builddir)/bus/liblaunch-helper-internal.la \
|
|
$(NULL)
|
|
|
|
test_bus_system_SOURCES = bus/system.c
|
|
test_bus_system_LDADD = \
|
|
$(top_builddir)/bus/liblaunch-helper-internal.la \
|
|
libdbus-testutils.la \
|
|
$(NULL)
|
|
|
|
test_bus_SOURCES = bus/main.c bus/common.c bus/common.h
|
|
test_bus_LDADD = \
|
|
$(top_builddir)/bus/libdbus-daemon-internal.la \
|
|
libdbus-testutils.la \
|
|
$(NULL)
|
|
|
|
test_bus_dispatch_sha1_SOURCES = bus/dispatch-sha1.c bus/common.c bus/common.h
|
|
test_bus_dispatch_sha1_LDADD = \
|
|
$(top_builddir)/bus/libdbus-daemon-internal.la \
|
|
libdbus-testutils.la \
|
|
$(NULL)
|
|
|
|
test_hash_SOURCES = internals/hash.c
|
|
test_hash_LDADD = libdbus-testutils.la
|
|
|
|
test_failed_helper_activation_SOURCES = \
|
|
bus/failed-helper-activation.c \
|
|
bus/common.c \
|
|
bus/common.h \
|
|
$(NULL)
|
|
test_failed_helper_activation_LDADD = \
|
|
$(top_builddir)/bus/libdbus-daemon-internal.la \
|
|
libdbus-testutils.la \
|
|
$(NULL)
|
|
|
|
test_helper_activation_SOURCES = \
|
|
bus/helper-activation.c \
|
|
bus/common.c \
|
|
bus/common.h \
|
|
$(NULL)
|
|
test_helper_activation_LDADD = \
|
|
$(top_builddir)/bus/libdbus-daemon-internal.la \
|
|
libdbus-testutils.la \
|
|
$(NULL)
|
|
|
|
test_marshal_recursive_SOURCES = \
|
|
internals/dbus-marshal-recursive-util.c \
|
|
internals/dbus-marshal-recursive-util.h \
|
|
internals/marshal-recursive.c \
|
|
$(NULL)
|
|
test_marshal_recursive_LDADD = libdbus-testutils.la
|
|
|
|
test_message_internals_SOURCES = \
|
|
internals/dbus-marshal-recursive-util.c \
|
|
internals/dbus-marshal-recursive-util.h \
|
|
internals/dbus-message-factory.c \
|
|
internals/dbus-message-factory.h \
|
|
internals/dbus-message-util.c \
|
|
internals/dbus-message-util.h \
|
|
internals/message-internals.c \
|
|
$(NULL)
|
|
test_message_internals_LDADD = libdbus-testutils.la
|
|
|
|
test_misc_internals_SOURCES = \
|
|
internals/address.c \
|
|
internals/dbus-auth-script.c \
|
|
internals/dbus-auth-script.h \
|
|
internals/dbus-auth-util.c \
|
|
internals/dbus-credentials-util.c \
|
|
internals/dbus-marshal-byteswap-util.c \
|
|
internals/dbus-marshal-recursive-util.c \
|
|
internals/dbus-marshal-recursive-util.h \
|
|
internals/dbus-marshal-validate-util.c \
|
|
internals/dbus-string-util.c \
|
|
internals/dbus-sysdeps-util.c \
|
|
internals/mempool.c \
|
|
internals/misc-internals.c \
|
|
internals/misc-internals.h \
|
|
internals/sha.c \
|
|
$(NULL)
|
|
test_misc_internals_LDADD = libdbus-testutils.la
|
|
|
|
test_normal_activation_SOURCES = \
|
|
bus/normal-activation.c \
|
|
bus/common.c \
|
|
bus/common.h \
|
|
$(NULL)
|
|
test_normal_activation_LDADD = \
|
|
$(top_builddir)/bus/libdbus-daemon-internal.la \
|
|
libdbus-testutils.la \
|
|
$(NULL)
|
|
|
|
test_platform_mutex_SOURCES = test-platform-mutex.c
|
|
test_platform_mutex_LDADD = \
|
|
$(top_builddir)/dbus/libdbus-internal.la \
|
|
libdbus-testutils.la \
|
|
$(NULL)
|
|
|
|
EXTRA_DIST += dbus-test-runner
|
|
|
|
testexecdir = $(libexecdir)/installed-tests/dbus
|
|
testmetadir = $(datadir)/installed-tests/dbus
|
|
|
|
nobase_dist_testexec_SCRIPTS =
|
|
nobase_testexec_PROGRAMS =
|
|
nobase_testmeta_DATA =
|
|
|
|
installable_helpers = \
|
|
test-service \
|
|
test-sleep-forever \
|
|
$(NULL)
|
|
installable_tests = \
|
|
test-atomic \
|
|
test-hash \
|
|
test-shell \
|
|
test-misc-internals \
|
|
test-printf \
|
|
$(NULL)
|
|
installable_manual_tests = \
|
|
manual-backtrace \
|
|
manual-dir-iter \
|
|
manual-tcp \
|
|
$(NULL)
|
|
dist_installable_test_scripts = \
|
|
$(NULL)
|
|
dist_installed_test_scripts = \
|
|
$(NULL)
|
|
|
|
if DBUS_WIN
|
|
installable_manual_tests += manual-paths
|
|
endif
|
|
|
|
if DBUS_WITH_GLIB
|
|
installable_tests += \
|
|
test-assertions \
|
|
test-corrupt \
|
|
test-dbus-daemon \
|
|
test-dbus-daemon-eavesdrop \
|
|
test-desktop-file \
|
|
test-fdpass \
|
|
test-header-fields \
|
|
test-message \
|
|
test-monitor \
|
|
test-loopback \
|
|
test-marshal \
|
|
test-refs \
|
|
test-relay \
|
|
test-server-oom \
|
|
test-syntax \
|
|
test-sysdeps \
|
|
test-syslog \
|
|
test-uid-permissions \
|
|
test-variant \
|
|
$(NULL)
|
|
|
|
if DBUS_UNIX
|
|
# These binaries are used in tests but are not themselves tests
|
|
installable_helpers += \
|
|
test-apparmor-activation \
|
|
$(NULL)
|
|
|
|
installable_tests += \
|
|
test-containers \
|
|
test-sd-activation \
|
|
$(NULL)
|
|
|
|
dist_installable_test_scripts += \
|
|
test-dbus-daemon-fork.sh \
|
|
$(NULL)
|
|
|
|
# Only runnable when installed, not from the source tree
|
|
dist_installed_test_scripts += \
|
|
integration/transient-services.sh \
|
|
test-apparmor-activation.sh \
|
|
$(NULL)
|
|
|
|
# Testing dbus-launch relies on special code in that binary.
|
|
if DBUS_ENABLE_EMBEDDED_TESTS
|
|
dist_installable_test_scripts += \
|
|
test-dbus-launch-eval.sh \
|
|
$(NULL)
|
|
|
|
if DBUS_ENABLE_X11_AUTOLAUNCH
|
|
dist_installable_test_scripts += \
|
|
test-dbus-launch-x11.sh \
|
|
$(NULL)
|
|
endif DBUS_ENABLE_X11_AUTOLAUNCH
|
|
endif DBUS_ENABLE_EMBEDDED_TESTS
|
|
|
|
endif DBUS_UNIX
|
|
|
|
installable_manual_tests += \
|
|
manual-authz \
|
|
manual-test-thread-blocking \
|
|
$(NULL)
|
|
endif DBUS_WITH_GLIB
|
|
|
|
installable_test_meta = \
|
|
$(dist_installable_test_scripts:=.test) \
|
|
$(dist_installed_test_scripts:=.test) \
|
|
$(installable_tests:=.test) \
|
|
$(NULL)
|
|
installable_test_meta_with_config = \
|
|
$(dist_installable_test_scripts:=_with_config.test) \
|
|
$(dist_installed_test_scripts:=_with_config.test) \
|
|
$(installable_tests:=_with_config.test) \
|
|
$(NULL)
|
|
|
|
installcheck_tests =
|
|
installcheck_environment = \
|
|
export XDG_DATA_HOME=@abs_top_builddir@/test/XDG_DATA_HOME; \
|
|
export XDG_DATA_DIRS=@abs_top_builddir@/test/XDG_DATA_DIRS:$(DESTDIR)$(datadir); \
|
|
export XDG_RUNTIME_DIR=@abs_top_builddir@/test/XDG_RUNTIME_DIR; \
|
|
export DBUS_SESSION_BUS_ADDRESS=do-not-use-real-session:; \
|
|
export DBUS_TEST_DAEMON=$(DESTDIR)$(DBUS_DAEMONDIR)/dbus-daemon$(EXEEXT); \
|
|
export DBUS_TEST_DBUS_LAUNCH=$(DESTDIR)$(bindir)/dbus-launch$(EXEEXT); \
|
|
export DBUS_TEST_DBUS_MONITOR=$(DESTDIR)$(bindir)/dbus-monitor$(EXEEXT); \
|
|
export DBUS_TEST_DBUS_SEND=$(DESTDIR)$(bindir)/dbus-send$(EXEEXT); \
|
|
export DBUS_TEST_DBUS_UUIDGEN=$(DESTDIR)$(bindir)/dbus-uuidgen$(EXEEXT); \
|
|
export DBUS_TEST_EXEC=@abs_top_builddir@/test; \
|
|
export DBUS_TEST_HOMEDIR=@abs_top_builddir@/dbus; \
|
|
export DBUS_TEST_DATADIR=$(DESTDIR)$(datadir); \
|
|
export DBUS_TEST_UNINSTALLED=1; \
|
|
export HOME=@abs_top_builddir@/dbus; \
|
|
${NULL}
|
|
|
|
# Tests in bus/config-parser.c rely on these specific values for XDG_* and
|
|
# DBUS_TEST_BUILDDIR.
|
|
AM_TESTS_ENVIRONMENT = \
|
|
export XDG_DATA_HOME=@abs_top_builddir@/test/XDG_DATA_HOME; \
|
|
export XDG_DATA_DIRS=@abs_top_builddir@/test/XDG_DATA_DIRS:@abs_top_builddir@/test/XDG_DATA_DIRS2; \
|
|
export XDG_RUNTIME_DIR=@abs_top_builddir@/test/XDG_RUNTIME_DIR; \
|
|
export DBUS_FATAL_WARNINGS=1; \
|
|
export DBUS_SESSION_BUS_ADDRESS=do-not-use-real-session:; \
|
|
export DBUS_TEST_BUILDDIR=@abs_builddir@; \
|
|
export DBUS_TEST_SRCDIR=@abs_srcdir@; \
|
|
export DBUS_TEST_DAEMON=@abs_top_builddir@/bus/dbus-daemon$(EXEEXT); \
|
|
export DBUS_TEST_DBUS_LAUNCH=@abs_top_builddir@/tools/dbus-launch$(EXEEXT); \
|
|
export DBUS_TEST_DBUS_MONITOR=@abs_top_builddir@/tools/dbus-monitor$(EXEEXT); \
|
|
export DBUS_TEST_DBUS_SEND=@abs_top_builddir@/tools/dbus-send$(EXEEXT); \
|
|
export DBUS_TEST_DBUS_UUIDGEN=@abs_top_builddir@/tools/dbus-uuidgen$(EXEEXT); \
|
|
export DBUS_TEST_DATA=@abs_top_builddir@/test/data; \
|
|
export DBUS_TEST_EXEC=@abs_top_builddir@/test; \
|
|
export DBUS_TEST_HOMEDIR=@abs_top_builddir@/dbus; \
|
|
export DBUS_TEST_UNINSTALLED=1; \
|
|
export HOME=@abs_top_builddir@/dbus; \
|
|
$(NULL)
|
|
|
|
manual_authz_SOURCES = manual-authz.c
|
|
manual_authz_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
|
|
if DBUS_UNIX
|
|
test_apparmor_activation_CPPFLAGS = \
|
|
$(AM_CPPFLAGS) \
|
|
-DDBUS_TEST_APPARMOR_ACTIVATION \
|
|
$(NULL)
|
|
test_apparmor_activation_SOURCES = \
|
|
sd-activation.c \
|
|
$(NULL)
|
|
test_apparmor_activation_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(APPARMOR_LIBS) \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
endif
|
|
|
|
test_containers_SOURCES = containers.c
|
|
test_containers_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
|
|
test_corrupt_SOURCES = corrupt.c
|
|
test_corrupt_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
|
|
test_loopback_SOURCES = loopback.c
|
|
test_loopback_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
|
|
test_relay_SOURCES = relay.c
|
|
test_relay_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
|
|
test_dbus_daemon_SOURCES = dbus-daemon.c
|
|
test_dbus_daemon_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(GLIB_LIBS) \
|
|
$(GIO_UNIX_LIBS) \
|
|
$(NULL)
|
|
|
|
test_dbus_daemon_eavesdrop_SOURCES = dbus-daemon-eavesdrop.c
|
|
test_dbus_daemon_eavesdrop_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
|
|
test_desktop_file_SOURCES = \
|
|
internals/desktop-file.c \
|
|
$(NULL)
|
|
test_desktop_file_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(top_builddir)/dbus/libdbus-internal.la \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
|
|
test_header_fields_SOURCES = \
|
|
header-fields.c \
|
|
$(NULL)
|
|
test_header_fields_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(top_builddir)/dbus/libdbus-internal.la \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
|
|
if DBUS_UNIX
|
|
test_sd_activation_SOURCES = \
|
|
sd-activation.c \
|
|
$(NULL)
|
|
test_sd_activation_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
endif
|
|
|
|
test_marshal_SOURCES = marshal.c
|
|
test_marshal_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
|
|
test_message_SOURCES = \
|
|
message.c \
|
|
$(NULL)
|
|
test_message_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(top_builddir)/dbus/libdbus-internal.la \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
|
|
test_monitor_SOURCES = \
|
|
monitor.c \
|
|
$(NULL)
|
|
test_monitor_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
|
|
test_syntax_SOURCES = syntax.c
|
|
test_syntax_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
|
|
manual_test_thread_blocking_SOURCES = thread-blocking.c
|
|
manual_test_thread_blocking_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
|
|
test_uid_permissions_SOURCES = \
|
|
uid-permissions.c \
|
|
$(NULL)
|
|
test_uid_permissions_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
|
|
test_fdpass_SOURCES = \
|
|
fdpass.c \
|
|
$(NULL)
|
|
test_fdpass_LDADD = \
|
|
libdbus-testutils.la \
|
|
$(GLIB_LIBS) \
|
|
$(NULL)
|
|
|
|
TESTS += $(dist_installable_test_scripts)
|
|
installcheck_tests += $(dist_installable_test_scripts)
|
|
|
|
if DBUS_ENABLE_MODULAR_TESTS
|
|
TESTS += $(installable_tests)
|
|
installcheck_tests += $(installable_tests)
|
|
|
|
if DBUS_ENABLE_INSTALLED_TESTS
|
|
nobase_testexec_PROGRAMS += $(installable_helpers)
|
|
nobase_testexec_PROGRAMS += $(installable_manual_tests)
|
|
nobase_testexec_PROGRAMS += $(installable_tests)
|
|
nobase_dist_testexec_SCRIPTS += $(dist_installed_test_scripts)
|
|
nobase_dist_testexec_SCRIPTS += $(dist_installable_test_scripts)
|
|
|
|
nobase_testmeta_DATA += $(installable_test_meta)
|
|
nobase_testmeta_DATA += $(installable_test_meta_with_config)
|
|
else !DBUS_ENABLE_INSTALLED_TESTS
|
|
noinst_PROGRAMS += $(installable_helpers)
|
|
noinst_PROGRAMS += $(installable_manual_tests)
|
|
noinst_PROGRAMS += $(installable_tests)
|
|
endif !DBUS_ENABLE_INSTALLED_TESTS
|
|
|
|
else !DBUS_ENABLE_MODULAR_TESTS
|
|
|
|
if DBUS_ENABLE_EMBEDDED_TESTS
|
|
noinst_PROGRAMS += $(installable_helpers)
|
|
endif DBUS_ENABLE_EMBEDDED_TESTS
|
|
|
|
endif !DBUS_ENABLE_MODULAR_TESTS
|
|
|
|
# If we're installing the tests into a DESTDIR we can't run them
|
|
# again using the installed copy, because we don't know how to
|
|
# do a portable equivalent of setting LD_LIBRARY_PATH.
|
|
installcheck-local:
|
|
$(MAKE) check-TESTS TESTS='$$(installcheck_tests)' \
|
|
AM_TESTS_ENVIRONMENT='$$(installcheck_environment)'
|
|
if DBUS_ENABLE_INSTALLED_TESTS
|
|
test -n "$(DESTDIR)" || { \
|
|
$(installcheck_environment) \
|
|
$(srcdir)/dbus-test-runner \
|
|
$(testexecdir) \
|
|
$(installable_tests); }
|
|
endif DBUS_ENABLE_INSTALLED_TESTS
|
|
|
|
in_data = \
|
|
data/dbus-installed-tests.aaprofile.in \
|
|
data/systemd-activation/com.example.ReceiveDeniedByAppArmorLabel.service.in \
|
|
data/systemd-activation/com.example.SendDeniedByAppArmorLabel.service.in \
|
|
data/systemd-activation/com.example.SendDeniedByNonexistentAppArmorLabel.service.in \
|
|
data/systemd-activation/com.example.SystemdActivatable3.service.in \
|
|
data/valid-config-files-system/debug-allow-all-fail.conf.in \
|
|
data/valid-config-files-system/debug-allow-all-pass.conf.in \
|
|
data/valid-config-files/as-another-user.conf.in \
|
|
data/valid-config-files/count-fds.conf.in \
|
|
data/valid-config-files/debug-allow-all-sha1.conf.in \
|
|
data/valid-config-files/debug-allow-all.conf.in \
|
|
data/valid-config-files/finite-timeout.conf.in \
|
|
data/valid-config-files/forbidding.conf.in \
|
|
data/valid-config-files/incoming-limit.conf.in \
|
|
data/valid-config-files/limit-containers.conf.in \
|
|
data/valid-config-files/listen-autolaunch-win.conf.in \
|
|
data/valid-config-files/max-completed-connections.conf.in \
|
|
data/valid-config-files/max-connections-per-user.conf.in \
|
|
data/valid-config-files/max-containers.conf.in \
|
|
data/valid-config-files/max-match-rules-per-connection.conf.in \
|
|
data/valid-config-files/max-names-per-connection.conf.in \
|
|
data/valid-config-files/max-replies-per-connection.conf.in \
|
|
data/valid-config-files/multi-user.conf.in \
|
|
data/valid-config-files/pending-fd-timeout.conf.in \
|
|
data/valid-config-files/send-destination-prefix-rules.conf.in \
|
|
data/valid-config-files/systemd-activation.conf.in \
|
|
data/valid-config-files/tmp-session.conf.in \
|
|
data/valid-config-files-system/tmp-session-like-system.conf.in \
|
|
data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoExec.service.in \
|
|
data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoService.service.in \
|
|
data/invalid-service-files-system/org.freedesktop.DBus.TestSuiteNoUser.service.in \
|
|
data/valid-service-files-system/org.freedesktop.DBus.TestSuiteEchoService.service.in \
|
|
data/valid-service-files-system/org.freedesktop.DBus.TestSuiteSegfaultService.service.in \
|
|
data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service.in \
|
|
data/valid-service-files-system/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service.in \
|
|
data/valid-service-files/org.freedesktop.DBus.TestSuite.PrivServer.service.in \
|
|
data/valid-service-files/org.freedesktop.DBus.TestSuiteEchoService.service.in \
|
|
data/valid-service-files/org.freedesktop.DBus.TestSuiteForkingEchoService.service.in \
|
|
data/valid-service-files/org.freedesktop.DBus.TestSuiteSegfaultService.service.in \
|
|
data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceFail.service.in \
|
|
data/valid-service-files/org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess.service.in \
|
|
$(NULL)
|
|
|
|
EXTRA_DIST += $(in_data)
|
|
|
|
static_data = \
|
|
data/auth/anonymous-client-successful.auth-script \
|
|
data/auth/anonymous-server-successful.auth-script \
|
|
data/auth/cancel.auth-script \
|
|
data/auth/client-out-of-mechanisms.auth-script \
|
|
data/auth/cookie-sha1-username.auth-script \
|
|
data/auth/cookie-sha1.auth-script \
|
|
data/auth/external-auto.auth-script \
|
|
data/auth/external-failed.auth-script \
|
|
data/auth/external-root.auth-script \
|
|
data/auth/external-silly.auth-script \
|
|
data/auth/external-successful.auth-script \
|
|
data/auth/external-username.auth-script \
|
|
data/auth/extra-bytes.auth-script \
|
|
data/auth/fail-after-n-attempts.auth-script \
|
|
data/auth/fallback.auth-script \
|
|
data/auth/invalid-command-client.auth-script \
|
|
data/auth/invalid-command.auth-script \
|
|
data/auth/invalid-hex-encoding.auth-script \
|
|
data/auth/mechanisms.auth-script \
|
|
data/equiv-config-files/basic/basic-1.conf \
|
|
data/equiv-config-files/basic/basic-2.conf \
|
|
data/equiv-config-files/basic/basic.d/basic.conf \
|
|
data/equiv-config-files/entities/basic.d/basic.conf \
|
|
data/equiv-config-files/entities/entities-1.conf \
|
|
data/equiv-config-files/entities/entities-2.conf \
|
|
data/invalid-config-files/apparmor-bad-attribute.conf \
|
|
data/invalid-config-files/apparmor-bad-mode.conf \
|
|
data/invalid-config-files/bad-attribute.conf \
|
|
data/invalid-config-files/bad-attribute-2.conf \
|
|
data/invalid-config-files/bad-element.conf \
|
|
data/invalid-config-files/bad-limit.conf \
|
|
data/invalid-config-files/badselinux-1.conf \
|
|
data/invalid-config-files/badselinux-2.conf \
|
|
data/invalid-config-files/circular-1.conf \
|
|
data/invalid-config-files/circular-2.conf \
|
|
data/invalid-config-files/circular-3.conf \
|
|
data/invalid-config-files/double-attribute.conf \
|
|
data/invalid-config-files/impossible-send.conf \
|
|
data/invalid-config-files/limit-no-name.conf \
|
|
data/invalid-config-files/ludicrous-limit.conf \
|
|
data/invalid-config-files/negative-limit.conf \
|
|
data/invalid-config-files/non-numeric-limit.conf \
|
|
data/invalid-config-files/not-well-formed.conf \
|
|
data/invalid-config-files/policy-bad-at-console.conf \
|
|
data/invalid-config-files/policy-bad-attribute.conf \
|
|
data/invalid-config-files/policy-bad-context.conf \
|
|
data/invalid-config-files/policy-bad-rule-attribute.conf \
|
|
data/invalid-config-files/policy-contradiction.conf \
|
|
data/invalid-config-files/policy-member-no-path.conf \
|
|
data/invalid-config-files/policy-mixed.conf \
|
|
data/invalid-config-files/policy-no-attributes.conf \
|
|
data/invalid-config-files/policy-no-rule-attribute.conf \
|
|
data/invalid-config-files/truncated-file.conf \
|
|
data/invalid-config-files/send-and-receive.conf \
|
|
data/invalid-config-files/unknown-limit.conf \
|
|
data/invalid-messages/boolean-has-no-value.message-raw \
|
|
data/sha-1/Readme.txt \
|
|
data/sha-1/bit-hashes.sha1 \
|
|
data/sha-1/bit-messages.sha1 \
|
|
data/sha-1/byte-hashes.sha1 \
|
|
data/sha-1/byte-messages.sha1 \
|
|
data/systemd-activation/com.example.ReceiveDenied.service \
|
|
data/systemd-activation/com.example.SendDenied.service \
|
|
data/systemd-activation/com.example.SendDeniedByAppArmorName.service \
|
|
data/systemd-activation/com.example.SendPrefixDenied.service \
|
|
data/systemd-activation/com.example.SendPrefixDenied.internal.service \
|
|
data/systemd-activation/com.example.SendPrefixDenied.SendPrefixAllowed.internal.service \
|
|
data/systemd-activation/com.example.SystemdActivatable1.service \
|
|
data/systemd-activation/com.example.SystemdActivatable2.service \
|
|
data/systemd-activation/org.freedesktop.systemd1.service \
|
|
data/valid-config-files/basic.conf \
|
|
data/valid-config-files/basic.d/basic.conf \
|
|
data/valid-config-files/check-own-rules.conf \
|
|
data/valid-config-files/entities.conf \
|
|
data/valid-config-files/listen-unix-runtime.conf \
|
|
data/valid-config-files/many-rules.conf \
|
|
data/valid-config-files/minimal.conf \
|
|
data/valid-config-files/standard-session-dirs.conf \
|
|
data/valid-config-files-system/many-rules.conf \
|
|
data/valid-config-files-system/system.d/test.conf \
|
|
$(NULL)
|
|
|
|
EXTRA_DIST += $(static_data)
|
|
|
|
## copy tests to builddir so that generated tests and static tests
|
|
## are all in one place.
|
|
## Note that we can't create the XDG_RUNTIME_DIR with permissions 0700
|
|
## on MSYS2, which rejects attempts to change permissions, hence "|| true".
|
|
all-local: copy-config-local uninstalled-config-local
|
|
$(AM_V_at)$(MKDIR_P) XDG_RUNTIME_DIR
|
|
$(AM_V_at)chmod 0700 XDG_RUNTIME_DIR || true
|
|
|
|
copy-config-local:
|
|
$(AM_V_at)$(MKDIR_P) data/valid-config-files/session.d
|
|
$(AM_V_GEN)set -e; \
|
|
if test $(srcdir) = . || test $(srcdir) -ef .; then \
|
|
echo '-- No need to copy test data as srcdir = builddir'; \
|
|
else \
|
|
for F in $(static_data); do \
|
|
$(MKDIR_P) "$${F%/*}"; \
|
|
rm -f "$$F"; \
|
|
cp $(srcdir)/"$$F" "$$F"; \
|
|
done; \
|
|
fi
|
|
|
|
uninstalled-config-local:
|
|
$(AM_V_GEN)set -e; \
|
|
for F in $(in_data); do \
|
|
$(MKDIR_P) "$${F%/*}"; \
|
|
sed \
|
|
-e 's,[@]DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL[@],$(DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL),' \
|
|
-e 's,[@]DBUS_SESSION_BUS_LISTEN_ADDRESS[@],$(DBUS_SESSION_BUS_LISTEN_ADDRESS),' \
|
|
-e 's,[@]DBUS_TEST_DATA[@],@abs_builddir@/data,' \
|
|
-e 's,[@]DBUS_TEST_EXEC[@],@abs_builddir@,' \
|
|
-e 's,[@]DBUS_USER[@],$(DBUS_USER),' \
|
|
-e 's,[@]EXEEXT[@],$(EXEEXT),' \
|
|
-e 's,[@]TEST_LAUNCH_HELPER_BINARY[@],@abs_top_builddir@/test/dbus-daemon-launch-helper-for-tests$(EXEEXT),' \
|
|
-e 's,[@]TEST_LISTEN[@],$(TEST_LISTEN),' \
|
|
< $(srcdir)/"$$F" > "$${F%.in}"; \
|
|
done
|
|
|
|
installable-config-local:
|
|
if DBUS_ENABLE_INSTALLED_TESTS
|
|
$(AM_V_GEN)set -e; \
|
|
for F in $(in_data); do \
|
|
$(MKDIR_P) "installable/$${F%/*}"; \
|
|
sed \
|
|
-e 's,[@]DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL[@],$(DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL),' \
|
|
-e 's,[@]DBUS_SESSION_BUS_LISTEN_ADDRESS[@],$(DBUS_SESSION_BUS_LISTEN_ADDRESS),' \
|
|
-e 's,[@]DBUS_TEST_DATA[@],$(testexecdir)/data,' \
|
|
-e 's,[@]DBUS_TEST_EXEC[@],$(testexecdir),' \
|
|
-e 's,[@]DBUS_USER[@],$(DBUS_USER),' \
|
|
-e 's,[@]EXEEXT[@],$(EXEEXT),' \
|
|
-e 's,[@]TEST_LAUNCH_HELPER_BINARY[@],/bin/false,' \
|
|
-e 's,[@]TEST_LISTEN[@],$(TEST_LISTEN),' \
|
|
< $(srcdir)/"$$F" > "installable/$${F%.in}"; \
|
|
done
|
|
else
|
|
@:
|
|
endif
|
|
|
|
|
|
install-data-local: install-config-local
|
|
@:
|
|
|
|
install-config-local: installable-config-local
|
|
if DBUS_ENABLE_INSTALLED_TESTS
|
|
$(AM_V_GEN)set -e; \
|
|
for F in $(static_data); do \
|
|
install -d "$(DESTDIR)$(testexecdir)/$${F%/*}"; \
|
|
install -m644 "$(srcdir)/$$F" "$(DESTDIR)$(testexecdir)/$$F"; \
|
|
done; \
|
|
for F in $(in_data); do \
|
|
install -d "$(DESTDIR)$(testexecdir)/$${F%/*}"; \
|
|
install -m644 "installable/$${F%.in}" "$(DESTDIR)$(testexecdir)/$${F%.in}"; \
|
|
done
|
|
ln -nfs $(datadir)/dbus-1/session.conf $(DESTDIR)$(testexecdir)/data/valid-config-files/session.conf
|
|
ln -nfs $(datadir)/dbus-1/system.conf $(DESTDIR)$(testexecdir)/data/valid-config-files-system/system.conf
|
|
else
|
|
@:
|
|
endif
|
|
|
|
## this doesn't clean most copied test data files when srcdir=builddir
|
|
clean-local:
|
|
$(AM_V_at)if test $(srcdir) = . || test $(srcdir) -ef .; then \
|
|
echo '-- No need to clean test data as srcdir = builddir'; \
|
|
else \
|
|
rm -f $(static_data); \
|
|
for F in $(in_data); do \
|
|
rm -f "$${F%.in}"; \
|
|
done; \
|
|
fi
|
|
rm -fr ./XDG_RUNTIME_DIR ./installable
|
|
|
|
imported_data = \
|
|
data/valid-config-files/session.conf \
|
|
data/valid-config-files-system/system.conf \
|
|
$(NULL)
|
|
|
|
noinst_DATA = $(imported_data)
|
|
CLEANFILES += \
|
|
$(noinst_DATA) \
|
|
$(NULL)
|
|
|
|
data/valid-config-files/session.conf: $(top_builddir)/bus/session.conf
|
|
$(AM_V_at)$(MKDIR_P) data/valid-config-files
|
|
$(AM_V_GEN)cp $< $@
|
|
|
|
data/valid-config-files-system/system.conf: $(top_builddir)/bus/system.conf
|
|
$(AM_V_at)$(MKDIR_P) data/valid-config-files-system
|
|
$(AM_V_GEN)cp $< $@
|
|
|
|
$(installable_test_meta): %.test: %$(EXEEXT) Makefile
|
|
$(AM_V_at)$(MKDIR_P) $(dir $@)
|
|
$(AM_V_GEN) ( \
|
|
echo '[Test]'; \
|
|
echo 'Type=session'; \
|
|
echo 'Output=TAP'; \
|
|
echo 'Exec=env $(testexecdir)/$* --tap'; \
|
|
) > $@.tmp && mv $@.tmp $@
|
|
|
|
$(installable_test_meta_with_config): %_with_config.test: %$(EXEEXT) Makefile
|
|
$(AM_V_at)$(MKDIR_P) $(dir $@)
|
|
$(AM_V_GEN) ( \
|
|
echo '[Test]'; \
|
|
echo 'Type=session'; \
|
|
echo 'Output=TAP'; \
|
|
echo 'Exec=env DBUS_TEST_EXEC=$(testexecdir) DBUS_TEST_DATA=$(testexecdir)/data $(testexecdir)/$* --tap'; \
|
|
) > $@.tmp && mv $@.tmp $@
|
|
|
|
EXTRA_DIST += data/copy_data_for_tests.py
|
|
EXTRA_DIST += data/installable/meson.build
|
|
EXTRA_DIST += data/meson.build
|
|
EXTRA_DIST += meson.build
|
|
EXTRA_DIST += meta_template.test.in
|
|
EXTRA_DIST += mkdir-m700.py
|
|
|
|
# Add rules for code-coverage testing, as defined by AX_CODE_COVERAGE
|
|
include $(top_srcdir)/aminclude_static.am
|