Merge branch 'tap-to-end-drag'
authorPeter Hutterer <peter.hutterer@who-t.net>
Mon, 18 May 2015 04:07:45 +0000 (14:07 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Mon, 18 May 2015 04:12:12 +0000 (14:12 +1000)
Changed the test merged in to use the new ranged litests functionality

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
1  2 
test/touchpad.c

diff --cc test/touchpad.c
index 2f7cb3c171a7d30b89976e993edec298ce3439d4,3d37f9e2ea2f0fea03322bfff30c5e38c3949ec1..e3052d48f0f71d0a05c0a295484426822b79ff39
@@@ -501,6 -511,168 +501,166 @@@ START_TEST(touchpad_1fg_multitap_n_drag
  }
  END_TEST
  
 -      int i, ntaps;
+ START_TEST(touchpad_1fg_multitap_n_drag_tap)
+ {
+       struct litest_device *dev = litest_current_device();
+       struct libinput *li = dev->libinput;
+       struct libinput_event *event;
+       struct libinput_event_pointer *ptrev;
+       uint32_t oldtime = 0,
+                curtime;
 -      for (i = 3; i < 5; i++) {
 -
 -              for (ntaps = 0; ntaps <= i; ntaps++) {
 -                      litest_touch_down(dev, 0, 50, 50);
 -                      litest_touch_up(dev, 0);
 -                      libinput_dispatch(li);
 -                      msleep(10);
 -              }
 -
 -              libinput_dispatch(li);
++      int range = _i, /* looped test */
++          ntaps;
+       libinput_device_config_tap_set_enabled(dev->libinput_device,
+                                              LIBINPUT_CONFIG_TAP_ENABLED);
+       litest_drain_events(li);
 -              litest_timeout_tap();
 -              libinput_dispatch(li);
 -
 -              for (ntaps = 0; ntaps <= i; ntaps++) {
 -                      event = libinput_get_event(li);
 -                      ptrev = litest_is_button_event(event,
 -                                                     BTN_LEFT,
 -                                                     LIBINPUT_BUTTON_STATE_PRESSED);
 -                      curtime = libinput_event_pointer_get_time(ptrev);
 -                      libinput_event_destroy(event);
 -                      ck_assert_int_gt(curtime, oldtime);
++      for (ntaps = 0; ntaps <= range; ntaps++) {
+               litest_touch_down(dev, 0, 50, 50);
++              litest_touch_up(dev, 0);
+               libinput_dispatch(li);
++              msleep(10);
++      }
 -                      event = libinput_get_event(li);
 -                      ptrev = litest_is_button_event(event,
 -                                                     BTN_LEFT,
 -                                                     LIBINPUT_BUTTON_STATE_RELEASED);
 -                      curtime = libinput_event_pointer_get_time(ptrev);
 -                      libinput_event_destroy(event);
 -                      ck_assert_int_ge(curtime, oldtime);
 -                      oldtime = curtime;
 -              }
++      libinput_dispatch(li);
++      litest_touch_down(dev, 0, 50, 50);
++      libinput_dispatch(li);
 -              litest_touch_move_to(dev, 0, 50, 50, 70, 50, 10, 4);
++      litest_timeout_tap();
++      libinput_dispatch(li);
++      for (ntaps = 0; ntaps <= range; ntaps++) {
+               event = libinput_get_event(li);
+               ptrev = litest_is_button_event(event,
+                                              BTN_LEFT,
+                                              LIBINPUT_BUTTON_STATE_PRESSED);
+               curtime = libinput_event_pointer_get_time(ptrev);
+               libinput_event_destroy(event);
+               ck_assert_int_gt(curtime, oldtime);
 -              litest_assert_only_typed_events(li,
 -                                              LIBINPUT_EVENT_POINTER_MOTION);
++              event = libinput_get_event(li);
++              ptrev = litest_is_button_event(event,
++                                             BTN_LEFT,
++                                             LIBINPUT_BUTTON_STATE_RELEASED);
++              curtime = libinput_event_pointer_get_time(ptrev);
++              libinput_event_destroy(event);
++              ck_assert_int_ge(curtime, oldtime);
++              oldtime = curtime;
++      }
 -              litest_touch_up(dev, 0);
 -              litest_touch_down(dev, 0, 70, 50);
 -              litest_touch_up(dev, 0);
 -              litest_assert_button_event(li,
 -                                         BTN_LEFT,
 -                                         LIBINPUT_BUTTON_STATE_RELEASED);
++      event = libinput_get_event(li);
++      ptrev = litest_is_button_event(event,
++                                     BTN_LEFT,
++                                     LIBINPUT_BUTTON_STATE_PRESSED);
++      curtime = libinput_event_pointer_get_time(ptrev);
++      libinput_event_destroy(event);
++      ck_assert_int_gt(curtime, oldtime);
 -              litest_assert_empty_queue(li);
 -      }
++      litest_touch_move_to(dev, 0, 50, 50, 70, 50, 10, 4);
++      litest_assert_only_typed_events(li,
++                                      LIBINPUT_EVENT_POINTER_MOTION);
++
++      litest_touch_up(dev, 0);
++      litest_touch_down(dev, 0, 70, 50);
++      litest_touch_up(dev, 0);
++      litest_assert_button_event(li,
++                                 BTN_LEFT,
++                                 LIBINPUT_BUTTON_STATE_RELEASED);
++
++      litest_assert_empty_queue(li);
+ }
+ END_TEST
+ START_TEST(touchpad_1fg_multitap_n_drag_tap_click)
+ {
+       struct litest_device *dev = litest_current_device();
+       struct libinput *li = dev->libinput;
+       struct libinput_event *event;
+       struct libinput_event_pointer *ptrev;
+       uint32_t oldtime = 0,
+                curtime;
+       int i, ntaps;
+       libinput_device_config_tap_set_enabled(dev->libinput_device,
+                                              LIBINPUT_CONFIG_TAP_ENABLED);
+       litest_drain_events(li);
+       for (i = 3; i < 5; i++) {
+               for (ntaps = 0; ntaps <= i; ntaps++) {
+                       litest_touch_down(dev, 0, 50, 50);
+                       litest_touch_up(dev, 0);
+                       libinput_dispatch(li);
+                       msleep(10);
+               }
+               libinput_dispatch(li);
+               litest_touch_down(dev, 0, 50, 50);
+               libinput_dispatch(li);
+               litest_timeout_tap();
+               libinput_dispatch(li);
+               for (ntaps = 0; ntaps <= i; ntaps++) {
+                       event = libinput_get_event(li);
+                       ptrev = litest_is_button_event(event,
+                                                      BTN_LEFT,
+                                                      LIBINPUT_BUTTON_STATE_PRESSED);
+                       curtime = libinput_event_pointer_get_time(ptrev);
+                       libinput_event_destroy(event);
+                       ck_assert_int_gt(curtime, oldtime);
+                       event = libinput_get_event(li);
+                       ptrev = litest_is_button_event(event,
+                                                      BTN_LEFT,
+                                                      LIBINPUT_BUTTON_STATE_RELEASED);
+                       curtime = libinput_event_pointer_get_time(ptrev);
+                       libinput_event_destroy(event);
+                       ck_assert_int_ge(curtime, oldtime);
+                       oldtime = curtime;
+               }
+               event = libinput_get_event(li);
+               ptrev = litest_is_button_event(event,
+                                              BTN_LEFT,
+                                              LIBINPUT_BUTTON_STATE_PRESSED);
+               curtime = libinput_event_pointer_get_time(ptrev);
+               libinput_event_destroy(event);
+               ck_assert_int_gt(curtime, oldtime);
+               litest_touch_move_to(dev, 0, 50, 50, 70, 50, 10, 4);
+               litest_assert_only_typed_events(li,
+                                               LIBINPUT_EVENT_POINTER_MOTION);
+               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);
+               libinput_dispatch(li);
+               litest_assert_button_event(li,
+                                          BTN_LEFT,
+                                          LIBINPUT_BUTTON_STATE_RELEASED);
+               /* the physical click */
+               litest_assert_button_event(li,
+                                          BTN_LEFT,
+                                          LIBINPUT_BUTTON_STATE_PRESSED);
+               litest_assert_button_event(li,
+                                          BTN_LEFT,
+                                          LIBINPUT_BUTTON_STATE_RELEASED);
+               litest_touch_up(dev, 0);
+               litest_assert_empty_queue(li);
+       }
+ }
+ END_TEST
  START_TEST(touchpad_1fg_tap_n_drag)
  {
        struct litest_device *dev = litest_current_device();
@@@ -4281,12 -4546,14 +4536,14 @@@ int main(int argc, char **argv
  
        litest_add("touchpad:tap", touchpad_1fg_tap, LITEST_TOUCHPAD, LITEST_ANY);
        litest_add("touchpad:tap", touchpad_1fg_doubletap, LITEST_TOUCHPAD, LITEST_ANY);
 -      litest_add("touchpad:tap", touchpad_1fg_multitap, LITEST_TOUCHPAD, LITEST_ANY);
 -      litest_add("touchpad:tap", touchpad_1fg_multitap_n_drag_timeout, LITEST_TOUCHPAD, LITEST_ANY);
 -      litest_add("touchpad:tap", touchpad_1fg_multitap_n_drag_tap, LITEST_TOUCHPAD, LITEST_ANY);
 -      litest_add("touchpad:tap", touchpad_1fg_multitap_n_drag_move, LITEST_TOUCHPAD, LITEST_ANY);
 -      litest_add("touchpad:tap", touchpad_1fg_multitap_n_drag_2fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH);
 -      litest_add("touchpad:tap", touchpad_1fg_multitap_n_drag_click, LITEST_CLICKPAD, LITEST_ANY);
 +      litest_add_ranged("touchpad:tap", touchpad_1fg_multitap, LITEST_TOUCHPAD, LITEST_ANY, &multitap_range);
 +      litest_add_ranged("touchpad:tap", touchpad_1fg_multitap_n_drag_timeout, LITEST_TOUCHPAD, LITEST_ANY, &multitap_range);
++      litest_add_ranged("touchpad:tap", touchpad_1fg_multitap_n_drag_tap, LITEST_TOUCHPAD, LITEST_ANY, &multitap_range);
 +      litest_add_ranged("touchpad:tap", touchpad_1fg_multitap_n_drag_move, LITEST_TOUCHPAD, LITEST_ANY, &multitap_range);
 +      litest_add_ranged("touchpad:tap", touchpad_1fg_multitap_n_drag_2fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &multitap_range);
 +      litest_add_ranged("touchpad:tap", touchpad_1fg_multitap_n_drag_click, LITEST_CLICKPAD, LITEST_ANY, &multitap_range);
        litest_add("touchpad:tap", touchpad_1fg_tap_n_drag, LITEST_TOUCHPAD, LITEST_ANY);
+       litest_add("touchpad:tap", touchpad_1fg_tap_n_drag_tap, LITEST_TOUCHPAD, LITEST_ANY);
        litest_add("touchpad:tap", touchpad_1fg_tap_n_drag_timeout, LITEST_TOUCHPAD, LITEST_ANY);
        litest_add("touchpad:tap", touchpad_2fg_tap_n_drag, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH);
        litest_add("touchpad:tap", touchpad_2fg_tap_n_drag_3fg_btntool, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH|LITEST_APPLE_CLICKPAD);