summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--bus/Makefile.am2
-rw-r--r--dbus/Makefile.am2
-rw-r--r--test/Makefile.am75
-rw-r--r--test/data/valid-config-files/session.conf31
-rw-r--r--test/data/valid-config-files/system.conf20
-rwxr-xr-xtest/fix-standard-tests.sh8
7 files changed, 68 insertions, 77 deletions
diff --git a/ChangeLog b/ChangeLog
index 2340ba96..025e50f7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2003-04-02 Havoc Pennington <hp@redhat.com>
+ * test/Makefile.am (all-local): add a rule to copy tests to
+ builddir, so we can have generated tests. Use this to remove the
+ silly hack for testing system.conf and session.conf. Will use this
+ shortly to generate .service files pointing to test binaries.
+
+2003-04-02 Havoc Pennington <hp@redhat.com>
+
* dbus/dbus-string.c (set_length): fix a bug - we allocated max of
current alloc and needed new length, not max of the doubled
allocation and needed new length. Also, when building tests,
diff --git a/bus/Makefile.am b/bus/Makefile.am
index 1b09c5c8..903195dd 100644
--- a/bus/Makefile.am
+++ b/bus/Makefile.am
@@ -65,7 +65,7 @@ dbus_daemon_1_LDADD= \
## so if adding tests not to be run in make check, don't add them to
## TESTS
if DBUS_BUILD_TESTS
-TESTS_ENVIRONMENT=DBUS_TEST_DATA=$(top_srcdir)/test/data
+TESTS_ENVIRONMENT=DBUS_TEST_DATA=$(top_builddir)/test/data
TESTS=bus-test
else
TESTS=
diff --git a/dbus/Makefile.am b/dbus/Makefile.am
index 9f2f2e7d..27293807 100644
--- a/dbus/Makefile.am
+++ b/dbus/Makefile.am
@@ -111,7 +111,7 @@ libdbus_1_la_LDFLAGS= -export-symbols-regex "^[^_].*"
## so if adding tests not to be run in make check, don't add them to
## TESTS
if DBUS_BUILD_TESTS
-TESTS_ENVIRONMENT=DBUS_TEST_DATA=$(top_srcdir)/test/data DBUS_TEST_HOMEDIR=$(top_builddir)/dbus
+TESTS_ENVIRONMENT=DBUS_TEST_DATA=$(top_builddir)/test/data DBUS_TEST_HOMEDIR=$(top_builddir)/dbus
TESTS=dbus-test
else
TESTS=
diff --git a/test/Makefile.am b/test/Makefile.am
index 5d67283b..3ca62d65 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -44,24 +44,67 @@ break_loader_LDADD= $(TEST_LIBS)
#bus_test_LDADD=$(TEST_LIBS) $(top_builddir)/bus/libdbus-daemon.la
spawn_test_LDADD=$(TEST_LIBS)
-EXTRA_DIST=fix-standard-tests.sh
+EXTRA_DIST=
+
+## 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 \
+ data/valid-config-files/basic.d
+
+FIND_TESTS=find -name "*.message" -o -name "*.message-raw" -o -name "*.auth-script" -o -name "*.sha1" -o -name "*.txt" -o -name "*.conf"
dist-hook:
- DIRS="data data/valid-messages data/invalid-messages data/incomplete-messages data/auth data/sha-1 data/valid-config-files"; \
- for D in $$DIRS; do \
- test -d $(distdir)/$$D || mkdir $(distdir)/$$D ; \
- done ; \
- FILES=`find -name "*.message" -o -name "*.message-raw" -o -name "*.auth-script" -o -name "*.sha1" -o -name "*.txt" -o -name "*.conf"` ; \
- for F in $$FILES; do \
- echo '-- Disting file '$$F ; \
- cp $$F $(distdir)/$$F ; \
+ for D in $(TESTDIRS); do \
+ test -d $(distdir)/$$D || mkdir $(distdir)/$$D || exit 1 ; \
+ done ; \
+ FILES=`$(FIND_TESTS)` ; \
+ for F in $$FILES; do \
+ echo '-- Disting file '$$F ; \
+ cp $$F $(distdir)/$$F || exit 1 ; \
done
+## copy tests to builddir so that generated tests and static tests
+## are all in one place.
+all-local:
+ for D in $(TESTDIRS); do \
+ test -d $(top_builddir)/test/$$D || mkdir $(top_builddir)/test/$$D || exit 1 ; \
+ done ; \
+ if test $(srcdir) != . ; then \
+ FILES=`(cd $(srcdir) && $(FIND_TESTS))` ; \
+ 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
-### we want our standard session.conf and system.conf in the test suite,
-### right now we manually sync copies of them over to the test suite
-### from time to time
-update-standard-tests:
- cp -f $(top_builddir)/bus/system.conf.in data/valid-config-files/system.conf ; \
- cp -f $(top_builddir)/bus/session.conf.in data/valid-config-files/session.conf ; \
- $(srcdir)/fix-standard-tests.sh
+## this doesn't clean generated test data files when srcdir=builddir
+clean-local:
+ if test $(srcdir) != . ; then \
+ FILES=`(cd $(top_builddir)/test && $(FIND_TESTS))` ; \
+ 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
diff --git a/test/data/valid-config-files/session.conf b/test/data/valid-config-files/session.conf
deleted file mode 100644
index fe7aa5f0..00000000
--- a/test/data/valid-config-files/session.conf
+++ /dev/null
@@ -1,31 +0,0 @@
-<!-- This configuration file controls the per-user-login-session message bus.
- Add a session-local.conf and edit that rather than changing this
- file directly. -->
-
-<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
- "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
-<busconfig>
- <!-- FIXME - this is fairly complicated to fix.
- Propose the following:
- - add "unix:tmpdir=/tmp" which means unix domain transport
- creates a socket with a random secure name
- - add dbus_server_get_address() that gets the actual
- server address
- - add command line option or env variable to the daemon
- causing it to print its list of addresses to a given
- file descriptor
- - session manager or whatever launches the session bus
- reads the address from there and sets the env variable
- -->
- <listen>unix:path=/tmp/foobar</listen>
- <policy context="default">
- <!-- Allow everything -->
- <allow send="*"/>
- <allow receive="*"/>
- <allow own="*"/>
- </policy>
-
- <!-- This is included last so local configuration can override what's
- in this standard file -->
- <include ignore_missing="yes">session-local.conf</include>
-</busconfig>
diff --git a/test/data/valid-config-files/system.conf b/test/data/valid-config-files/system.conf
deleted file mode 100644
index e2c7ab7f..00000000
--- a/test/data/valid-config-files/system.conf
+++ /dev/null
@@ -1,20 +0,0 @@
-<!-- This configuration file controls the systemwide message bus.
- Add a system-local.conf and edit that rather than changing this
- file directly. -->
-
-<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
- "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
-<busconfig>
- <user>fixme</user>
- <listen>unix:path=/var/run/dbus/system_bus_socket</listen>
- <policy context="default">
- <!-- Deny everything -->
- <deny send="*"/>
- <deny receive="*"/>
- <deny own="*"/>
- </policy>
-
- <!-- This is included last so local configuration can override what's
- in this standard file -->
- <include ignore_missing="yes">system-local.conf</include>
-</busconfig>
diff --git a/test/fix-standard-tests.sh b/test/fix-standard-tests.sh
deleted file mode 100755
index 80e6dae1..00000000
--- a/test/fix-standard-tests.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#! /bin/sh
-
-### this script is a lame hack used in the Makefile because
-### I couldn't figure out how to escape @EXPANDED_LOCALSTATEDIR@ etc.
-### inside the Makefile
-
-perl -pi -e "s%\@EXPANDED_LOCALSTATEDIR\@%/var%g" data/valid-config-files/system.conf
-perl -pi -e "s%\@DBUS_SYSTEM_SOCKET\@%run/dbus/system_bus_socket%g" data/valid-config-files/system.conf