summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--configure.in4
-rw-r--r--tools/dbus-launch.c21
-rwxr-xr-xtools/run-with-tmp-session-bus.sh1
4 files changed, 36 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 2f238ced..2722f329 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2006-10-26 John (J5) Palmieri <johnp@redhat.com>
+
+ * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
+ if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
+
+ * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
+ before we run dbus-launch
+
+ * configure.in: define TEST_BUS_BINARY to be the full path to
+ dbus-daemon in the build root
+
2006-10-25 Sjoerd Simons <sjoerd@luon.net>
* dbus/Makefile.am:
diff --git a/configure.in b/configure.in
index 0a5fdbb4..9efd8178 100644
--- a/configure.in
+++ b/configure.in
@@ -1138,6 +1138,10 @@ TEST_PATH(EXIT_BINARY, test-exit)
TEST_PATH(SEGFAULT_BINARY, test-segfault)
TEST_PATH(SLEEP_FOREVER_BINARY, test-sleep-forever)
+AC_DEFINE_UNQUOTED(TEST_BUS_BINARY, "$DBUS_PWD/bus/dbus-daemon",
+ [Full path to the daemon in the builddir])
+AC_SUBST(TEST_BUS_BINARY)
+
#### Find socket directories
if ! test -z "$TMPDIR" ; then
DEFAULT_SOCKET_DIR=$TMPDIR
diff --git a/tools/dbus-launch.c b/tools/dbus-launch.c
index 7838fd8e..7e53e7e2 100644
--- a/tools/dbus-launch.c
+++ b/tools/dbus-launch.c
@@ -886,7 +886,26 @@ main (int argc, char **argv)
"%d", bus_address_to_launcher_pipe[WRITE_END]);
verbose ("Calling exec()\n");
-
+
+#ifdef DBUS_BUILD_TESTS
+ /* exec from testdir */
+ if (getenv("DBUS_USE_TEST_BINARY") != NULL)
+ {
+ execl (TEST_BUS_BINARY,
+ TEST_BUS_BINARY,
+ "--fork",
+ "--print-pid", write_pid_fd_as_string,
+ "--print-address", write_address_fd_as_string,
+ config_file ? "--config-file" : "--session",
+ config_file, /* has to be last in this varargs list */
+ NULL);
+
+ fprintf (stderr,
+ "Failed to execute test message bus daemon %s: %s. Will try again with the system path.\n",
+ TEST_BUS_BINARY, strerror (errno));
+ }
+ #endif /* DBUS_BUILD_TESTS */
+
execl (DBUS_DAEMONDIR"/dbus-daemon",
DBUS_DAEMONDIR"/dbus-daemon",
"--fork",
diff --git a/tools/run-with-tmp-session-bus.sh b/tools/run-with-tmp-session-bus.sh
index b72a56a5..3ef3b39e 100755
--- a/tools/run-with-tmp-session-bus.sh
+++ b/tools/run-with-tmp-session-bus.sh
@@ -47,6 +47,7 @@ unset DBUS_SESSION_BUS_PID
echo "Running $DBUS_TOP_BUILDDIR/tools/dbus-launch --sh-syntax --config-file=$CONFIG_FILE" >&2
+export DBUS_USE_TEST_BINARY=1
eval `$DBUS_TOP_BUILDDIR/tools/dbus-launch --sh-syntax --config-file=$CONFIG_FILE`
if test -z "$DBUS_SESSION_BUS_PID" ; then