[PATCH libinput] test: add test for the vertical position-dependent pinch

Hans de Goede hdegoede at redhat.com
Wed Dec 21 08:38:39 UTC 2016


Hi,

On 21-12-16 01:13, Peter Hutterer wrote:
> Signed-off-by: Peter Hutterer <peter.hutterer at 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 <hdegoede at 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
>


More information about the wayland-devel mailing list