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 <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
This commit is contained in:
Peter Hutterer 2016-09-02 14:19:45 +10:00
parent f73527b8de
commit 31fdb7e6b0
2 changed files with 36 additions and 0 deletions

View file

@ -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)
{

View file

@ -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,