test: add litest_is_keyboard_event() helper function
authorPeter Hutterer <peter.hutterer@who-t.net>
Tue, 5 May 2015 05:43:08 +0000 (15:43 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Thu, 7 May 2015 06:17:50 +0000 (16:17 +1000)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
test/keyboard.c
test/litest.c
test/litest.h

index 508362bb2c39b777fbf7f18fd92b494f801a3bce..03d62dddf857c0be343aaa48472df53cb86dc8bb 100644 (file)
@@ -61,11 +61,9 @@ START_TEST(keyboard_seat_key_count)
                        continue;
                }
 
-               kev = libinput_event_get_keyboard_event(ev);
-               ck_assert_notnull(kev);
-               ck_assert_int_eq(libinput_event_keyboard_get_key(kev), KEY_A);
-               ck_assert_int_eq(libinput_event_keyboard_get_key_state(kev),
-                                LIBINPUT_KEY_STATE_PRESSED);
+               kev = litest_is_keyboard_event(ev,
+                                              KEY_A,
+                                              LIBINPUT_KEY_STATE_PRESSED);
 
                ++expected_key_button_count;
                seat_key_count =
@@ -175,31 +173,6 @@ START_TEST(keyboard_ignore_no_pressed_release)
 }
 END_TEST
 
-static void
-test_key_event(struct litest_device *dev, unsigned int key, int state)
-{
-       struct libinput *li = dev->libinput;
-       struct libinput_event *event;
-       struct libinput_event_keyboard *kevent;
-
-       litest_event(dev, EV_KEY, key, state);
-       litest_event(dev, EV_SYN, SYN_REPORT, 0);
-
-       libinput_dispatch(li);
-
-       event = libinput_get_event(li);
-       ck_assert(event != NULL);
-       ck_assert_int_eq(libinput_event_get_type(event), LIBINPUT_EVENT_KEYBOARD_KEY);
-
-       kevent = libinput_event_get_keyboard_event(event);
-       ck_assert(kevent != NULL);
-       ck_assert_int_eq(libinput_event_keyboard_get_key(kevent), key);
-       ck_assert_int_eq(libinput_event_keyboard_get_key_state(kevent),
-                        state ? LIBINPUT_KEY_STATE_PRESSED :
-                                LIBINPUT_KEY_STATE_RELEASED);
-       libinput_event_destroy(event);
-}
-
 START_TEST(keyboard_key_auto_release)
 {
        struct libinput *libinput;
@@ -244,7 +217,17 @@ START_TEST(keyboard_key_auto_release)
 
        /* Send pressed events, without releasing */
        for (i = 0; i < ARRAY_LENGTH(keys); ++i) {
-               test_key_event(dev, keys[i].code, 1);
+               key = keys[i].code;
+               litest_event(dev, EV_KEY, key, 1);
+               litest_event(dev, EV_SYN, SYN_REPORT, 0);
+
+               libinput_dispatch(libinput);
+
+               event = libinput_get_event(libinput);
+               kevent = litest_is_keyboard_event(event,
+                                                 key,
+                                                 LIBINPUT_KEY_STATE_PRESSED);
+               libinput_event_destroy(event);
        }
 
        litest_drain_events(libinput);
index 6506af082d7de0f14705cb837b5558cd8ed9ab4b..c24a3061d98d6ed47b7541dfd21d58795e18d3c9 100644 (file)
@@ -1558,6 +1558,26 @@ litest_is_touch_event(struct libinput_event *event,
        return touch;
 }
 
+struct libinput_event_keyboard *
+litest_is_keyboard_event(struct libinput_event *event,
+                        unsigned int key,
+                        enum libinput_key_state state)
+{
+       struct libinput_event_keyboard *kevent;
+       enum libinput_event_type type = LIBINPUT_EVENT_KEYBOARD_KEY;
+
+       ck_assert_notnull(event);
+       ck_assert_int_eq(libinput_event_get_type(event), type);
+
+       kevent = libinput_event_get_keyboard_event(event);
+       ck_assert_notnull(kevent);
+
+       ck_assert_int_eq(libinput_event_keyboard_get_key(kevent), key);
+       ck_assert_int_eq(libinput_event_keyboard_get_key_state(kevent),
+                        state);
+       return kevent;
+}
+
 void
 litest_assert_scroll(struct libinput *li,
                     enum libinput_pointer_axis axis,
index ebe2bea3b09c42bb8c14a2dfb29ddd6c8bd9debf..664b49ac17ca848057842fa7c0d199c2ec210181 100644 (file)
@@ -209,6 +209,10 @@ struct libinput_event_pointer * litest_is_motion_event(
 struct libinput_event_touch * litest_is_touch_event(
                       struct libinput_event *event,
                       enum libinput_event_type type);
+struct libinput_event_keyboard * litest_is_keyboard_event(
+                      struct libinput_event *event,
+                      unsigned int key,
+                      enum libinput_key_state state);
 void litest_assert_button_event(struct libinput *li,
                                unsigned int button,
                                enum libinput_button_state state);