wayland/tests
Isaac Freund d81525a235 client: add wl_display_dispatch_pending_single
As well as wl_display_dispatch_queue_pending_single.

The motivation is writing libwayland bindings for a dynamic language
with exceptions/non-local returns. Since it is invalid for a
wl_dispatcher_func_t callback provided to libwayland to not return,
there is no way to prevent dispatching of further events in the case of
an exception in the dynamic language event handler.

Furthermore, since creating/destroying Wayland objects in an event
handler affects the dispatching of subsequent events by libwayland,
it is not possible to collect Wayland events in a queue outside
libwayland and dispatch them one-by-one after
wl_display_dispatch_pending() returns.

Adding libwayland API to dispatch at most one pending event solves this
problem cleanly. The bindings can have libwayland dispatch a single
event, wait for wl_display_dispatch_pending_single() to return, run the
dynamic language event handler (which may longjmp away), and continue
the loop for as long as there are more events to dispatch.

References: https://codeberg.org/ifreund/janet-wayland
Signed-off-by: Isaac Freund <mail@isaacfreund.com>
2025-09-16 11:48:33 +03:00
..
data scanner: use separate guards for validator functions 2025-02-23 23:38:15 +01:00
array-test.c Avoid pointer arithmetic on void * 2019-06-05 10:01:07 +00:00
client-test.c Mitigate UAF crashes due to wl_client_destroy reentrancy 2024-02-23 00:40:32 +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 Fix typos 2025-05-20 20:49:32 +00:00
cpp-compile-test.cpp tests: C++ compilation test 2015-01-27 11:17:42 +00:00
display-test.c client: add wl_display_dispatch_pending_single 2025-09-16 11:48:33 +03:00
enum-validator-test.c tests: add enum bitfield test 2024-07-09 18:22:10 +02: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: Depend on exec-fd-leak-checker 2025-06-08 17:30:55 +00: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 connection: Dynamically resize connection buffers 2024-04-08 14:05:32 +00: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 tests: Add dispatch timeout tests 2025-02-04 14:09:51 +00:00
resources-test.c Mitigate UAF crashes due to iteration over freed wl_resources 2024-02-07 09:45:41 +00:00
sanity-test.c tests: Capture the test client log 2023-02-28 11:22:04 +00:00
scanner-test-gen.sh tests: add scanner test for enum-header 2024-03-28 13:21:28 +00:00
scanner-test.sh tests: add scanner test for enum-header 2024-03-28 13:21:28 +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: Avoid calling function with wrong type 2024-11-30 11:31:36 -05:00
test-compositor.h tests: Avoid calling function with wrong type 2024-11-30 11:31:36 -05:00
test-helpers.c build: fix build and provide compat for OpenBSD 2024-02-21 15:46:41 +00:00
test-runner.c build: fix build and provide compat for OpenBSD 2024-02-21 15:46:41 +00:00
test-runner.h tests: Remove memory leak checking infrastructure 2018-08-29 09:59:04 +01:00