From: Simon McVittie Date: Mon, 21 Feb 2022 10:35:10 +0000 (+0000) Subject: tests: Ensure session bus has started before integration test X-Git-Tag: dbus-1.12.22~3^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ba6fdab22d677f9363be1b23d93e6314a5c2b321;p=thirdparty%2Fdbus.git tests: Ensure session bus has started before integration test The session dbus-daemon won't necessarily be run immediately on login if we are using systemd socket activation for it, and the transient services directory $XDG_RUNTIME_DIR/dbus-1/services isn't created until it's actually run. Ping the dbus-daemon to make sure it's available. Signed-off-by: Simon McVittie Bug-Debian: https://bugs.debian.org/1005889 (cherry picked from commit 47a4bdfaf8f31ebb20f2d0b549109cb946b08440) --- diff --git a/test/integration/transient-services.sh b/test/integration/transient-services.sh index 2d946d9ec..40bb8aed5 100644 --- a/test/integration/transient-services.sh +++ b/test/integration/transient-services.sh @@ -74,8 +74,19 @@ trap cleanup EXIT echo "1..2" -# This is an integration test, so we expect the dbus-daemon to already be -# running +# If the dbus-daemon is launched on-demand by a systemd socket unit, it +# might not be there yet, even if the socket is +( +dbus-send --session --dest="org.freedesktop.DBus" \ + --type=method_call --print-reply /org/freedesktop/DBus \ + org.freedesktop.DBus.Peer.Ping || touch "$workdir/failed" \ +) 2>&1 | sed -e 's/^/# /' + +if [ -e "$workdir/failed" ]; then + echo "Bail out! Unable to ensure dbus-daemon has started" + exit 1 +fi + if ! test -d "$XDG_RUNTIME_DIR/dbus-1/services"; then echo "Bail out! $XDG_RUNTIME_DIR/dbus-1/services is not a directory" exit 1