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.
Bug-Debian: https://bugs.debian.org/1005889
This is an attempt to fix a report that the GNOME-style installed-tests (via gnome-desktop-testing-runner
) do not always pass on Debian's ppc64el test runners, because Bail out! $XDG_RUNTIME_DIR/dbus-1/services is not a directory
is hit.
I'm waiting for more information, but my theory so far is that they have lots of cores, and so when the testbed infrastructure does this:
- launch lxc container
- log in as an unprivileged user
-
systemd --user
is started-
dbus.socket
is started -
dbus.service
is started, but we don't wait for it, because socket activation should be enough
-
-
- run
gnome-desktop-testing-runner
- run the test-cases in a random order
we can end up with transient-services.sh
being run while dbus.service
is still starting.