wayland/tests
Thomas Lukaszewicz a86fd86b5e wayland-server: Add wl_client_add_event_dispatch_listener
The patch adds a listener called after an event has been dispatched
by the server.

Wayland servers that incorporate the Wayland display into their own
event loops may dispatch multiple Wayland events to clients as they
work through their task queues.

For e.g. if system display state changes the Wayland server may
emit several output / surface Wayland events to connected clients.

Currently an explicit flush is performd immediately after each
individual Wayland event is dispatched to make sure these are
propagated to clients in a deterministic / reliable manner.

This results in hard to maintain / easy to break code. Contributors
must make sure to explicitly flush when dispatching Wayland events
to clients - or otherwise wait for some other server event to flush
the client buffer later on. In the latter case behavior is not
deterministic and makes testing the server code much harder.

The client event_dispatch_listener added in this patch allows the
server to track if the processing of a server event has resulted in
the dispatch of one or more Wayland events to clients - and ensure
the buffer is appropriately flushed.

This eliminates the need to flush in many different areas of the
codebase, making the server easier to maintain and test.

Signed-off-by: Thomas Lukaszewicz <thomaslukaszewicz@gmail.com>
2024-01-04 03:48:22 +00:00
..
data doc: fix typo in wl_data_device.data_offer 2022-01-10 10:07:22 +00:00
array-test.c Avoid pointer arithmetic on void * 2019-06-05 10:01:07 +00:00
client-test.c wayland-server: Add wl_client_add_event_dispatch_listener 2024-01-04 03:48:22 +00:00
compositor-introspection-test.c Check that XDG base directories paths are absolute 2022-06-09 18:34:17 +00:00
connection-test.c Do not allow nullable new_id 2022-07-14 08:38:49 -07:00
cpp-compile-test.cpp tests: C++ compilation test 2015-01-27 11:17:42 +00:00
display-test.c tests: add a test for dynamic filtered globals 2022-06-15 07:53:19 +00:00
event-loop-test.c build: don't rely on implicit GNU extensions 2022-01-10 15:08:46 +01:00
exec-fd-leak-checker.c tests: Require base 10 for the string specifying the number of open fd's 2016-07-11 13:32:15 -07:00
fixed-test.c build: don't rely on implicit GNU extensions 2022-01-10 15:08:46 +01:00
headers-protocol-core-test.c tests: Check for client/server-core.h inclusion 2016-05-19 14:31:18 -07:00
headers-protocol-test.c tests: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-12 15:31:24 -07:00
headers-test.c tests: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-12 15:31:24 -07:00
interface-test.c tests: Test wl_interface_equal 2016-11-18 16:21:19 +02:00
list-test.c tests: Add test for wl_list_length 2016-09-05 15:10:43 +03:00
map-test.c util: Avoid undefined behaviour in for_each_helper 2021-07-21 11:42:42 +00:00
meson.build tests: add missing proxy-test 2023-06-20 09:20:49 +02:00
message-test.c Do not allow nullable new_id 2022-07-14 08:38:49 -07:00
newsignal-test.c tests: fix typos 2020-12-17 16:03:14 -05:00
os-wrappers-test.c tests: manually wrap libc functions 2023-06-27 13:31:50 +02:00
protocol-logger-test.c Check that XDG base directories paths are absolute 2022-06-09 18:34:17 +00:00
proxy-test.c client: Add method to get display for a given proxy 2023-08-07 13:38:01 +00:00
queue-test.c debug: Replace "@<id>" with "#<id>" in logs 2023-06-27 14:08:25 -07:00
resources-test.c tests: Add free-without-remove test 2018-04-20 13:19:13 -05:00
sanity-test.c tests: Capture the test client log 2023-02-28 11:22:04 +00:00
scanner-test.sh tests: Verify that wayland_scanner can catch bad identifiers 2019-05-02 17:42:59 +00:00
signal-test.c server: introduce wl_signal_emit_mutable 2022-03-28 19:06:16 +00:00
socket-test.c Check that XDG base directories paths are absolute 2022-06-09 18:34:17 +00:00
test-compositor.c tests: Support tests that check for client failure 2023-02-28 11:22:04 +00:00
test-compositor.h tests: Support tests that check for client failure 2023-02-28 11:22:04 +00:00
test-helpers.c test-helpers: use sysctl() to count open fds on FreeBSD 2021-09-10 11:35:54 +00:00
test-runner.c Check that XDG base directories paths are absolute 2022-06-09 18:34:17 +00:00
test-runner.h tests: Remove memory leak checking infrastructure 2018-08-29 09:59:04 +01:00