Skip to content

tests: Ensure session bus has started before integration test

Simon McVittie requested to merge smcv/dbus:integration-test into master

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.

/cc @pwithnall @thiago @elmarco

Edited by Simon McVittie

Merge request reports