Makefile.am 12.4 KB
Newer Older
1 2
## 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.
3 4
## We want to build the current directory first to pick up the testutils lib
SUBDIRS= . name-test 
5
DIST_SUBDIRS=name-test
6

7
# CPPFLAGS for binaries that are normally dynamic
8 9
AM_CPPFLAGS = \
	-I$(top_srcdir) \
10
	$(DBUS_STATIC_BUILD_CPPFLAGS) \
11 12 13
	$(GLIB_CFLAGS) \
	$(DBUS_GLIB_CFLAGS) \
	$(NULL)
14

15 16 17
# improve backtraces from test stuff
AM_LDFLAGS = @R_DYNAMIC_LDFLAG@

18
# CPPFLAGS for binaries that are always static
19 20 21
static_cppflags = \
	$(AM_CPPFLAGS) \
	-DDBUS_STATIC_BUILD \
22
	-DDBUS_COMPILATION \
23
	-DDBUS_TEST_USE_INTERNAL \
24 25
	$(NULL)

26 27 28 29 30 31 32
noinst_LTLIBRARIES = libdbus-testutils-internal.la

# You can link either libdbus-testutils, dbus-glib and libdbus-1,
# or libdbus-testutils-internal and libdbus-internal - never both in the
# same binary.
if DBUS_WITH_DBUS_GLIB
noinst_LTLIBRARIES += libdbus-testutils.la
33 34 35 36 37
libdbus_testutils_la_SOURCES = \
	test-utils.c \
	test-utils.h \
	$(NULL)
libdbus_testutils_la_LIBADD = \
38 39 40
	$(top_builddir)/dbus/libdbus-1.la \
	$(GLIB_LIBS) \
	$(DBUS_GLIB_LIBS) \
41
	$(NULL)
42 43
testutils_shared_if_possible_cppflags = $(AM_CPPFLAGS)
testutils_shared_if_possible_libs = libdbus-testutils.la
44
else
45 46
testutils_shared_if_possible_cppflags = $(static_cppflags)
testutils_shared_if_possible_libs = libdbus-testutils-internal.la
47
endif
48

49 50 51 52 53 54 55 56 57 58
libdbus_testutils_internal_la_CPPFLAGS = \
	$(static_cppflags) \
	$(NULL)
libdbus_testutils_internal_la_SOURCES = \
	test-utils.c \
	test-utils.h \
	$(NULL)
libdbus_testutils_internal_la_LIBADD = \
	$(top_builddir)/dbus/libdbus-internal.la \
	$(NULL)
59

60
if DBUS_ENABLE_EMBEDDED_TESTS
61
## break-loader removed for now
62
## these binaries are used in tests but are not themselves tests
63
TEST_BINARIES = \
64
	test-spawn \
65 66 67 68 69 70 71
	test-exit \
	test-names \
	test-segfault \
	test-service \
	test-shell-service \
	test-sleep-forever \
	$(NULL)
72

73 74 75
## 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
76
TESTS = \
77
	../bus/test-bus$(EXEEXT) \
78
	../bus/test-bus-system$(EXEEXT) \
79
	../dbus/test-dbus$(EXEEXT) \
80 81
	$(NULL)

82
if DBUS_UNIX
83
TESTS += ../bus/test-bus-launch-helper$(EXEEXT)
84 85
endif

86
else !DBUS_ENABLE_EMBEDDED_TESTS
87

88
TEST_BINARIES=
89
TESTS=
90

91
endif !DBUS_ENABLE_EMBEDDED_TESTS
92

93
noinst_PROGRAMS= $(TEST_BINARIES)
94

95
test_service_CPPFLAGS = $(static_cppflags)
96
test_service_LDADD = libdbus-testutils-internal.la
97
test_names_CPPFLAGS = $(static_cppflags)
98
test_names_LDADD = libdbus-testutils-internal.la
99
## break_loader_CPPFLAGS = $(static_cppflags)
100
## break_loader_LDADD = $(top_builddir)/dbus/libdbus-internal.la
101
test_shell_service_CPPFLAGS = $(static_cppflags)
102
test_shell_service_LDADD = libdbus-testutils-internal.la
103 104 105
test_shell_SOURCES = shell-test.c
test_shell_CPPFLAGS = $(static_cppflags)
test_shell_LDADD = libdbus-testutils-internal.la
106 107 108
test_spawn_SOURCES = spawn-test.c
test_spawn_CPPFLAGS = $(static_cppflags)
test_spawn_LDADD = $(top_builddir)/dbus/libdbus-internal.la
109

110 111 112 113
test_printf_SOURCES = internals/printf.c
test_printf_CPPFLAGS = $(static_cppflags)
test_printf_LDADD = $(top_builddir)/dbus/libdbus-internal.la

