Hi,
On 21-12-16 01:13, Peter Hutterer wrote:
Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
---
test/gestures.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
test/litest.c | 6 ++++++
test/litest.h | 3 +++
3 files changed, 64 insertions(+)
diff --git a/test/gestures.c b/test/gestures.c
index 0b132c3..3a66afb 100644
--- a/test/gestures.c
+++ b/test/gestures.c
@@ -496,6 +496,58 @@ START_TEST(gestures_swipe_4fg_btntool)
}
END_TEST
+START_TEST(gestures_pinch_vertical_positon)
+{
+ struct litest_device *dev = litest_current_device();
+ struct libinput *li = dev->libinput;
+ struct libinput_event *event;
+ int nfingers = _i; /* ranged test */
+
+ if (libevdev_get_num_slots(dev->evdev) < nfingers ||
+ !libinput_device_has_capability(dev->libinput_device,
+ LIBINPUT_DEVICE_CAP_GESTURE))
+ return;
+
+ litest_disable_tap(dev->libinput_device);
+ litest_drain_events(li);
+
+ litest_touch_down(dev, 0, 40, 30);
+ litest_touch_down(dev, 1, 50, 70);
+ litest_touch_down(dev, 2, 60, 70);
+ if (nfingers > 3)
+ litest_touch_down(dev, 3, 70, 70);
+ libinput_dispatch(li);
+ litest_timeout_gesture_scroll();
+ libinput_dispatch(li);
+
+ /* This is actually a small swipe gesture, all three fingers moving
+ * down but we're checking for the code that triggers based on
+ * finger position. */
+ litest_touch_move_to(dev, 0, 40, 30, 40, 30.5, 1, 0);
+ litest_touch_move_to(dev, 1, 50, 70, 50, 70.5, 1, 0);
+ litest_touch_move_to(dev, 2, 60, 70, 60, 70.5, 1, 0);
+ if (nfingers > 3)
+ litest_touch_move_to(dev, 3, 70, 70, 70, 70.5, 1, 0);
+ libinput_dispatch(li);
+
+ event = libinput_get_event(li);
+ litest_is_gesture_event(event,
+ LIBINPUT_EVENT_GESTURE_PINCH_BEGIN,
+ nfingers);
+ libinput_event_destroy(event);
+
+ litest_touch_move_to(dev, 0, 40, 30.5, 40, 36, 5, 0);
+ litest_touch_move_to(dev, 1, 50, 70.5, 50, 76, 5, 0);
+ litest_touch_move_to(dev, 2, 60, 70.5, 60, 76, 5, 0);
+ if (nfingers > 3)
+ litest_touch_move_to(dev, 3, 70, 70.5, 60, 76, 5, 0);
+ libinput_dispatch(li);
+
+ litest_assert_only_typed_events(li,
+ LIBINPUT_EVENT_GESTURE_PINCH_UPDATE);
+}
+END_TEST
+
START_TEST(gestures_pinch)
{
struct litest_device *dev = litest_current_device();
@@ -1219,6 +1271,7 @@ litest_setup_tests_gestures(void)
{
/* N, NE, ... */
struct range cardinals = { 0, 8 };
+ struct range fingers = { 3, 5 };
litest_add("gestures:cap", gestures_cap, LITEST_TOUCHPAD,
LITEST_SINGLE_TOUCH);
litest_add("gestures:cap", gestures_nocap, LITEST_ANY, LITEST_TOUCHPAD);
@@ -1230,9 +1283,11 @@ litest_setup_tests_gestures(void)
litest_add_ranged("gestures:pinch", gestures_pinch, LITEST_TOUCHPAD,
LITEST_SINGLE_TOUCH, &cardinals);
litest_add_ranged("gestures:pinch", gestures_pinch_3fg, LITEST_TOUCHPAD,
LITEST_SINGLE_TOUCH, &cardinals);
litest_add_ranged("gestures:pinch", gestures_pinch_3fg_btntool,
LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals);
+ litest_add_ranged("gestures:pinch", gestures_pinch_3fg, LITEST_TOUCHPAD,
LITEST_SINGLE_TOUCH, &cardinals);
Your doing the:
litest_add_ranged("gestures:pinch", gestures_pinch_3fg, LITEST_TOUCHPAD,
LITEST_SINGLE_TOUCH, &cardinals);
Test twice now, otherwise LGTM, so with this fixed:
Reviewed-by: Hans de Goede <hdego...@redhat.com>
Regards,
Hans
litest_add_ranged("gestures:pinch", gestures_pinch_4fg, LITEST_TOUCHPAD,
LITEST_SINGLE_TOUCH, &cardinals);
litest_add_ranged("gestures:pinch", gestures_pinch_4fg_btntool,
LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals);
litest_add_ranged("gestures:pinch", gestures_spread, LITEST_TOUCHPAD,
LITEST_SINGLE_TOUCH, &cardinals);
+ litest_add_ranged("gestures:pinch", gestures_pinch_vertical_positon,
LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &fingers);
litest_add("gestures:swipe", gestures_3fg_buttonarea_scroll,
LITEST_CLICKPAD, LITEST_SINGLE_TOUCH);
litest_add("gestures:swipe", gestures_3fg_buttonarea_scroll_btntool,
LITEST_CLICKPAD, LITEST_SINGLE_TOUCH);
diff --git a/test/litest.c b/test/litest.c
index 40029d6..0574c0a 100644
--- a/test/litest.c
+++ b/test/litest.c
@@ -2964,6 +2964,12 @@ litest_timeout_gesture(void)
}
void
+litest_timeout_gesture_scroll(void)
+{
+ msleep(180);
+}
+
+void
litest_timeout_trackpoint(void)
{
msleep(320);
diff --git a/test/litest.h b/test/litest.h
index 017a3d2..a707509 100644
--- a/test/litest.h
+++ b/test/litest.h
@@ -654,6 +654,9 @@ void
litest_timeout_gesture(void);
void
+litest_timeout_gesture_scroll(void);
+
+void
litest_timeout_trackpoint(void);
void
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel