test: add litest_is_motion_event() helper
authorPeter Hutterer <peter.hutterer@who-t.net>
Mon, 4 May 2015 03:17:27 +0000 (13:17 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Thu, 7 May 2015 04:40:59 +0000 (14:40 +1000)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
test/litest.c
test/litest.h
test/pointer.c

index a374608dd8e0866bbdebc9b3b73f3b32d1921c2c..ca996e4aa03ced9bdf8c8e8e24ba2c930f397f39 100644 (file)
@@ -1494,6 +1494,29 @@ litest_is_axis_event(struct libinput_event *event,
        return ptrev;
 }
 
+struct libinput_event_pointer *
+litest_is_motion_event(struct libinput_event *event)
+{
+       struct libinput_event_pointer *ptrev;
+       enum libinput_event_type type = LIBINPUT_EVENT_POINTER_MOTION;
+       double x, y, ux, uy;
+
+       ck_assert(event != NULL);
+       ck_assert_int_eq(libinput_event_get_type(event), type);
+       ptrev = libinput_event_get_pointer_event(event);
+
+       x = libinput_event_pointer_get_dx(ptrev);
+       y = libinput_event_pointer_get_dy(ptrev);
+       ux = libinput_event_pointer_get_dx_unaccelerated(ptrev);
+       uy = libinput_event_pointer_get_dy_unaccelerated(ptrev);
+
+       /* No 0 delta motion events */
+       ck_assert(x != 0.0 || y != 0.0 ||
+                 ux != 0.0 || uy != 0.0);
+
+       return ptrev;
+}
+
 void
 litest_assert_button_event(struct libinput *li, unsigned int button,
                           enum libinput_button_state state)
index fa910ed0c648cd6613a4adf88ee0712ce486a990..fa974958189e4ec5f0422b6040b437ac90881ee7 100644 (file)
@@ -204,6 +204,8 @@ struct libinput_event_pointer * litest_is_axis_event(
                       struct libinput_event *event,
                       enum libinput_pointer_axis axis,
                       enum libinput_pointer_axis_source source);
+struct libinput_event_pointer * litest_is_motion_event(
+                      struct libinput_event *event);
 void litest_assert_button_event(struct libinput *li,
                                unsigned int button,
                                enum libinput_button_state state);
index 7784941f7c164f33616f9c92494e16b97ed55cbd..43c21ba39a2103ac565306524c3421afb21734f7 100644 (file)
@@ -42,12 +42,7 @@ get_accelerated_motion_event(struct libinput *li)
 
        while (1) {
                event = libinput_get_event(li);
-               ck_assert_notnull(event);
-               ck_assert_int_eq(libinput_event_get_type(event),
-                                LIBINPUT_EVENT_POINTER_MOTION);
-
-               ptrev = libinput_event_get_pointer_event(event);
-               ck_assert_notnull(ptrev);
+               ptrev = litest_is_motion_event(event);
 
                if (fabs(libinput_event_pointer_get_dx(ptrev)) < DBL_MIN &&
                    fabs(libinput_event_pointer_get_dy(ptrev)) < DBL_MIN) {
@@ -190,12 +185,7 @@ test_unaccel_event(struct litest_device *dev, int dx, int dy)
       libinput_dispatch(li);
 
       event = libinput_get_event(li);
-      ck_assert_notnull(event);
-      ck_assert_int_eq(libinput_event_get_type(event),
-                       LIBINPUT_EVENT_POINTER_MOTION);
-
-      ptrev = libinput_event_get_pointer_event(event);
-      ck_assert(ptrev != NULL);
+      ptrev = litest_is_motion_event(event);
 
       ev_dx = libinput_event_pointer_get_dx_unaccelerated(ptrev);
       ev_dy = libinput_event_pointer_get_dy_unaccelerated(ptrev);