The libinput_*_get_time() returns a 32 bit unsigned integer, but in the
tests we compared them to a 64 bit unsigned integer. This means that
when the 32 bit integer overflowed, we'd still compare to a
non-overflowed 64 bit integer, causing the tests to fail.

This commit fixes this by always casting the millisecond 64 bit unsigned
integer to a 32 unsigned integer, triggering the same overflow.

Signed-off-by: Jonas Ådahl <[email protected]>
---
 test/gestures.c | 4 +++-
 test/keyboard.c | 4 +++-
 test/pointer.c  | 4 +++-
 test/tablet.c   | 4 +++-
 test/touch.c    | 4 +++-
 test/touchpad.c | 2 +-
 6 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/test/gestures.c b/test/gestures.c
index 8140147..8ab01b6 100644
--- a/test/gestures.c
+++ b/test/gestures.c
@@ -1127,6 +1127,7 @@ START_TEST(gestures_time_usec)
        struct libinput *li = dev->libinput;
        struct libinput_event *event;
        struct libinput_event_gesture *gevent;
+       uint64_t time_usec;
 
        if (libevdev_get_num_slots(dev->evdev) < 3)
                return;
@@ -1149,8 +1150,9 @@ START_TEST(gestures_time_usec)
        gevent = litest_is_gesture_event(event,
                                         LIBINPUT_EVENT_GESTURE_SWIPE_BEGIN,
                                         3);
+       time_usec = libinput_event_gesture_get_time_usec(gevent);
        ck_assert_int_eq(libinput_event_gesture_get_time(gevent),
-                        libinput_event_gesture_get_time_usec(gevent) / 1000);
+                        (uint32_t) (time_usec / 1000));
        libinput_event_destroy(event);
 }
 END_TEST
diff --git a/test/keyboard.c b/test/keyboard.c
index e9f3bcb..b2f9851 100644
--- a/test/keyboard.c
+++ b/test/keyboard.c
@@ -317,6 +317,7 @@ START_TEST(keyboard_time_usec)
        struct libinput *li = dev->libinput;
        struct libinput_event_keyboard *kev;
        struct libinput_event *event;
+       uint64_t time_usec;
 
        if (!libevdev_has_event_code(dev->evdev, EV_KEY, KEY_A))
                return;
@@ -332,8 +333,9 @@ START_TEST(keyboard_time_usec)
                                       KEY_A,
                                       LIBINPUT_KEY_STATE_PRESSED);
 
+       time_usec = libinput_event_keyboard_get_time_usec(kev);
        ck_assert_int_eq(libinput_event_keyboard_get_time(kev),
-                        libinput_event_keyboard_get_time_usec(kev) / 1000);
+                        (uint32_t) (time_usec / 1000));
 
        libinput_event_destroy(event);
        litest_drain_events(dev->libinput);
diff --git a/test/pointer.c b/test/pointer.c
index d043fa8..32e3fd2 100644
--- a/test/pointer.c
+++ b/test/pointer.c
@@ -1559,6 +1559,7 @@ START_TEST(pointer_time_usec)
        struct libinput *li = dev->libinput;
        struct libinput_event_pointer *ptrev;
        struct libinput_event *event;
+       uint64_t time_usec;
 
        litest_drain_events(dev->libinput);
 
@@ -1571,8 +1572,9 @@ START_TEST(pointer_time_usec)
        event = libinput_get_event(li);
        ptrev = litest_is_motion_event(event);
 
+       time_usec = libinput_event_pointer_get_time_usec(ptrev);
        ck_assert_int_eq(libinput_event_pointer_get_time(ptrev),
-                        libinput_event_pointer_get_time_usec(ptrev) / 1000);
+                        (uint32_t) (time_usec / 1000));
 
        libinput_event_destroy(event);
        litest_drain_events(dev->libinput);
diff --git a/test/tablet.c b/test/tablet.c
index ad6ac45..28cf0da 100644
--- a/test/tablet.c
+++ b/test/tablet.c
@@ -2679,6 +2679,7 @@ START_TEST(tablet_time_usec)
                { ABS_PRESSURE, 0 },
                { -1, -1 }
        };
+       uint64_t time_usec;
 
        litest_drain_events(li);
 
@@ -2688,8 +2689,9 @@ START_TEST(tablet_time_usec)
        event = libinput_get_event(li);
        tev = litest_is_tablet_event(event,
                                     LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY);
+       time_usec = libinput_event_tablet_tool_get_time_usec(tev);
        ck_assert_int_eq(libinput_event_tablet_tool_get_time(tev),
-                        libinput_event_tablet_tool_get_time_usec(tev) / 1000);
+                        (uint32_t) (time_usec / 1000));
        libinput_event_destroy(event);
 }
 END_TEST
diff --git a/test/touch.c b/test/touch.c
index eae8007..a2a506b 100644
--- a/test/touch.c
+++ b/test/touch.c
@@ -658,6 +658,7 @@ START_TEST(touch_time_usec)
        struct libinput *li = dev->libinput;
        struct libinput_event *event;
        struct libinput_event_touch *tev;
+       uint64_t time_usec;
 
        litest_drain_events(dev->libinput);
 
@@ -667,8 +668,9 @@ START_TEST(touch_time_usec)
 
        event = libinput_get_event(li);
        tev = litest_is_touch_event(event, LIBINPUT_EVENT_TOUCH_DOWN);
+       time_usec = libinput_event_touch_get_time_usec(tev);
        ck_assert_int_eq(libinput_event_touch_get_time(tev),
-                        libinput_event_touch_get_time_usec(tev) / 1000);
+                        (uint32_t) (time_usec / 1000));
        libinput_event_destroy(event);
 }
 END_TEST
diff --git a/test/touchpad.c b/test/touchpad.c
index a58b337..45e0a6d 100644
--- a/test/touchpad.c
+++ b/test/touchpad.c
@@ -4017,7 +4017,7 @@ START_TEST(touchpad_time_usec)
                utime = libinput_event_pointer_get_time_usec(ptrev);
 
                ck_assert_int_eq(libinput_event_pointer_get_time(ptrev),
-                                utime / 1000);
+                                (uint32_t) (utime / 1000));
                libinput_event_destroy(event);
                event = libinput_get_event(li);
        }
-- 
2.4.3

_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to