test: add a helper function to compare the event type

New error message prints the human-readable event type, not just the enum
values.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2016-08-23 08:11:11 +10:00
parent bb93f9fd93
commit a43042425e
2 changed files with 42 additions and 15 deletions

View file

@ -2082,11 +2082,11 @@ litest_drain_events(struct libinput *li)
} }
static const char * static const char *
litest_event_type_str(struct libinput_event *event) litest_event_type_str(enum libinput_event_type type)
{ {
const char *str = NULL; const char *str = NULL;
switch (libinput_event_get_type(event)) { switch (type) {
case LIBINPUT_EVENT_NONE: case LIBINPUT_EVENT_NONE:
abort(); abort();
case LIBINPUT_EVENT_DEVICE_ADDED: case LIBINPUT_EVENT_DEVICE_ADDED:
@ -2168,6 +2168,12 @@ litest_event_type_str(struct libinput_event *event)
return str; return str;
} }
static const char *
litest_event_get_type_str(struct libinput_event *event)
{
return litest_event_type_str(libinput_event_get_type(event));
}
static void static void
litest_print_event(struct libinput_event *event) litest_print_event(struct libinput_event *event)
{ {
@ -2184,7 +2190,7 @@ litest_print_event(struct libinput_event *event)
fprintf(stderr, fprintf(stderr,
"device %s type %s ", "device %s type %s ",
libinput_device_get_sysname(dev), libinput_device_get_sysname(dev),
litest_event_type_str(event)); litest_event_get_type_str(event));
switch (type) { switch (type) {
case LIBINPUT_EVENT_POINTER_MOTION: case LIBINPUT_EVENT_POINTER_MOTION:
p = libinput_event_get_pointer_event(event); p = libinput_event_get_pointer_event(event);
@ -2262,6 +2268,23 @@ litest_print_event(struct libinput_event *event)
fprintf(stderr, "\n"); fprintf(stderr, "\n");
} }
void
litest_assert_event_type(struct libinput_event *event,
enum libinput_event_type want)
{
if (libinput_event_get_type(event) == want)
return;
fprintf(stderr,
"FAILED EVENT TYPE: have %s (%d) but want %s (%d)\n",
litest_event_get_type_str(event),
libinput_event_get_type(event),
litest_event_type_str(want),
want);
litest_backtrace();
abort();
}
void void
litest_assert_empty_queue(struct libinput *li) litest_assert_empty_queue(struct libinput *li)
{ {
@ -2501,7 +2524,7 @@ litest_is_button_event(struct libinput_event *event,
enum libinput_event_type type = LIBINPUT_EVENT_POINTER_BUTTON; enum libinput_event_type type = LIBINPUT_EVENT_POINTER_BUTTON;
litest_assert(event != NULL); litest_assert(event != NULL);
litest_assert_int_eq(libinput_event_get_type(event), type); litest_assert_event_type(event, type);
ptrev = libinput_event_get_pointer_event(event); ptrev = libinput_event_get_pointer_event(event);
litest_assert_int_eq(libinput_event_pointer_get_button(ptrev), litest_assert_int_eq(libinput_event_pointer_get_button(ptrev),
button); button);
@ -2520,7 +2543,7 @@ litest_is_axis_event(struct libinput_event *event,
enum libinput_event_type type = LIBINPUT_EVENT_POINTER_AXIS; enum libinput_event_type type = LIBINPUT_EVENT_POINTER_AXIS;
litest_assert(event != NULL); litest_assert(event != NULL);
litest_assert_int_eq(libinput_event_get_type(event), type); litest_assert_event_type(event, type);
ptrev = libinput_event_get_pointer_event(event); ptrev = libinput_event_get_pointer_event(event);
litest_assert(libinput_event_pointer_has_axis(ptrev, axis)); litest_assert(libinput_event_pointer_has_axis(ptrev, axis));
@ -2539,7 +2562,7 @@ litest_is_motion_event(struct libinput_event *event)
double x, y, ux, uy; double x, y, ux, uy;
litest_assert(event != NULL); litest_assert(event != NULL);
litest_assert_int_eq(libinput_event_get_type(event), type); litest_assert_event_type(event, type);
ptrev = libinput_event_get_pointer_event(event); ptrev = libinput_event_get_pointer_event(event);
x = libinput_event_pointer_get_dx(ptrev); x = libinput_event_pointer_get_dx(ptrev);
@ -2584,7 +2607,7 @@ litest_is_touch_event(struct libinput_event *event,
case LIBINPUT_EVENT_TOUCH_UP: case LIBINPUT_EVENT_TOUCH_UP:
case LIBINPUT_EVENT_TOUCH_MOTION: case LIBINPUT_EVENT_TOUCH_MOTION:
case LIBINPUT_EVENT_TOUCH_FRAME: case LIBINPUT_EVENT_TOUCH_FRAME:
litest_assert_int_eq(libinput_event_get_type(event), type); litest_assert_event_type(event, type);
break; break;
default: default:
ck_abort_msg("%s: invalid touch type %d\n", __func__, type); ck_abort_msg("%s: invalid touch type %d\n", __func__, type);
@ -2604,7 +2627,7 @@ litest_is_keyboard_event(struct libinput_event *event,
enum libinput_event_type type = LIBINPUT_EVENT_KEYBOARD_KEY; enum libinput_event_type type = LIBINPUT_EVENT_KEYBOARD_KEY;
litest_assert(event != NULL); litest_assert(event != NULL);
litest_assert_int_eq(libinput_event_get_type(event), type); litest_assert_event_type(event, type);
kevent = libinput_event_get_keyboard_event(event); kevent = libinput_event_get_keyboard_event(event);
litest_assert(kevent != NULL); litest_assert(kevent != NULL);
@ -2623,7 +2646,7 @@ litest_is_gesture_event(struct libinput_event *event,
struct libinput_event_gesture *gevent; struct libinput_event_gesture *gevent;
litest_assert(event != NULL); litest_assert(event != NULL);
litest_assert_int_eq(libinput_event_get_type(event), type); litest_assert_event_type(event, type);
gevent = libinput_event_get_gesture_event(event); gevent = libinput_event_get_gesture_event(event);
litest_assert(gevent != NULL); litest_assert(gevent != NULL);
@ -2641,7 +2664,7 @@ litest_is_tablet_event(struct libinput_event *event,
struct libinput_event_tablet_tool *tevent; struct libinput_event_tablet_tool *tevent;
litest_assert(event != NULL); litest_assert(event != NULL);
litest_assert_int_eq(libinput_event_get_type(event), type); litest_assert_event_type(event, type);
tevent = libinput_event_get_tablet_tool_event(event); tevent = libinput_event_get_tablet_tool_event(event);
litest_assert(tevent != NULL); litest_assert(tevent != NULL);
@ -2661,7 +2684,7 @@ litest_assert_tablet_button_event(struct libinput *li, unsigned int button,
event = libinput_get_event(li); event = libinput_get_event(li);
litest_assert_notnull(event); litest_assert_notnull(event);
litest_assert_int_eq(libinput_event_get_type(event), type); litest_assert_event_type(event, type);
tev = libinput_event_get_tablet_tool_event(event); tev = libinput_event_get_tablet_tool_event(event);
litest_assert_int_eq(libinput_event_tablet_tool_get_button(tev), litest_assert_int_eq(libinput_event_tablet_tool_get_button(tev),
button); button);
@ -2681,7 +2704,7 @@ void litest_assert_tablet_proximity_event(struct libinput *li,
event = libinput_get_event(li); event = libinput_get_event(li);
litest_assert_notnull(event); litest_assert_notnull(event);
litest_assert_int_eq(libinput_event_get_type(event), type); litest_assert_event_type(event, type);
tev = libinput_event_get_tablet_tool_event(event); tev = libinput_event_get_tablet_tool_event(event);
litest_assert_int_eq(libinput_event_tablet_tool_get_proximity_state(tev), litest_assert_int_eq(libinput_event_tablet_tool_get_proximity_state(tev),
state); state);
@ -2697,7 +2720,7 @@ litest_is_pad_button_event(struct libinput_event *event,
enum libinput_event_type type = LIBINPUT_EVENT_TABLET_PAD_BUTTON; enum libinput_event_type type = LIBINPUT_EVENT_TABLET_PAD_BUTTON;
litest_assert(event != NULL); litest_assert(event != NULL);
litest_assert_int_eq(libinput_event_get_type(event), type); litest_assert_event_type(event, type);
p = libinput_event_get_tablet_pad_event(event); p = libinput_event_get_tablet_pad_event(event);
litest_assert(p != NULL); litest_assert(p != NULL);
@ -2717,7 +2740,7 @@ litest_is_pad_ring_event(struct libinput_event *event,
enum libinput_event_type type = LIBINPUT_EVENT_TABLET_PAD_RING; enum libinput_event_type type = LIBINPUT_EVENT_TABLET_PAD_RING;
litest_assert(event != NULL); litest_assert(event != NULL);
litest_assert_int_eq(libinput_event_get_type(event), type); litest_assert_event_type(event, type);
p = libinput_event_get_tablet_pad_event(event); p = libinput_event_get_tablet_pad_event(event);
litest_assert_int_eq(libinput_event_tablet_pad_get_ring_number(p), litest_assert_int_eq(libinput_event_tablet_pad_get_ring_number(p),
@ -2737,7 +2760,7 @@ litest_is_pad_strip_event(struct libinput_event *event,
enum libinput_event_type type = LIBINPUT_EVENT_TABLET_PAD_STRIP; enum libinput_event_type type = LIBINPUT_EVENT_TABLET_PAD_STRIP;
litest_assert(event != NULL); litest_assert(event != NULL);
litest_assert_int_eq(libinput_event_get_type(event), type); litest_assert_event_type(event, type);
p = libinput_event_get_tablet_pad_event(event); p = libinput_event_get_tablet_pad_event(event);
litest_assert_int_eq(libinput_event_tablet_pad_get_strip_number(p), litest_assert_int_eq(libinput_event_tablet_pad_get_strip_number(p),

View file

@ -528,6 +528,10 @@ litest_wait_for_event_of_type(struct libinput *li, ...);
void void
litest_drain_events(struct libinput *li); litest_drain_events(struct libinput *li);
void
litest_assert_event_type(struct libinput_event *event,
enum libinput_event_type want);
void void
litest_assert_empty_queue(struct libinput *li); litest_assert_empty_queue(struct libinput *li);