From a107da84891f941d591bcaa99641f4058f089c7d Mon Sep 17 00:00:00 2001 From: "John (J5) Palmieri" Date: Thu, 26 Oct 2006 15:55:44 +0000 Subject: * 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 --- ChangeLog | 11 +++++++++++ configure.in | 4 ++++ tools/dbus-launch.c | 21 ++++++++++++++++++++- tools/run-with-tmp-session-bus.sh | 1 + 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 2f238ced..2722f329 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2006-10-26 John (J5) Palmieri + + * 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 * 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 -- cgit