Makefile.am 8.5 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 
John Palmieri's avatar
John Palmieri committed
5
DIST_SUBDIRS=name-test
6

7
INCLUDES=-I$(top_srcdir) $(DBUS_TEST_CFLAGS) 
8

9 10 11
libdbus_testutils_la_SOURCES = test-utils.h test-utils.c

noinst_LTLIBRARIES = libdbus-testutils.la
12

13
if DBUS_BUILD_TESTS
14
## break-loader removed for now
15
## most of these binaries are used in tests but are not themselves tests
16 17 18 19 20 21 22 23 24 25
TEST_BINARIES = \
	shell-test \
	spawn-test \
	test-exit \
	test-names \
	test-segfault \
	test-service \
	test-shell-service \
	test-sleep-forever \
	$(NULL)
26

27 28
## these are the things to run in make check (i.e. they are actual tests)
## (binaries in here must also be in TEST_BINARIES)
29 30 31 32
TESTS = \
	shell-test \
	$(NULL)

33 34 35 36
## 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 += \
37 38 39
	../bus/bus-test$(EXEEXT) \
	../bus/bus-test-system$(EXEEXT) \
	../dbus/dbus-test$(EXEEXT) \
40 41
	$(NULL)

42 43 44 45
if DBUS_UNIX
TESTS += ../bus/bus-test-launch-helper$(EXEEXT)
endif

46 47
else !DBUS_BUILD_TESTS

48
TEST_BINARIES=
49
TESTS=
50 51

endif !DBUS_BUILD_TESTS
52

53
noinst_PROGRAMS= $(TEST_BINARIES)
54

55
test_service_SOURCES=				\
56
	test-service.c
57

58
test_names_SOURCES=				\
59
	test-names.c
60

61 62
##break_loader_SOURCES=				\
##	break-loader.c
63

64
test_shell_service_SOURCES =			\
65
	test-shell-service.c
66 67 68 69

shell_test_SOURCES=                             \
        shell-test.c

70 71 72
spawn_test_SOURCES=				\
	spawn-test.c

73 74 75 76 77 78 79 80 81
test_exit_SOURCES =				\
	test-exit.c

test_segfault_SOURCES =				\
	test-segfault.c

test_sleep_forever_SOURCES =			\
	test-sleep-forever.c

82 83
# This assumes that most tests will be linked to libdbus-internal;
# tests linked to only the public libdbus have their own CPPFLAGS.
84
AM_CPPFLAGS=-DDBUS_STATIC_BUILD
85
TEST_LIBS=$(top_builddir)/dbus/libdbus-internal.la $(DBUS_TEST_LIBS)
86

87
test_service_LDADD=libdbus-testutils.la $(TEST_LIBS)
88
test_service_LDFLAGS=@R_DYNAMIC_LDFLAG@
89
test_names_LDADD=libdbus-testutils.la $(TEST_LIBS)
90
test_names_LDFLAGS=@R_DYNAMIC_LDFLAG@
91
## break_loader_LDADD= $(TEST_LIBS)
92
## break_loader_LDFLAGS=@R_DYNAMIC_LDFLAG@
93
test_shell_service_LDADD=libdbus-testutils.la $(TEST_LIBS)
94
test_shell_service_LDFLAGS=@R_DYNAMIC_LDFLAG@
95
shell_test_LDADD=libdbus-testutils.la $(TEST_LIBS)
96
shell_test_LDFLAGS=@R_DYNAMIC_LDFLAG@
97
spawn_test_LDADD=$(TEST_LIBS)
98
spawn_test_LDFLAGS=@R_DYNAMIC_LDFLAG@
99

100
EXTRA_DIST = dbus-test-runner
101

102 103 104 105 106
testexecdir = $(libdir)/dbus-1.0/test

testexec_PROGRAMS =

installable_tests = \
107
	test-corrupt \
108
	test-dbus-daemon \
109
	test-dbus-daemon-eavesdrop \
110
	test-loopback \
111
	test-marshal \
112 113 114
	test-relay \
	$(NULL)

115 116 117
installcheck_tests =
installcheck_environment = \
	DBUS_TEST_DAEMON=$(DESTDIR)$(DBUS_DAEMONDIR)/dbus-daemon$(EXEEXT) \
118
	DBUS_TEST_SYSCONFDIR=$(DESTDIR)$(sysconfdir)
119

120
TESTS_ENVIRONMENT = \
121 122
	DBUS_BLOCK_ON_ABORT=1 \
	DBUS_FATAL_WARNINGS=1 \