114
test_refs_SOURCES = internals/refs.c
Simon McVittie's avatar
Simon McVittie committed
115
test_refs_CPPFLAGS = $(static_cppflags)
116
test_refs_LDADD = libdbus-testutils-internal.la $(GLIB_LIBS)
117

118
test_syslog_SOURCES = internals/syslog.c
119
test_syslog_CPPFLAGS = $(static_cppflags)
120
test_syslog_LDADD = libdbus-testutils-internal.la $(GLIB_LIBS)
121

122
EXTRA_DIST = dbus-test-runner
123

124 125 126 127 128
testexecdir = $(libdir)/dbus-1.0/test

testexec_PROGRAMS =

installable_tests = \
129
	test-shell \
130
	test-printf \
131
	$(NULL)
Ralf Habacker's avatar
Ralf Habacker committed
132
installable_manual_tests = \
133
	$(NULL)
134 135 136

if DBUS_WITH_GLIB
installable_tests += \
137
	test-corrupt \
138
	test-dbus-daemon \
139
	test-dbus-daemon-eavesdrop \
140
	test-loopback \
141
	test-marshal \
142
	test-refs \
143
	test-relay \
144
	test-syntax \
145
	test-syslog \
146
	$(NULL)
147 148 149
installable_manual_tests += \
	manual-authz \
	$(NULL)
150
endif DBUS_WITH_GLIB
151

152 153
installcheck_tests =
installcheck_environment = \
154
	XDG_RUNTIME_DIR=@abs_top_builddir@/test/XDG_RUNTIME_DIR \
155
	DBUS_TEST_DAEMON=$(DESTDIR)$(DBUS_DAEMONDIR)/dbus-daemon$(EXEEXT) \
156
	DBUS_TEST_HOMEDIR=@abs_top_builddir@/dbus \
157
	DBUS_TEST_SYSCONFDIR=$(DESTDIR)$(sysconfdir)
158

159
TESTS_ENVIRONMENT = \
160
	XDG_RUNTIME_DIR=@abs_top_builddir@/test/XDG_RUNTIME_DIR \
161
	DBUS_FATAL_WARNINGS=1 \
162
	DBUS_TEST_DAEMON=@abs_top_builddir@/bus/dbus-daemon$(EXEEXT) \
163 164 165
	DBUS_TEST_DATA=@abs_top_builddir@/test/data \
	DBUS_TEST_HOMEDIR=@abs_top_builddir@/dbus \
	$(NULL)
166

167
manual_authz_SOURCES = manual-authz.c
168
manual_authz_CPPFLAGS = $(testutils_shared_if_possible_cppflags)
169
manual_authz_LDADD = \
170
    $(testutils_shared_if_possible_libs) \
171
    $(GLIB_LIBS) \
172
    $(NULL)
173

174
test_corrupt_SOURCES = corrupt.c
175
test_corrupt_CPPFLAGS = $(testutils_shared_if_possible_cppflags)
176
test_corrupt_LDADD = \
177
    $(testutils_shared_if_possible_libs) \
178
    $(GLIB_LIBS) \
179
    $(NULL)
180

181
test_loopback_SOURCES = loopback.c
182
test_loopback_CPPFLAGS = $(testutils_shared_if_possible_cppflags)
183
test_loopback_LDADD = \
184
    $(testutils_shared_if_possible_libs) \
185
    $(GLIB_LIBS) \
186
    $(NULL)
187

188
test_relay_SOURCES = relay.c
189
test_relay_CPPFLAGS = $(testutils_shared_if_possible_cppflags)
190
test_relay_LDADD = \
191
    $(testutils_shared_if_possible_libs) \
192
    $(GLIB_LIBS) \
193
    $(NULL)
194

195
test_dbus_daemon_SOURCES = dbus-daemon.c
196
test_dbus_daemon_CPPFLAGS = $(testutils_shared_if_possible_cppflags)
197
test_dbus_daemon_LDADD = \
198
    $(testutils_shared_if_possible_libs) \
199
    $(GLIB_LIBS) \
200
    $(NULL)
201

202
test_dbus_daemon_eavesdrop_SOURCES = dbus-daemon-eavesdrop.c
203
test_dbus_daemon_eavesdrop_CPPFLAGS = $(testutils_shared_if_possible_cppflags)
204
test_dbus_daemon_eavesdrop_LDADD = \
205
    $(testutils_shared_if_possible_libs) \
206
    $(GLIB_LIBS) \
207
    $(NULL)
208

209
test_marshal_SOURCES = marshal.c
210 211
test_marshal_LDADD = \
    $(top_builddir)/dbus/libdbus-1.la \
212
    $(GLIB_LIBS) \
213
    $(NULL)
214

215
test_syntax_SOURCES = syntax.c
216 217 218 219
test_syntax_LDADD = \
    $(top_builddir)/dbus/libdbus-1.la \
    $(GLIB_LIBS) \
    $(NULL)
