Skip to content

autotests: Stabilize testWaylandSeat

TestWaylandSeat::sync() ensures that events and requests can't be reordered after it. That is, it guarantees that

  • events sent from the compositor will be processed by the client before sync() finishes
  • requests issued by the client will be processed by the compositor before sync() finishes

WaylandSyncPoint relies on the fact that wl_display_sync()'s callback and other wayland events will be processed in the same event queue.

But, it's not the case right now. The wl_callback belongs to the default event queue and KWayland::Client::Seat belongs to a different queue.

If the default event queue is dispatched first, the WaylandSyncPoint may emit the done signal too early.

In order to fix sync(), this change ensures that WaylandSyncPoint's wl_callback uses the correct event queue.

Merge request reports