summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-04-03 00:01:15 +0000
committerHavoc Pennington <hp@redhat.com>2003-04-03 00:01:15 +0000
commit5364beac6cbfa8793fd34c7a634528a2112787f8 (patch)
tree90535da85e55879026dd91d91ea6df433f476836
parent21cef58bc1b46ba4d5e7371463920c7744904d32 (diff)
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.
-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