123
	DBUS_TEST_DAEMON=@abs_top_builddir@/bus/dbus-daemon$(EXEEXT) \
124 125 126
	DBUS_TEST_DATA=@abs_top_builddir@/test/data \
	DBUS_TEST_HOMEDIR=@abs_top_builddir@/dbus \
	$(NULL)
127

128 129 130 131 132 133 134
test_corrupt_SOURCES = corrupt.c
test_corrupt_CPPFLAGS = $(GLIB_CFLAGS) $(DBUS_GLIB_CFLAGS)
test_corrupt_LDFLAGS = @R_DYNAMIC_LDFLAG@
test_corrupt_LDADD = $(top_builddir)/dbus/libdbus-1.la \
    $(GLIB_LIBS) \
    $(DBUS_GLIB_LIBS)

135 136 137 138 139 140 141
test_loopback_SOURCES = loopback.c
test_loopback_CPPFLAGS = $(GLIB_CFLAGS) $(DBUS_GLIB_CFLAGS)
test_loopback_LDFLAGS = @R_DYNAMIC_LDFLAG@
test_loopback_LDADD = $(top_builddir)/dbus/libdbus-1.la \
    $(GLIB_LIBS) \
    $(DBUS_GLIB_LIBS)

142 143 144 145 146 147 148
test_relay_SOURCES = relay.c
test_relay_CPPFLAGS = $(GLIB_CFLAGS) $(DBUS_GLIB_CFLAGS)
test_relay_LDFLAGS = @R_DYNAMIC_LDFLAG@
test_relay_LDADD = $(top_builddir)/dbus/libdbus-1.la \
    $(GLIB_LIBS) \
    $(DBUS_GLIB_LIBS)

149 150 151 152
test_dbus_daemon_SOURCES = dbus-daemon.c
test_dbus_daemon_CPPFLAGS = $(GLIB_CFLAGS) $(DBUS_GLIB_CFLAGS)
test_dbus_daemon_LDFLAGS = @R_DYNAMIC_LDFLAG@
test_dbus_daemon_LDADD = $(top_builddir)/dbus/libdbus-1.la \
153 154 155
    $(GLIB_LIBS) \
    $(DBUS_GLIB_LIBS)

156 157 158 159 160 161 162
test_dbus_daemon_eavesdrop_SOURCES = dbus-daemon-eavesdrop.c
test_dbus_daemon_eavesdrop_CPPFLAGS = $(GLIB_CFLAGS) $(DBUS_GLIB_CFLAGS)
test_dbus_daemon_eavesdrop_LDFLAGS = @R_DYNAMIC_LDFLAG@
test_dbus_daemon_eavesdrop_LDADD = $(top_builddir)/dbus/libdbus-1.la \
    $(GLIB_LIBS) \
    $(DBUS_GLIB_LIBS)

163 164 165 166
test_marshal_SOURCES = marshal.c
test_marshal_CPPFLAGS = $(GLIB_CFLAGS) $(DBUS_GLIB_CFLAGS)
test_marshal_LDFLAGS = @R_DYNAMIC_LDFLAG@
test_marshal_LDADD = $(top_builddir)/dbus/libdbus-1.la \
167 168 169
    $(GLIB_LIBS) \
    $(DBUS_GLIB_LIBS)

170
if DBUS_ENABLE_MODULAR_TESTS
171 172 173 174 175 176
TESTS += $(installable_tests)
installcheck_tests += $(installable_tests)

if DBUS_ENABLE_INSTALLED_TESTS
  testexec_PROGRAMS += $(installable_tests)
else !DBUS_ENABLE_INSTALLED_TESTS
177
  noinst_PROGRAMS += $(installable_tests)
178 179
endif !DBUS_ENABLE_INSTALLED_TESTS

180 181
endif DBUS_ENABLE_MODULAR_TESTS

182 183 184
# 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.
185 186 187
installcheck-local:
	$(MAKE) check-TESTS TESTS='$$(installcheck_tests)' \
		TESTS_ENVIRONMENT='$$(installcheck_environment)'
188
if DBUS_ENABLE_INSTALLED_TESTS
189
	test -n "$(DESTDIR)" || \
190 191 192 193 194
	$(installcheck_environment) \
		$(srcdir)/dbus-test-runner \
		$(testexecdir) \
		$(testexec_PROGRAMS)
endif DBUS_ENABLE_INSTALLED_TESTS
195

