test: add a test for multiple start/stop emulating events

Part-of: <https://gitlab.freedesktop.org/libinput/libei/-/merge_requests/331>
This commit is contained in:
Peter Hutterer 2025-05-01 14:21:36 +10:00
parent 247a3d49d7
commit daf0b24665

View file

@ -357,6 +357,47 @@ MUNIT_TEST(eistest_regions)
return MUNIT_OK;
}
MUNIT_TEST(eistest_multiple_emulating)
{
_unref_(peck) *peck = peck_new_context(PECK_EI_RECEIVER);
peck_enable_eis_behavior(peck, PECK_EIS_BEHAVIOR_ACCEPT_CLIENT);
peck_enable_eis_behavior(peck, PECK_EIS_BEHAVIOR_DEFAULT_SEAT);
peck_enable_eis_behavior(peck, PECK_EIS_BEHAVIOR_HANDLE_BIND_SEAT);
peck_enable_eis_behavior(peck, PECK_EIS_BEHAVIOR_ADD_POINTER);
peck_enable_eis_behavior(peck, PECK_EIS_BEHAVIOR_RESUME_DEVICE);
peck_dispatch_until_stable(peck);
peck_dispatch_until_stable(peck);
with_server(peck) {
struct eis_device *device = peck_eis_get_default_pointer(peck);
eis_device_start_emulating(device, 1);
eis_device_start_emulating(device, 2); /* quietly filtered */
eis_device_start_emulating(device, 3); /* quietly filtered */
eis_device_stop_emulating(device);
eis_device_stop_emulating(device); /* quietly filtered */
eis_device_stop_emulating(device); /* quietly filtered */
}
peck_dispatch_until_stable(peck);
with_client(peck) {
_unref_(ei_event) *added =
peck_ei_next_event(ei, EI_EVENT_DEVICE_ADDED);
_unref_(ei_event) *resumed =
peck_ei_next_event(ei, EI_EVENT_DEVICE_RESUMED);
_unref_(ei_event) *start =
peck_ei_next_event(ei, EI_EVENT_DEVICE_START_EMULATING);
munit_assert_int(ei_event_emulating_get_sequence(start), ==, 1);
_unref_(ei_event) *stop =
peck_ei_next_event(ei, EI_EVENT_DEVICE_STOP_EMULATING);
peck_assert_no_ei_events(ei);
}
return MUNIT_OK;
}
MUNIT_TEST(test_eis_ping)
{
_unref_(peck) *peck = peck_new();