mirror of
https://gitlab.freedesktop.org/libinput/libei.git
synced 2026-04-03 16:20:39 +02:00
eis: store the sequence number in start_emulating
Co-Authored-by: Claude Code <noreply@anthropic.com> Part-of: <https://gitlab.freedesktop.org/libinput/libei/-/merge_requests/381>
This commit is contained in:
parent
b4f45f2aff
commit
98cd152b70
2 changed files with 42 additions and 0 deletions
|
|
@ -345,6 +345,7 @@ eis_queue_device_start_emulating_event(struct eis_device *device, uint32_t seque
|
|||
{
|
||||
struct eis_event *e = eis_event_new_for_device(device);
|
||||
e->type = EIS_EVENT_DEVICE_START_EMULATING;
|
||||
e->start_emulating.sequence = sequence;
|
||||
eis_queue_event(e);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -401,6 +401,47 @@ MUNIT_TEST(eistest_multiple_emulating)
|
|||
return MUNIT_OK;
|
||||
}
|
||||
|
||||
MUNIT_TEST(eistest_device_start_emulating_sequence)
|
||||
{
|
||||
_unref_(peck) *peck = peck_new();
|
||||
|
||||
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_enable_ei_behavior(peck, PECK_EI_BEHAVIOR_HANDLE_ADDED);
|
||||
peck_dispatch_until_stable(peck);
|
||||
|
||||
with_client(peck) {
|
||||
_unref_(ei_event) *resumed =
|
||||
peck_ei_next_event(ei, EI_EVENT_DEVICE_RESUMED);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
uint32_t sequence = munit_rand_uint32();
|
||||
|
||||
with_client(peck) {
|
||||
struct ei_device *device = peck_ei_get_default_pointer(peck);
|
||||
ei_device_start_emulating(device, sequence);
|
||||
ei_device_stop_emulating(device);
|
||||
}
|
||||
|
||||
peck_dispatch_until_stable(peck);
|
||||
|
||||
with_server(peck) {
|
||||
_unref_(eis_event) *start =
|
||||
peck_eis_next_event(eis, EIS_EVENT_DEVICE_START_EMULATING);
|
||||
munit_assert_uint32(eis_event_emulating_get_sequence(start), ==, sequence);
|
||||
_unref_(eis_event) *stop =
|
||||
peck_eis_next_event(eis, EIS_EVENT_DEVICE_STOP_EMULATING);
|
||||
peck_assert_no_eis_events(eis);
|
||||
}
|
||||
}
|
||||
|
||||
return MUNIT_OK;
|
||||
}
|
||||
|
||||
MUNIT_TEST(eistest_socket_overflow)
|
||||
{
|
||||
_unref_(peck) *peck = peck_new_context("mode", PECK_EI_RECEIVER);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue