Skip to content

Commit

Permalink
test: add test helpers for touch sequence parts
Browse files Browse the repository at this point in the history
The necessary helpers to test for a touch event + one touch frame and the
extra case for the TOUCH_CANCEL in is_touch_event

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
  • Loading branch information
whot committed Aug 3, 2018
1 parent adf0e5a commit 2855e26
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 0 deletions.
70 changes: 70 additions & 0 deletions test/litest.c
Expand Up @@ -3203,6 +3203,7 @@ litest_is_touch_event(struct libinput_event *event,
case LIBINPUT_EVENT_TOUCH_UP:
case LIBINPUT_EVENT_TOUCH_MOTION:
case LIBINPUT_EVENT_TOUCH_FRAME:
case LIBINPUT_EVENT_TOUCH_CANCEL:
litest_assert_event_type(event, type);
break;
default:
Expand Down Expand Up @@ -3505,6 +3506,75 @@ litest_assert_touch_sequence(struct libinput *li)
libinput_event_destroy(event);
}

void
litest_assert_touch_motion_frame(struct libinput *li)
{
struct libinput_event *event;

/* expect at least one, but maybe more */
event = libinput_get_event(li);
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);
while (event) {
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);
}
}

void
litest_assert_touch_down_frame(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);
}

void
litest_assert_touch_up_frame(struct libinput *li)
{
struct libinput_event *event;

event = libinput_get_event(li);
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_assert_touch_cancel(struct libinput *li)
{
struct libinput_event *event;

event = libinput_get_event(li);
litest_is_touch_event(event, LIBINPUT_EVENT_TOUCH_CANCEL);
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)
{
Expand Down
9 changes: 9 additions & 0 deletions test/litest.h
Expand Up @@ -670,6 +670,15 @@ litest_assert_empty_queue(struct libinput *li);
void
litest_assert_touch_sequence(struct libinput *li);

void
litest_assert_touch_motion_frame(struct libinput *li);
void
litest_assert_touch_down_frame(struct libinput *li);
void
litest_assert_touch_up_frame(struct libinput *li);
void
litest_assert_touch_cancel(struct libinput *li);

struct libinput_event_pointer *
litest_is_button_event(struct libinput_event *event,
unsigned int button,
Expand Down

0 comments on commit 2855e26

Please sign in to comment.