220

221
if DBUS_ENABLE_MODULAR_TESTS
222 223 224 225
TESTS += $(installable_tests)
installcheck_tests += $(installable_tests)

if DBUS_ENABLE_INSTALLED_TESTS
226
  testexec_PROGRAMS += $(installable_tests) $(installable_manual_tests)
227
else !DBUS_ENABLE_INSTALLED_TESTS
228
  noinst_PROGRAMS += $(installable_tests) $(installable_manual_tests)
229 230
endif !DBUS_ENABLE_INSTALLED_TESTS

231 232
endif DBUS_ENABLE_MODULAR_TESTS

233 234 235
# 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.
236 237 238
installcheck-local:
	$(MAKE) check-TESTS TESTS='$$(installcheck_tests)' \
		TESTS_ENVIRONMENT='$$(installcheck_environment)'
239
if DBUS_ENABLE_INSTALLED_TESTS
240
	test -n "$(DESTDIR)" || \
241 242 243 244 245
	$(installcheck_environment) \
		$(srcdir)/dbus-test-runner \
		$(testexecdir) \
		$(testexec_PROGRAMS)
endif DBUS_ENABLE_INSTALLED_TESTS
246

247 248 249 250 251
in_data = \
	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/debug-allow-all-sha1.conf.in \
	data/valid-config-files/debug-allow-all.conf.in \
252
	data/valid-config-files/incoming-limit.conf.in \
253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345
	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 = \
	name-test/tmp-session-like-system.conf \
	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/external-failed.auth-script \
	data/auth/external-root.auth-script \
	data/auth/external-silly.auth-script \
	data/auth/external-successful.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/incomplete-messages/missing-body.message \
	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/not-well-formed.conf \
	data/invalid-config-files/truncated-file.conf \
	data/invalid-messages/array-of-nil.message \
	data/invalid-messages/array-with-mixed-types.message \
	data/invalid-messages/bad-boolean-array.message \
	data/invalid-messages/bad-boolean.message \
	data/invalid-messages/bad-endian.message \
	data/invalid-messages/bad-header-field-alignment.message \
	data/invalid-messages/boolean-has-no-value.message-raw \
	data/invalid-messages/local-namespace.message \
	data/invalid-messages/no-dot-in-name.message \
	data/invalid-messages/not-nul-header-padding.message \
	data/invalid-messages/overlong-name.message \
	data/invalid-messages/too-little-header-padding.message \
	data/invalid-messages/too-much-header-padding-by-far.message \
	data/invalid-messages/too-much-header-padding.message \
	data/invalid-messages/too-short-dict.message \
	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/valid-config-files/basic.conf \
	data/valid-config-files/basic.d/basic.conf \
	data/valid-config-files/entities.conf \
	data/valid-config-files/many-rules.conf \
	data/valid-config-files/system.d/test.conf \
	data/valid-messages/array-of-array-of-uint32.message \
	data/valid-messages/dict-simple.message \
	data/valid-messages/dict.message \
	data/valid-messages/emptiness.message \
	data/valid-messages/lots-of-arguments.message \
	data/valid-messages/no-padding.message \
	data/valid-messages/opposite-endian.message \
	data/valid-messages/recursive-types.message \
	data/valid-messages/simplest-manual.message \
	data/valid-messages/simplest.message \
	data/valid-messages/standard-acquire-service.message \
	data/valid-messages/standard-hello.message \
	data/valid-messages/standard-list-services.message \
	data/valid-messages/standard-service-exists.message \
	data/valid-messages/unknown-header-field.message \
	$(NULL)

EXTRA_DIST += $(static_data)

## copy tests to builddir so that generated tests and static tests
346 347
## are all in one place.
all-local:
348
	$(AM_V_at)$(MKDIR_P) data/valid-config-files/session.d
349 350 351 352 353
	$(AM_V_at)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 \
354
			$(MKDIR_P) $${F%/*}; \
355
			rm -f $$F; \
356
			cp $(srcdir)/$$F $$F; \
357 358 359 360
		done; \
	fi

## this doesn't clean most copied test data files when srcdir=builddir
361
clean-local:
362 363 364 365
	$(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); \
366
	fi
367 368 369 370 371 372 373

imported_data = \
	data/valid-config-files/session.conf \
	data/valid-config-files/system.conf \
	$(NULL)

noinst_DATA = $(imported_data)
374
CLEANFILES = $(noinst_DATA) XDG_RUNTIME_DIR
375

376
$(imported_data): data/valid-config-files/%.conf: $(top_builddir)/bus/%.conf
377 378
	$(AM_V_at)$(MKDIR_P) data/valid-config-files
	$(AM_V_GEN)cp $< $@