From 31fdb7e6b0741aa246beceda1de196eec2e0686b Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 2 Sep 2016 14:19:45 +1000 Subject: [PATCH] test: add litest_assert_touch_sequence helper Touch sequences are interrupted by TOUCH_FRAME events which makes them annoying to handle event-by-event. Signed-off-by: Peter Hutterer Reviewed-by: Jason Gerecke --- test/litest.c | 33 +++++++++++++++++++++++++++++++++ test/litest.h | 3 +++ 2 files changed, 36 insertions(+) diff --git a/test/litest.c b/test/litest.c index d60fb413..4c301b58 100644 --- a/test/litest.c +++ b/test/litest.c @@ -2849,6 +2849,39 @@ litest_assert_only_typed_events(struct libinput *li, } } +void +litest_assert_touch_sequence(struct libinput *li) +{ + struct libinput_event *event; + + event = libinput_get_event(li); + litest_is_touch_event(event, LIBINPUT_EVENT_TOUCH_DOWN); + libinput_event_destroy(event); + + event = libinput_get_event(li); + litest_is_touch_event(event, LIBINPUT_EVENT_TOUCH_FRAME); + libinput_event_destroy(event); + + event = libinput_get_event(li); + do { + litest_is_touch_event(event, LIBINPUT_EVENT_TOUCH_MOTION); + libinput_event_destroy(event); + + event = libinput_get_event(li); + litest_is_touch_event(event, LIBINPUT_EVENT_TOUCH_FRAME); + libinput_event_destroy(event); + + event = libinput_get_event(li); + litest_assert_notnull(event); + } while (libinput_event_get_type(event) != LIBINPUT_EVENT_TOUCH_UP); + + litest_is_touch_event(event, LIBINPUT_EVENT_TOUCH_UP); + libinput_event_destroy(event); + event = libinput_get_event(li); + litest_is_touch_event(event, LIBINPUT_EVENT_TOUCH_FRAME); + libinput_event_destroy(event); +} + void litest_timeout_tap(void) { diff --git a/test/litest.h b/test/litest.h index f8e740f2..d7a7327a 100644 --- a/test/litest.h +++ b/test/litest.h @@ -536,6 +536,9 @@ litest_assert_event_type(struct libinput_event *event, void litest_assert_empty_queue(struct libinput *li); +void +litest_assert_touch_sequence(struct libinput *li); + struct libinput_event_pointer * litest_is_button_event(struct libinput_event *event, unsigned int button,