196 197 198 199 200 201 202 203 204
## keep these in creation order, i.e. uppermost dirs first 
TESTDIRS=					\
	data					\
	data/valid-messages			\
	data/invalid-messages			\
	data/incomplete-messages		\
	data/auth				\
	data/sha-1				\
	data/valid-config-files			\
205
	data/valid-config-files-system		\
206
	data/valid-config-files/basic.d		\
207
	data/valid-config-files/session.d	\
208
	data/valid-config-files/system.d	\
209
	data/valid-service-files		\
210 211
	data/valid-service-files-system		\
	data/invalid-service-files-system	\
212
	data/invalid-config-files		\
213
	data/invalid-config-files-system	\
214 215 216 217 218 219
	data/equiv-config-files			\
	data/equiv-config-files/basic		\
	data/equiv-config-files/basic/basic.d	\
	data/equiv-config-files/entities	\
	data/equiv-config-files/entities/basic.d

220

221
FIND_TESTS=find . -type f -a \( -name "*.message" -o -name "*.message-raw" -o -name "*.auth-script" -o -name "*.sha1" -o -name "*.txt" -o -name "*.conf" -o -name "*.service" \)
222

223
dist-hook:
224 225 226
	for D in $(TESTDIRS); do						\
		test -d $(distdir)/$$D || mkdir $(distdir)/$$D || exit 1 ;	\
	done ;									\
227
	FILES=`(cd $(srcdir) && $(FIND_TESTS) -o -name "*.in" -a -not -name Makefile.in | grep -Ev "(.svn|CVS)" )` ;					\
228
        for F in $$FILES; do							\
229 230 231 232 233 234 235 236 237 238 239
		B=`basename $$F`; \
		if test -e $$F.in; then \
			echo "-- Skipping file $$F (.in version exists)"; \
		elif test "x$$B" = xrun-with-tmp-session-bus.conf; then \
			echo "-- Skipping file $$F (generated)"; \
		elif test -e "$(top_srcdir)/bus/$$B"; then \
			echo "-- Skipping file $$F (from /bus/)"; \
		else \
			echo '-- Disting file '$$F ; \
			cp -f $(srcdir)/$$F $(distdir)/$$F || exit 1; \
		fi; \
240
	done
241

242 243 244
## copy tests to builddir so that generated tests and static tests 
## are all in one place.
all-local:
245
	$(AM_V_at)for D in $(TESTDIRS); do								\
246 247
		test -d $(top_builddir)/test/$$D || mkdir $(top_builddir)/test/$$D || exit 1 ;	\
	done ;											\
248
	if ! (test $(srcdir) = . || test $(srcdir) -ef .) ; then								\
249
		FILES=`(cd $(srcdir) && $(FIND_TESTS) | grep -Ev "(.svn|CVS)" )` ;					\
250 251 252 253 254 255 256 257 258 259 260 261 262
	        for F in $$FILES; do								\
			SRC=$(srcdir)/$$F ;							\
			DEST=$(top_builddir)/test/$$F ;						\
	                echo '-- Copying test file '$$F ;					\
			cp $$SRC $$DEST || exit 1 ;						\
			chmod u+w $$DEST || exit 1 ;						\
		done ;										\
	else											\
		echo '-- No need to copy test data as srcdir = builddir' ;			\
	fi ;											\
	echo '-- Copying' $(top_builddir)/bus/*.conf 'to test directory' ;			\
	cp $(top_builddir)/bus/*.conf $(top_builddir)/test/data/valid-config-files || exit 1 ;  \
	chmod u+w $(top_builddir)/test/data/valid-config-files/*.conf || exit 1
263

264 265 266
## this doesn't clean generated test data files when srcdir=builddir
clean-local:
	if test $(srcdir) != . ; then					\
267
		FILES=`(cd $(top_builddir)/test && $(FIND_TESTS) | grep -Ev "(.svn|CVS)" )` ;	\
268 269 270 271 272 273 274 275 276 277 278 279 280
	        for F in $$FILES; do					\
			DEST=$(top_builddir)/test/$$F ;			\
	                echo '-- Deleting test file '$$F ;		\
			rm $$DEST || exit 1 ;				\
		done ;							\
		REVERSEDIRS= ;						\
		for D in $(TESTDIRS); do				\
			REVERSEDIRS="$$D $$REVERSEDIRS" ;		\
		done ;							\
		for D in $$REVERSEDIRS; do				\
			rmdir $(top_builddir)/test/$$D || exit 1 ;	\
		done ;							\
	fi