diff --git a/test/litest.c b/test/litest.c index 0784228b..9819bed9 100644 --- a/test/litest.c +++ b/test/litest.c @@ -2018,7 +2018,10 @@ litest_hover_move_two_touches(struct litest_device *d, } void -litest_button_click(struct litest_device *d, unsigned int button, bool is_press) +litest_button_click_debounced(struct litest_device *d, + struct libinput *li, + unsigned int button, + bool is_press) { struct input_event *ev; @@ -2029,7 +2032,9 @@ litest_button_click(struct litest_device *d, unsigned int button, bool is_press) ARRAY_FOR_EACH(click, ev) litest_event(d, ev->type, ev->code, ev->value); + libinput_dispatch(li); litest_timeout_debounce(); + libinput_dispatch(li); } void @@ -2039,7 +2044,7 @@ litest_button_scroll(struct litest_device *dev, { struct libinput *li = dev->libinput; - litest_button_click(dev, button, 1); + litest_button_click_debounced(dev, li, button, 1); libinput_dispatch(li); litest_timeout_buttonscroll(); @@ -2049,7 +2054,7 @@ litest_button_scroll(struct litest_device *dev, litest_event(dev, EV_REL, REL_Y, dy); litest_event(dev, EV_SYN, SYN_REPORT, 0); - litest_button_click(dev, button, 0); + litest_button_click_debounced(dev, li, button, 0); libinput_dispatch(li); } @@ -2057,7 +2062,14 @@ litest_button_scroll(struct litest_device *dev, void litest_keyboard_key(struct litest_device *d, unsigned int key, bool is_press) { - litest_button_click(d, key, is_press); + struct input_event *ev; + struct input_event click[] = { + { .type = EV_KEY, .code = key, .value = is_press ? 1 : 0 }, + { .type = EV_SYN, .code = SYN_REPORT, .value = 0 }, + }; + + ARRAY_FOR_EACH(click, ev) + litest_event(d, ev->type, ev->code, ev->value); } void diff --git a/test/litest.h b/test/litest.h index 400b15ec..5d1f97f5 100644 --- a/test/litest.h +++ b/test/litest.h @@ -597,9 +597,10 @@ litest_hover_move_two_touches(struct litest_device *d, int steps, int sleep_ms); void -litest_button_click(struct litest_device *d, - unsigned int button, - bool is_press); +litest_button_click_debounced(struct litest_device *d, + struct libinput *li, + unsigned int button, + bool is_press); void litest_button_scroll(struct litest_device *d, diff --git a/test/test-device.c b/test/test-device.c index c4dfdd47..7c39131f 100644 --- a/test/test-device.c +++ b/test/test-device.c @@ -463,7 +463,7 @@ START_TEST(device_disable_release_buttons) device = dev->libinput_device; - litest_button_click(dev, BTN_LEFT, true); + litest_button_click_debounced(dev, li, BTN_LEFT, true); litest_drain_events(li); status = libinput_device_config_send_events_set_mode(device, @@ -497,7 +497,7 @@ START_TEST(device_disable_release_keys) device = dev->libinput_device; - litest_button_click(dev, KEY_A, true); + litest_button_click_debounced(dev, li, KEY_A, true); litest_drain_events(li); status = libinput_device_config_send_events_set_mode(device, @@ -616,7 +616,7 @@ START_TEST(device_disable_release_softbutton) litest_drain_events(li); litest_touch_down(dev, 0, 90, 90); - litest_button_click(dev, BTN_LEFT, true); + litest_button_click_debounced(dev, li, BTN_LEFT, true); /* make sure softbutton works */ litest_assert_button_event(li, @@ -633,7 +633,7 @@ START_TEST(device_disable_release_softbutton) litest_assert_empty_queue(li); - litest_button_click(dev, BTN_LEFT, false); + litest_button_click_debounced(dev, li, BTN_LEFT, false); litest_touch_up(dev, 0); litest_assert_empty_queue(li); @@ -669,8 +669,8 @@ START_TEST(device_disable_topsoftbutton) litest_drain_events(li); litest_touch_down(dev, 0, 90, 10); - litest_button_click(dev, BTN_LEFT, true); - litest_button_click(dev, BTN_LEFT, false); + litest_button_click_debounced(dev, li, BTN_LEFT, true); + litest_button_click_debounced(dev, li, BTN_LEFT, false); litest_touch_up(dev, 0); litest_wait_for_event(li); diff --git a/test/test-misc.c b/test/test-misc.c index 32081c03..5a4f6ad6 100644 --- a/test/test-misc.c +++ b/test/test-misc.c @@ -416,8 +416,8 @@ START_TEST(event_conversion_tablet) litest_tablet_proximity_in(dev, 50, 50, axes); litest_tablet_motion(dev, 60, 50, axes); - litest_button_click(dev, BTN_STYLUS, true); - litest_button_click(dev, BTN_STYLUS, false); + litest_button_click_debounced(dev, li, BTN_STYLUS, true); + litest_button_click_debounced(dev, li, BTN_STYLUS, false); libinput_dispatch(li); @@ -458,7 +458,7 @@ START_TEST(event_conversion_tablet_pad) struct libinput_event *event; int events = 0; - litest_button_click(dev, BTN_0, true); + litest_button_click_debounced(dev, li, BTN_0, true); litest_pad_ring_start(dev, 10); litest_pad_ring_end(dev); diff --git a/test/test-pad.c b/test/test-pad.c index 5e4a66f5..b0c583d7 100644 --- a/test/test-pad.c +++ b/test/test-pad.c @@ -68,8 +68,8 @@ START_TEST(pad_time) if (!libevdev_has_event_code(dev->evdev, EV_KEY, code)) continue; - litest_button_click(dev, code, 1); - litest_button_click(dev, code, 0); + litest_button_click_debounced(dev, li, code, 1); + litest_button_click_debounced(dev, li, code, 0); libinput_dispatch(li); switch (code) { @@ -98,8 +98,8 @@ START_TEST(pad_time) litest_drain_events(li); msleep(10); - litest_button_click(dev, code, 1); - litest_button_click(dev, code, 0); + litest_button_click_debounced(dev, li, code, 1); + litest_button_click_debounced(dev, li, code, 0); libinput_dispatch(li); ev = libinput_get_event(li); @@ -156,8 +156,8 @@ START_TEST(pad_button) if (!libevdev_has_event_code(dev->evdev, EV_KEY, code)) continue; - litest_button_click(dev, code, 1); - litest_button_click(dev, code, 0); + litest_button_click_debounced(dev, li, code, 1); + litest_button_click_debounced(dev, li, code, 0); libinput_dispatch(li); switch (code) { @@ -207,8 +207,8 @@ START_TEST(pad_button_mode_groups) if (!libevdev_has_event_code(dev->evdev, EV_KEY, code)) continue; - litest_button_click(dev, code, 1); - litest_button_click(dev, code, 0); + litest_button_click_debounced(dev, li, code, 1); + litest_button_click_debounced(dev, li, code, 0); libinput_dispatch(li); switch (code) { diff --git a/test/test-pointer.c b/test/test-pointer.c index 3ce80840..136aa48c 100644 --- a/test/test-pointer.c +++ b/test/test-pointer.c @@ -348,7 +348,7 @@ test_button_event(struct litest_device *dev, unsigned int button, int state) { struct libinput *li = dev->libinput; - litest_button_click(dev, button, state); + litest_button_click_debounced(dev, li, button, state); litest_event(dev, EV_SYN, SYN_REPORT, 0); litest_assert_button_event(li, button, @@ -500,7 +500,7 @@ START_TEST(pointer_recover_from_lost_button_count) litest_drain_events(dev->libinput); - litest_button_click(dev, BTN_LEFT, 1); + litest_button_click_debounced(dev, li, BTN_LEFT, 1); litest_assert_button_event(li, BTN_LEFT, @@ -508,15 +508,15 @@ START_TEST(pointer_recover_from_lost_button_count) /* Grab for the release to make libinput lose count */ libevdev_grab(evdev, LIBEVDEV_GRAB); - litest_button_click(dev, BTN_LEFT, 0); + litest_button_click_debounced(dev, li, BTN_LEFT, 0); libevdev_grab(evdev, LIBEVDEV_UNGRAB); litest_assert_empty_queue(li); - litest_button_click(dev, BTN_LEFT, 1); + litest_button_click_debounced(dev, li, BTN_LEFT, 1); litest_assert_empty_queue(li); - litest_button_click(dev, BTN_LEFT, 0); + litest_button_click_debounced(dev, li, BTN_LEFT, 0); litest_assert_button_event(li, BTN_LEFT, LIBINPUT_BUTTON_STATE_RELEASED); @@ -802,7 +802,10 @@ START_TEST(pointer_seat_button_count) } for (i = 0; i < num_devices; ++i) - litest_button_click(devices[i], BTN_LEFT, true); + litest_button_click_debounced(devices[i], + libinput, + BTN_LEFT, + true); libinput_dispatch(libinput); while ((ev = libinput_get_event(libinput))) { @@ -832,7 +835,10 @@ START_TEST(pointer_seat_button_count) ck_assert_int_eq(seat_button_count, num_devices); for (i = 0; i < num_devices; ++i) - litest_button_click(devices[i], BTN_LEFT, false); + litest_button_click_debounced(devices[i], + libinput, + BTN_LEFT, + false); libinput_dispatch(libinput); while ((ev = libinput_get_event(libinput))) { @@ -921,8 +927,8 @@ START_TEST(pointer_left_handed) ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS); litest_drain_events(li); - litest_button_click(dev, BTN_LEFT, 1); - litest_button_click(dev, BTN_LEFT, 0); + litest_button_click_debounced(dev, li, BTN_LEFT, 1); + litest_button_click_debounced(dev, li, BTN_LEFT, 0); litest_assert_button_event(li, BTN_RIGHT, @@ -931,8 +937,8 @@ START_TEST(pointer_left_handed) BTN_RIGHT, LIBINPUT_BUTTON_STATE_RELEASED); - litest_button_click(dev, BTN_RIGHT, 1); - litest_button_click(dev, BTN_RIGHT, 0); + litest_button_click_debounced(dev, li, BTN_RIGHT, 1); + litest_button_click_debounced(dev, li, BTN_RIGHT, 0); litest_assert_button_event(li, BTN_LEFT, LIBINPUT_BUTTON_STATE_PRESSED); @@ -941,8 +947,8 @@ START_TEST(pointer_left_handed) LIBINPUT_BUTTON_STATE_RELEASED); if (libinput_device_pointer_has_button(d, BTN_MIDDLE)) { - litest_button_click(dev, BTN_MIDDLE, 1); - litest_button_click(dev, BTN_MIDDLE, 0); + litest_button_click_debounced(dev, li, BTN_MIDDLE, 1); + litest_button_click_debounced(dev, li, BTN_MIDDLE, 0); litest_assert_button_event(li, BTN_MIDDLE, LIBINPUT_BUTTON_STATE_PRESSED); @@ -961,14 +967,14 @@ START_TEST(pointer_left_handed_during_click) enum libinput_config_status status; litest_drain_events(li); - litest_button_click(dev, BTN_LEFT, 1); + litest_button_click_debounced(dev, li, BTN_LEFT, 1); libinput_dispatch(li); /* Change while button is down, expect correct release event */ status = libinput_device_config_left_handed_set(d, 1); ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS); - litest_button_click(dev, BTN_LEFT, 0); + litest_button_click_debounced(dev, li, BTN_LEFT, 0); litest_assert_button_event(li, BTN_LEFT, @@ -992,16 +998,16 @@ START_TEST(pointer_left_handed_during_click_multiple_buttons) litest_disable_middleemu(dev); litest_drain_events(li); - litest_button_click(dev, BTN_LEFT, 1); + litest_button_click_debounced(dev, li, BTN_LEFT, 1); libinput_dispatch(li); status = libinput_device_config_left_handed_set(d, 1); ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS); /* No left-handed until all buttons were down */ - litest_button_click(dev, BTN_RIGHT, 1); - litest_button_click(dev, BTN_RIGHT, 0); - litest_button_click(dev, BTN_LEFT, 0); + litest_button_click_debounced(dev, li, BTN_RIGHT, 1); + litest_button_click_debounced(dev, li, BTN_RIGHT, 0); + litest_button_click_debounced(dev, li, BTN_LEFT, 0); litest_assert_button_event(li, BTN_LEFT, @@ -1102,7 +1108,7 @@ START_TEST(pointer_scroll_button_no_event_before_timeout) BTN_LEFT); litest_drain_events(li); - litest_button_click(device, BTN_LEFT, true); + litest_button_click_debounced(device, li, BTN_LEFT, true); litest_assert_empty_queue(li); for (i = 0; i < 10; i++) { @@ -1113,7 +1119,7 @@ START_TEST(pointer_scroll_button_no_event_before_timeout) litest_timeout_buttonscroll(); libinput_dispatch(li); - litest_button_click(device, BTN_LEFT, false); + litest_button_click_debounced(device, li, BTN_LEFT, false); litest_assert_button_event(li, BTN_LEFT, LIBINPUT_BUTTON_STATE_PRESSED); @@ -1146,8 +1152,8 @@ START_TEST(pointer_scroll_button_middle_emulation) litest_drain_events(li); - litest_button_click(dev, BTN_LEFT, 1); - litest_button_click(dev, BTN_RIGHT, 1); + litest_button_click_debounced(dev, li, BTN_LEFT, 1); + litest_button_click_debounced(dev, li, BTN_RIGHT, 1); libinput_dispatch(li); litest_timeout_buttonscroll(); libinput_dispatch(li); @@ -1159,8 +1165,8 @@ START_TEST(pointer_scroll_button_middle_emulation) libinput_dispatch(li); - litest_button_click(dev, BTN_LEFT, 0); - litest_button_click(dev, BTN_RIGHT, 0); + litest_button_click_debounced(dev, li, BTN_LEFT, 0); + litest_button_click_debounced(dev, li, BTN_RIGHT, 0); libinput_dispatch(li); litest_assert_scroll(li, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, -1); @@ -1525,16 +1531,16 @@ START_TEST(middlebutton) litest_drain_events(li); for (i = 0; i < ARRAY_LENGTH(btn); i++) { - litest_button_click(device, btn[i][0], true); - litest_button_click(device, btn[i][1], true); + litest_button_click_debounced(device, li, btn[i][0], true); + litest_button_click_debounced(device, li, btn[i][1], true); litest_assert_button_event(li, BTN_MIDDLE, LIBINPUT_BUTTON_STATE_PRESSED); litest_assert_empty_queue(li); - litest_button_click(device, btn[i][2], false); - litest_button_click(device, btn[i][3], false); + litest_button_click_debounced(device, li, btn[i][2], false); + litest_button_click_debounced(device, li, btn[i][3], false); litest_assert_button_event(li, BTN_MIDDLE, LIBINPUT_BUTTON_STATE_RELEASED); @@ -1568,33 +1574,33 @@ START_TEST(middlebutton_nostart_while_down) if (status == LIBINPUT_CONFIG_STATUS_UNSUPPORTED) return; - litest_button_click(device, BTN_MIDDLE, true); + litest_button_click_debounced(device, li, BTN_MIDDLE, true); litest_drain_events(li); for (i = 0; i < ARRAY_LENGTH(btn); i++) { - litest_button_click(device, btn[i][0], true); + litest_button_click_debounced(device, li, btn[i][0], true); litest_assert_button_event(li, btn[i][0], LIBINPUT_BUTTON_STATE_PRESSED); - litest_button_click(device, btn[i][1], true); + litest_button_click_debounced(device, li, btn[i][1], true); litest_assert_button_event(li, btn[i][1], LIBINPUT_BUTTON_STATE_PRESSED); litest_assert_empty_queue(li); - litest_button_click(device, btn[i][2], false); + litest_button_click_debounced(device, li, btn[i][2], false); litest_assert_button_event(li, btn[i][2], LIBINPUT_BUTTON_STATE_RELEASED); - litest_button_click(device, btn[i][3], false); + litest_button_click_debounced(device, li, btn[i][3], false); litest_assert_button_event(li, btn[i][3], LIBINPUT_BUTTON_STATE_RELEASED); litest_assert_empty_queue(li); } - litest_button_click(device, BTN_MIDDLE, false); + litest_button_click_debounced(device, li, BTN_MIDDLE, false); litest_drain_events(li); } END_TEST @@ -1616,7 +1622,7 @@ START_TEST(middlebutton_timeout) for (button = BTN_LEFT; button <= BTN_RIGHT; button++) { litest_drain_events(li); - litest_button_click(device, button, true); + litest_button_click_debounced(device, li, button, true); litest_assert_empty_queue(li); litest_timeout_middlebutton(); @@ -1624,7 +1630,7 @@ START_TEST(middlebutton_timeout) button, LIBINPUT_BUTTON_STATE_PRESSED); - litest_button_click(device, button, false); + litest_button_click_debounced(device, li, button, false); litest_assert_button_event(li, button, LIBINPUT_BUTTON_STATE_RELEASED); @@ -1657,22 +1663,22 @@ START_TEST(middlebutton_doubleclick) litest_drain_events(li); for (i = 0; i < ARRAY_LENGTH(btn); i++) { - litest_button_click(device, btn[i][0], true); - litest_button_click(device, btn[i][1], true); + litest_button_click_debounced(device, li, btn[i][0], true); + litest_button_click_debounced(device, li, btn[i][1], true); litest_assert_button_event(li, BTN_MIDDLE, LIBINPUT_BUTTON_STATE_PRESSED); litest_assert_empty_queue(li); - litest_button_click(device, btn[i][2], false); - litest_button_click(device, btn[i][2], true); + litest_button_click_debounced(device, li, btn[i][2], false); + litest_button_click_debounced(device, li, btn[i][2], true); litest_assert_button_event(li, BTN_MIDDLE, LIBINPUT_BUTTON_STATE_RELEASED); litest_assert_button_event(li, BTN_MIDDLE, LIBINPUT_BUTTON_STATE_PRESSED); - litest_button_click(device, btn[i][3], false); + litest_button_click_debounced(device, li, btn[i][3], false); litest_assert_button_event(li, BTN_MIDDLE, @@ -1705,8 +1711,8 @@ START_TEST(middlebutton_middleclick) for (button = BTN_LEFT; button <= BTN_RIGHT; button++) { /* release button before middle */ litest_drain_events(li); - litest_button_click(device, button, true); - litest_button_click(device, BTN_MIDDLE, true); + litest_button_click_debounced(device, li, button, true); + litest_button_click_debounced(device, li, BTN_MIDDLE, true); litest_assert_button_event(li, button, LIBINPUT_BUTTON_STATE_PRESSED); @@ -1714,19 +1720,19 @@ START_TEST(middlebutton_middleclick) BTN_MIDDLE, LIBINPUT_BUTTON_STATE_PRESSED); litest_assert_empty_queue(li); - litest_button_click(device, button, false); + litest_button_click_debounced(device, li, button, false); litest_assert_button_event(li, button, LIBINPUT_BUTTON_STATE_RELEASED); - litest_button_click(device, BTN_MIDDLE, false); + litest_button_click_debounced(device, li, BTN_MIDDLE, false); litest_assert_button_event(li, BTN_MIDDLE, LIBINPUT_BUTTON_STATE_RELEASED); litest_assert_empty_queue(li); /* release middle before button */ - litest_button_click(device, button, true); - litest_button_click(device, BTN_MIDDLE, true); + litest_button_click_debounced(device, li, button, true); + litest_button_click_debounced(device, li, BTN_MIDDLE, true); litest_assert_button_event(li, button, LIBINPUT_BUTTON_STATE_PRESSED); @@ -1734,11 +1740,11 @@ START_TEST(middlebutton_middleclick) BTN_MIDDLE, LIBINPUT_BUTTON_STATE_PRESSED); litest_assert_empty_queue(li); - litest_button_click(device, BTN_MIDDLE, false); + litest_button_click_debounced(device, li, BTN_MIDDLE, false); litest_assert_button_event(li, BTN_MIDDLE, LIBINPUT_BUTTON_STATE_RELEASED); - litest_button_click(device, button, false); + litest_button_click_debounced(device, li, button, false); litest_assert_button_event(li, button, LIBINPUT_BUTTON_STATE_RELEASED); @@ -1770,14 +1776,14 @@ START_TEST(middlebutton_middleclick_during) /* trigger emulation, then real middle */ for (button = BTN_LEFT; button <= BTN_RIGHT; button++) { - litest_button_click(device, BTN_LEFT, true); - litest_button_click(device, BTN_RIGHT, true); + litest_button_click_debounced(device, li, BTN_LEFT, true); + litest_button_click_debounced(device, li, BTN_RIGHT, true); litest_assert_button_event(li, BTN_MIDDLE, LIBINPUT_BUTTON_STATE_PRESSED); - litest_button_click(device, BTN_MIDDLE, true); + litest_button_click_debounced(device, li, BTN_MIDDLE, true); litest_assert_button_event(li, BTN_MIDDLE, LIBINPUT_BUTTON_STATE_RELEASED); @@ -1788,23 +1794,23 @@ START_TEST(middlebutton_middleclick_during) litest_assert_empty_queue(li); /* middle still down, release left/right */ - litest_button_click(device, button, false); + litest_button_click_debounced(device, li, button, false); litest_assert_empty_queue(li); - litest_button_click(device, button, true); + litest_button_click_debounced(device, li, button, true); litest_assert_button_event(li, button, LIBINPUT_BUTTON_STATE_PRESSED); litest_assert_empty_queue(li); /* release both */ - litest_button_click(device, BTN_LEFT, false); - litest_button_click(device, BTN_RIGHT, false); + litest_button_click_debounced(device, li, BTN_LEFT, false); + litest_button_click_debounced(device, li, BTN_RIGHT, false); litest_assert_button_event(li, button, LIBINPUT_BUTTON_STATE_RELEASED); litest_assert_empty_queue(li); - litest_button_click(device, BTN_MIDDLE, false); + litest_button_click_debounced(device, li, BTN_MIDDLE, false); litest_assert_button_event(li, BTN_MIDDLE, LIBINPUT_BUTTON_STATE_RELEASED); diff --git a/test/test-touchpad-buttons.c b/test/test-touchpad-buttons.c index 9f38e833..d7da7f1b 100644 --- a/test/test-touchpad-buttons.c +++ b/test/test-touchpad-buttons.c @@ -1041,7 +1041,7 @@ START_TEST(clickpad_finger_pin) litest_touch_move_to(dev, 0, 48, 48, 50, 50, 10, 1); litest_assert_only_typed_events(li, LIBINPUT_EVENT_POINTER_MOTION); - litest_button_click(dev, BTN_LEFT, true); + litest_button_click_debounced(dev, li, BTN_LEFT, true); litest_drain_events(li); litest_touch_move_to(dev, 0, 50, 50, 50 + dist, 50 + dist, 10, 1); @@ -1050,7 +1050,7 @@ START_TEST(clickpad_finger_pin) litest_assert_empty_queue(li); - litest_button_click(dev, BTN_LEFT, false); + litest_button_click_debounced(dev, li, BTN_LEFT, false); litest_assert_only_typed_events(li, LIBINPUT_EVENT_POINTER_BUTTON); /* still pinned after release */ @@ -1490,7 +1490,7 @@ START_TEST(clickpad_softbutton_hover_into_buttons) litest_touch_move_to(dev, 0, 90, 90, 91, 91, 1, 0); - litest_button_click(dev, BTN_LEFT, true); + litest_button_click_debounced(dev, li, BTN_LEFT, true); libinput_dispatch(li); litest_assert_button_event(li, @@ -1498,7 +1498,7 @@ START_TEST(clickpad_softbutton_hover_into_buttons) LIBINPUT_BUTTON_STATE_PRESSED); litest_assert_empty_queue(li); - litest_button_click(dev, BTN_LEFT, false); + litest_button_click_debounced(dev, li, BTN_LEFT, false); litest_touch_up(dev, 0); litest_assert_button_event(li, diff --git a/test/test-touchpad-tap.c b/test/test-touchpad-tap.c index 6fc3c4f6..cd2f3e63 100644 --- a/test/test-touchpad-tap.c +++ b/test/test-touchpad-tap.c @@ -332,8 +332,8 @@ START_TEST(touchpad_1fg_multitap_n_drag_click) litest_touch_down(dev, 0, 50, 50); libinput_dispatch(li); - litest_button_click(dev, BTN_LEFT, true); - litest_button_click(dev, BTN_LEFT, false); + litest_button_click_debounced(dev, li, BTN_LEFT, true); + litest_button_click_debounced(dev, li, BTN_LEFT, false); libinput_dispatch(li); for (ntaps = 0; ntaps <= range; ntaps++) { @@ -627,8 +627,8 @@ START_TEST(touchpad_1fg_multitap_n_drag_tap_click) litest_touch_up(dev, 0); litest_touch_down(dev, 0, 70, 50); - litest_button_click(dev, BTN_LEFT, true); - litest_button_click(dev, BTN_LEFT, false); + litest_button_click_debounced(dev, li, BTN_LEFT, true); + litest_button_click_debounced(dev, li, BTN_LEFT, false); libinput_dispatch(li); litest_assert_button_event(li, @@ -799,8 +799,8 @@ START_TEST(touchpad_1fg_tap_n_drag_draglock_tap_click) litest_touch_up(dev, 0); litest_touch_down(dev, 0, 50, 50); - litest_button_click(dev, BTN_LEFT, true); - litest_button_click(dev, BTN_LEFT, false); + litest_button_click_debounced(dev, li, BTN_LEFT, true); + litest_button_click_debounced(dev, li, BTN_LEFT, false); libinput_dispatch(li); litest_assert_button_event(li, BTN_LEFT, diff --git a/test/test-touchpad.c b/test/test-touchpad.c index 895de1f6..638d0b85 100644 --- a/test/test-touchpad.c +++ b/test/test-touchpad.c @@ -842,7 +842,7 @@ START_TEST(touchpad_edge_scroll_buttonareas_click_stops_scroll) litest_touch_move_to(dev, 0, 20, 95, 70, 95, 10, 5); litest_assert_only_typed_events(li, LIBINPUT_EVENT_POINTER_AXIS); - litest_button_click(dev, BTN_LEFT, true); + litest_button_click_debounced(dev, li, BTN_LEFT, true); libinput_dispatch(li); event = libinput_get_event(li); @@ -865,7 +865,7 @@ START_TEST(touchpad_edge_scroll_buttonareas_click_stops_scroll) litest_touch_move_to(dev, 0, 70, 95, 90, 95, 10, 0); litest_assert_empty_queue(li); - litest_button_click(dev, BTN_LEFT, false); + litest_button_click_debounced(dev, li, BTN_LEFT, false); litest_assert_only_typed_events(li, LIBINPUT_EVENT_POINTER_BUTTON); @@ -892,7 +892,7 @@ START_TEST(touchpad_edge_scroll_clickfinger_click_stops_scroll) litest_touch_move_to(dev, 0, 20, 95, 70, 95, 10, 5); litest_assert_only_typed_events(li, LIBINPUT_EVENT_POINTER_AXIS); - litest_button_click(dev, BTN_LEFT, true); + litest_button_click_debounced(dev, li, BTN_LEFT, true); libinput_dispatch(li); event = libinput_get_event(li); @@ -916,7 +916,7 @@ START_TEST(touchpad_edge_scroll_clickfinger_click_stops_scroll) litest_assert_only_typed_events(li, LIBINPUT_EVENT_POINTER_MOTION); litest_assert_empty_queue(li); - litest_button_click(dev, BTN_LEFT, false); + litest_button_click_debounced(dev, li, BTN_LEFT, false); litest_assert_only_typed_events(li, LIBINPUT_EVENT_POINTER_BUTTON); @@ -1717,8 +1717,8 @@ START_TEST(touchpad_left_handed) ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS); litest_drain_events(li); - litest_button_click(dev, BTN_LEFT, 1); - litest_button_click(dev, BTN_LEFT, 0); + litest_button_click_debounced(dev, li, BTN_LEFT, 1); + litest_button_click_debounced(dev, li, BTN_LEFT, 0); litest_assert_button_event(li, BTN_RIGHT, @@ -1727,8 +1727,8 @@ START_TEST(touchpad_left_handed) BTN_RIGHT, LIBINPUT_BUTTON_STATE_RELEASED); - litest_button_click(dev, BTN_RIGHT, 1); - litest_button_click(dev, BTN_RIGHT, 0); + litest_button_click_debounced(dev, li, BTN_RIGHT, 1); + litest_button_click_debounced(dev, li, BTN_RIGHT, 0); litest_assert_button_event(li, BTN_LEFT, LIBINPUT_BUTTON_STATE_PRESSED); @@ -1739,8 +1739,8 @@ START_TEST(touchpad_left_handed) if (libevdev_has_event_code(dev->evdev, EV_KEY, BTN_MIDDLE)) { - litest_button_click(dev, BTN_MIDDLE, 1); - litest_button_click(dev, BTN_MIDDLE, 0); + litest_button_click_debounced(dev, li, BTN_MIDDLE, 1); + litest_button_click_debounced(dev, li, BTN_MIDDLE, 0); litest_assert_button_event(li, BTN_MIDDLE, LIBINPUT_BUTTON_STATE_PRESSED); @@ -1779,8 +1779,8 @@ START_TEST(touchpad_left_handed_clickpad) litest_drain_events(li); litest_touch_down(dev, 0, 10, 90); - litest_button_click(dev, BTN_LEFT, 1); - litest_button_click(dev, BTN_LEFT, 0); + litest_button_click_debounced(dev, li, BTN_LEFT, 1); + litest_button_click_debounced(dev, li, BTN_LEFT, 0); litest_touch_up(dev, 0); litest_assert_button_event(li, @@ -1792,8 +1792,8 @@ START_TEST(touchpad_left_handed_clickpad) litest_drain_events(li); litest_touch_down(dev, 0, 90, 90); - litest_button_click(dev, BTN_LEFT, 1); - litest_button_click(dev, BTN_LEFT, 0); + litest_button_click_debounced(dev, li, BTN_LEFT, 1); + litest_button_click_debounced(dev, li, BTN_LEFT, 0); litest_touch_up(dev, 0); litest_assert_button_event(li, @@ -1805,8 +1805,8 @@ START_TEST(touchpad_left_handed_clickpad) litest_drain_events(li); litest_touch_down(dev, 0, 50, 50); - litest_button_click(dev, BTN_LEFT, 1); - litest_button_click(dev, BTN_LEFT, 0); + litest_button_click_debounced(dev, li, BTN_LEFT, 1); + litest_button_click_debounced(dev, li, BTN_LEFT, 0); litest_touch_up(dev, 0); litest_assert_button_event(li, @@ -1833,8 +1833,8 @@ START_TEST(touchpad_left_handed_clickfinger) litest_drain_events(li); litest_touch_down(dev, 0, 10, 90); - litest_button_click(dev, BTN_LEFT, 1); - litest_button_click(dev, BTN_LEFT, 0); + litest_button_click_debounced(dev, li, BTN_LEFT, 1); + litest_button_click_debounced(dev, li, BTN_LEFT, 0); litest_touch_up(dev, 0); /* Clickfinger is unaffected by left-handed setting */ @@ -1848,8 +1848,8 @@ START_TEST(touchpad_left_handed_clickfinger) litest_drain_events(li); litest_touch_down(dev, 0, 10, 90); litest_touch_down(dev, 1, 30, 90); - litest_button_click(dev, BTN_LEFT, 1); - litest_button_click(dev, BTN_LEFT, 0); + litest_button_click_debounced(dev, li, BTN_LEFT, 1); + litest_button_click_debounced(dev, li, BTN_LEFT, 0); litest_touch_up(dev, 0); litest_touch_up(dev, 1); @@ -1943,13 +1943,13 @@ START_TEST(touchpad_left_handed_delayed) return; litest_drain_events(li); - litest_button_click(dev, BTN_LEFT, 1); + litest_button_click_debounced(dev, li, BTN_LEFT, 1); libinput_dispatch(li); status = libinput_device_config_left_handed_set(d, 1); ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS); - litest_button_click(dev, BTN_LEFT, 0); + litest_button_click_debounced(dev, li, BTN_LEFT, 0); litest_assert_button_event(li, BTN_LEFT, @@ -1959,18 +1959,18 @@ START_TEST(touchpad_left_handed_delayed) LIBINPUT_BUTTON_STATE_RELEASED); /* left-handed takes effect now */ - litest_button_click(dev, BTN_RIGHT, 1); + litest_button_click_debounced(dev, li, BTN_RIGHT, 1); libinput_dispatch(li); litest_timeout_middlebutton(); libinput_dispatch(li); - litest_button_click(dev, BTN_LEFT, 1); + litest_button_click_debounced(dev, li, BTN_LEFT, 1); libinput_dispatch(li); status = libinput_device_config_left_handed_set(d, 0); ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS); - litest_button_click(dev, BTN_RIGHT, 0); - litest_button_click(dev, BTN_LEFT, 0); + litest_button_click_debounced(dev, li, BTN_RIGHT, 0); + litest_button_click_debounced(dev, li, BTN_LEFT, 0); litest_assert_button_event(li, BTN_LEFT, @@ -1999,13 +1999,13 @@ START_TEST(touchpad_left_handed_clickpad_delayed) litest_drain_events(li); litest_touch_down(dev, 0, 10, 90); - litest_button_click(dev, BTN_LEFT, 1); + litest_button_click_debounced(dev, li, BTN_LEFT, 1); libinput_dispatch(li); status = libinput_device_config_left_handed_set(d, 1); ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS); - litest_button_click(dev, BTN_LEFT, 0); + litest_button_click_debounced(dev, li, BTN_LEFT, 0); litest_touch_up(dev, 0); litest_assert_button_event(li, @@ -2018,13 +2018,13 @@ START_TEST(touchpad_left_handed_clickpad_delayed) /* left-handed takes effect now */ litest_drain_events(li); litest_touch_down(dev, 0, 90, 90); - litest_button_click(dev, BTN_LEFT, 1); + litest_button_click_debounced(dev, li, BTN_LEFT, 1); libinput_dispatch(li); status = libinput_device_config_left_handed_set(d, 0); ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS); - litest_button_click(dev, BTN_LEFT, 0); + litest_button_click_debounced(dev, li, BTN_LEFT, 0); litest_touch_up(dev, 0); litest_assert_button_event(li, @@ -2657,12 +2657,12 @@ START_TEST(touchpad_trackpoint_buttons) litest_drain_events(li); ARRAY_FOR_EACH(buttons, b) { - litest_button_click(touchpad, b->device_value, true); + litest_button_click_debounced(touchpad, li, b->device_value, true); assert_btnevent_from_device(trackpoint, b->real_value, LIBINPUT_BUTTON_STATE_PRESSED); - litest_button_click(touchpad, b->device_value, false); + litest_button_click_debounced(touchpad, li, b->device_value, false); assert_btnevent_from_device(trackpoint, b->real_value, @@ -2683,7 +2683,7 @@ START_TEST(touchpad_trackpoint_mb_scroll) LITEST_TRACKPOINT); litest_drain_events(li); - litest_button_click(touchpad, BTN_2, true); /* middle */ + litest_button_click_debounced(touchpad, li, BTN_2, true); /* middle */ libinput_dispatch(li); litest_timeout_buttonscroll(); libinput_dispatch(li); @@ -2695,7 +2695,7 @@ START_TEST(touchpad_trackpoint_mb_scroll) litest_event(trackpoint, EV_SYN, SYN_REPORT, 0); litest_event(trackpoint, EV_REL, REL_Y, -2); litest_event(trackpoint, EV_SYN, SYN_REPORT, 0); - litest_button_click(touchpad, BTN_2, false); + litest_button_click_debounced(touchpad, li, BTN_2, false); litest_assert_only_typed_events(li, LIBINPUT_EVENT_POINTER_AXIS); @@ -2718,8 +2718,8 @@ START_TEST(touchpad_trackpoint_mb_click) ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS); litest_drain_events(li); - litest_button_click(touchpad, BTN_2, true); /* middle */ - litest_button_click(touchpad, BTN_2, false); + litest_button_click_debounced(touchpad, li, BTN_2, true); /* middle */ + litest_button_click_debounced(touchpad, li, BTN_2, false); assert_btnevent_from_device(trackpoint, BTN_MIDDLE, @@ -2743,11 +2743,11 @@ START_TEST(touchpad_trackpoint_buttons_softbuttons) litest_drain_events(li); litest_touch_down(touchpad, 0, 95, 90); - litest_button_click(touchpad, BTN_LEFT, true); - litest_button_click(touchpad, BTN_1, true); - litest_button_click(touchpad, BTN_LEFT, false); + litest_button_click_debounced(touchpad, li, BTN_LEFT, true); + litest_button_click_debounced(touchpad, li, BTN_1, true); + litest_button_click_debounced(touchpad, li, BTN_LEFT, false); litest_touch_up(touchpad, 0); - litest_button_click(touchpad, BTN_1, false); + litest_button_click_debounced(touchpad, li, BTN_1, false); assert_btnevent_from_device(touchpad, BTN_RIGHT, @@ -2763,10 +2763,10 @@ START_TEST(touchpad_trackpoint_buttons_softbuttons) LIBINPUT_BUTTON_STATE_RELEASED); litest_touch_down(touchpad, 0, 95, 90); - litest_button_click(touchpad, BTN_LEFT, true); - litest_button_click(touchpad, BTN_1, true); - litest_button_click(touchpad, BTN_1, false); - litest_button_click(touchpad, BTN_LEFT, false); + litest_button_click_debounced(touchpad, li, BTN_LEFT, true); + litest_button_click_debounced(touchpad, li, BTN_1, true); + litest_button_click_debounced(touchpad, li, BTN_1, false); + litest_button_click_debounced(touchpad, li, BTN_LEFT, false); litest_touch_up(touchpad, 0); assert_btnevent_from_device(touchpad, @@ -2818,7 +2818,7 @@ START_TEST(touchpad_trackpoint_buttons_2fg_scroll) libinput_event_destroy(e); } - litest_button_click(touchpad, BTN_1, true); + litest_button_click_debounced(touchpad, li, BTN_1, true); assert_btnevent_from_device(trackpoint, BTN_RIGHT, LIBINPUT_BUTTON_STATE_PRESSED); @@ -2838,7 +2838,7 @@ START_TEST(touchpad_trackpoint_buttons_2fg_scroll) libinput_event_destroy(e); } - litest_button_click(touchpad, BTN_1, false); + litest_button_click_debounced(touchpad, li, BTN_1, false); assert_btnevent_from_device(trackpoint, BTN_RIGHT, LIBINPUT_BUTTON_STATE_RELEASED); @@ -2874,16 +2874,16 @@ START_TEST(touchpad_trackpoint_no_trackpoint) struct libinput *li = touchpad->libinput; litest_drain_events(li); - litest_button_click(touchpad, BTN_0, true); /* left */ - litest_button_click(touchpad, BTN_0, false); + litest_button_click_debounced(touchpad, li, BTN_0, true); /* left */ + litest_button_click_debounced(touchpad, li, BTN_0, false); litest_assert_empty_queue(li); - litest_button_click(touchpad, BTN_1, true); /* right */ - litest_button_click(touchpad, BTN_1, false); + litest_button_click_debounced(touchpad, li, BTN_1, true); /* right */ + litest_button_click_debounced(touchpad, li, BTN_1, false); litest_assert_empty_queue(li); - litest_button_click(touchpad, BTN_2, true); /* middle */ - litest_button_click(touchpad, BTN_2, false); + litest_button_click_debounced(touchpad, li, BTN_2, true); /* middle */ + litest_button_click_debounced(touchpad, li, BTN_2, false); litest_assert_empty_queue(li); } END_TEST @@ -3679,8 +3679,8 @@ START_TEST(touchpad_dwt_click) litest_assert_only_typed_events(li, LIBINPUT_EVENT_KEYBOARD_KEY); litest_touch_down(touchpad, 0, 50, 50); - litest_button_click(touchpad, BTN_LEFT, true); - litest_button_click(touchpad, BTN_LEFT, false); + litest_button_click_debounced(touchpad, li, BTN_LEFT, true); + litest_button_click_debounced(touchpad, li, BTN_LEFT, false); libinput_dispatch(li); litest_touch_up(touchpad, 0); litest_assert_only_typed_events(li, LIBINPUT_EVENT_POINTER_BUTTON); @@ -4492,7 +4492,7 @@ START_TEST(touchpad_thumb_clickfinger) litest_touch_down(dev, 0, 50, 99); litest_touch_down(dev, 1, 60, 99); litest_touch_move_extended(dev, 0, 55, 99, axes); - litest_button_click(dev, BTN_LEFT, true); + litest_button_click_debounced(dev, li, BTN_LEFT, true); libinput_dispatch(li); event = libinput_get_event(li); @@ -4503,7 +4503,7 @@ START_TEST(touchpad_thumb_clickfinger) litest_assert_empty_queue(li); - litest_button_click(dev, BTN_LEFT, false); + litest_button_click_debounced(dev, li, BTN_LEFT, false); litest_touch_up(dev, 0); litest_touch_up(dev, 1); @@ -4512,7 +4512,7 @@ START_TEST(touchpad_thumb_clickfinger) litest_touch_down(dev, 0, 50, 99); litest_touch_down(dev, 1, 60, 99); litest_touch_move_extended(dev, 1, 65, 99, axes); - litest_button_click(dev, BTN_LEFT, true); + litest_button_click_debounced(dev, li, BTN_LEFT, true); libinput_dispatch(li); event = libinput_get_event(li); @@ -4547,7 +4547,7 @@ START_TEST(touchpad_thumb_btnarea) litest_touch_down(dev, 0, 90, 99); litest_touch_move_extended(dev, 0, 95, 99, axes); - litest_button_click(dev, BTN_LEFT, true); + litest_button_click_debounced(dev, li, BTN_LEFT, true); /* button areas work as usual with a thumb */ diff --git a/test/test-trackpoint.c b/test/test-trackpoint.c index adbd46e8..46a66893 100644 --- a/test/test-trackpoint.c +++ b/test/test-trackpoint.c @@ -43,9 +43,9 @@ START_TEST(trackpoint_middlebutton) litest_drain_events(li); /* A quick middle button click should get reported normally */ - litest_button_click(dev, BTN_MIDDLE, 1); + litest_button_click_debounced(dev, li, BTN_MIDDLE, 1); msleep(2); - litest_button_click(dev, BTN_MIDDLE, 0); + litest_button_click_debounced(dev, li, BTN_MIDDLE, 0); litest_wait_for_event(li); @@ -173,7 +173,7 @@ START_TEST(trackpoint_topsoftbuttons_left_handed_trackpoint) litest_touch_down(touchpad, 0, 5, 5); libinput_dispatch(li); - litest_button_click(touchpad, BTN_LEFT, true); + litest_button_click_debounced(touchpad, li, BTN_LEFT, true); libinput_dispatch(li); event = libinput_get_event(li); @@ -184,7 +184,7 @@ START_TEST(trackpoint_topsoftbuttons_left_handed_trackpoint) ck_assert(device == trackpoint->libinput_device); libinput_event_destroy(event); - litest_button_click(touchpad, BTN_LEFT, false); + litest_button_click_debounced(touchpad, li, BTN_LEFT, false); libinput_dispatch(li); event = libinput_get_event(li); litest_is_button_event(event, @@ -216,7 +216,7 @@ START_TEST(trackpoint_topsoftbuttons_left_handed_touchpad) litest_touch_down(touchpad, 0, 5, 5); libinput_dispatch(li); - litest_button_click(touchpad, BTN_LEFT, true); + litest_button_click_debounced(touchpad, li, BTN_LEFT, true); libinput_dispatch(li); event = libinput_get_event(li); @@ -225,7 +225,7 @@ START_TEST(trackpoint_topsoftbuttons_left_handed_touchpad) ck_assert(device == trackpoint->libinput_device); libinput_event_destroy(event); - litest_button_click(touchpad, BTN_LEFT, false); + litest_button_click_debounced(touchpad, li, BTN_LEFT, false); libinput_dispatch(li); event = libinput_get_event(li); litest_is_button_event(event, @@ -260,7 +260,7 @@ START_TEST(trackpoint_topsoftbuttons_left_handed_both) litest_touch_down(touchpad, 0, 5, 5); libinput_dispatch(li); - litest_button_click(touchpad, BTN_LEFT, true); + litest_button_click_debounced(touchpad, li, BTN_LEFT, true); libinput_dispatch(li); event = libinput_get_event(li); @@ -271,7 +271,7 @@ START_TEST(trackpoint_topsoftbuttons_left_handed_both) ck_assert(device == trackpoint->libinput_device); libinput_event_destroy(event); - litest_button_click(touchpad, BTN_LEFT, false); + litest_button_click_debounced(touchpad, li, BTN_LEFT, false); libinput_dispatch(li); event = libinput_get_event(li); litest_is_button_event(event,