diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | bus/Makefile.am | 2 | ||||
-rw-r--r-- | dbus/Makefile.am | 2 | ||||
-rw-r--r-- | test/Makefile.am | 75 | ||||
-rw-r--r-- | test/data/valid-config-files/session.conf | 31 | ||||
-rw-r--r-- | test/data/valid-config-files/system.conf | 20 | ||||
-rwxr-xr-x | test/fix-standard-tests.sh | 8 |
7 files changed, 68 insertions, 77 deletions
@@ -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 |