test: split out the touchpad tap tests into multiple collections
authorPeter Hutterer <peter.hutterer@who-t.net>
Thu, 17 Oct 2024 09:35:16 +0000 (19:35 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Fri, 18 Oct 2024 00:49:47 +0000 (10:49 +1000)
These take a long time and have a reasonable high chance of failure due
to the timing constraints. Let's split them up so they don't hog the
runners for that long and in case they fail, we only need to re-run a
short test.

Before: one test running approx 21 min, now 3 tests running approx 7 +
11 + 4 min.

Part-of: <https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1065>

.gitlab-ci.yml
.gitlab-ci/config.yml
meson.build
test/test-touchpad-tap.c

index 5e90da3a60cdab3ef7206cceaff732c690bd927c..46376f35a182036b4bb878191b18dbe40a2bf414 100644 (file)
@@ -568,6 +568,32 @@ vm-tap-no-libwacom:
   variables:
     MESON_ARGS: '-Dlibwacom=false'
 
+vm-tap-drag:
+  extends:
+    - .fedora:40@test-suite-vm
+  variables:
+    SUITE_NAMES: 'touchpad_tap_drag'
+
+vm-tap-drag-no-libwacom:
+  extends:
+    - vm-tap-drag
+  stage: test-suite-no-libwacom
+  variables:
+    MESON_ARGS: '-Dlibwacom=false'
+
+vm-tap-palm:
+  extends:
+    - .fedora:40@test-suite-vm
+  variables:
+    SUITE_NAMES: 'touchpad_tap_palm'
+
+vm-tap-palm-no-libwacom:
+  extends:
+    - vm-tap-palm
+  stage: test-suite-no-libwacom
+  variables:
+    MESON_ARGS: '-Dlibwacom=false'
+
 vm-touchpad-buttons:
   extends:
     - .fedora:40@test-suite-vm
@@ -684,6 +710,30 @@ vm-valgrind-tap:
   rules:
     - if: $GITLAB_USER_LOGIN != "marge-bot"
 
+vm-valgrind-tap-drag:
+  stage: valgrind
+  extends:
+    - vm-tap-drag
+  variables:
+    MESON_TEST_ARGS: '--setup=valgrind'
+    LITEST_JOBS: 2
+  retry:
+    max: 2
+  rules:
+    - if: $GITLAB_USER_LOGIN != "marge-bot"
+
+vm-valgrind-tap-palm:
+  stage: valgrind
+  extends:
+    - vm-tap-palm
+  variables:
+    MESON_TEST_ARGS: '--setup=valgrind'
+    LITEST_JOBS: 2
+  retry:
+    max: 2
+  rules:
+    - if: $GITLAB_USER_LOGIN != "marge-bot"
+
 vm-valgrind-touchpad-buttons:
   stage: valgrind
   extends:
@@ -896,6 +946,8 @@ check-test-suites:
       cat <<EOF > ci-testsuites ;
         libinput-test-suite-touchpad
         libinput-test-suite-touchpad_tap
+        libinput-test-suite-touchpad_tap_drag
+        libinput-test-suite-touchpad_tap_palm
         libinput-test-suite-touchpad_buttons
         libinput-test-suite-tablet
         libinput-test-suite-gestures
index f8cbc3743b8b43a6479c2f25ca298b8d3779d6ba..e1f603c7617065c9f4a4ca1498b958ea17faf914 100644 (file)
@@ -175,6 +175,12 @@ test_suites:
   - name: tap
     suites:
       - touchpad_tap
+  - name: tap-drag
+    suites:
+      - touchpad_tap_drag
+  - name: tap-palm
+    suites:
+      - touchpad_tap_palm
   - name: touchpad-buttons
     suites:
       - touchpad_buttons
index fae140eb36e11cb35a05df50e5d940cfdc32ca0b..c4df02e1385a0408041bcd5521f90aa5c813f442 100644 (file)
@@ -953,6 +953,8 @@ if get_option('tests')
                'touchpad',
                'touchpad_buttons',
                'touchpad_tap',
+               'touchpad_tap_drag',
+               'touchpad_tap_palm',
                'trackball',
                'trackpoint',
                'udev',
index c2d1b1b042e543153d909a63f269597b7decb13c..3e7215905482b6499bcb3d37c4ff1dac9f187906 100644 (file)
@@ -5689,14 +5689,9 @@ END_TEST
 
 TEST_COLLECTION(touchpad_tap)
 {
-       struct range any_tap_range = {3, 12};
        struct range multitap_range = {9, 15};
        struct range tap_map_range = { LIBINPUT_CONFIG_TAP_MAP_LRM,
                                       LIBINPUT_CONFIG_TAP_MAP_LMR + 1 };
-       struct range range_2fg = {0, 2};
-       struct range range_2fg_multifinger_tap = {2, 8};
-       struct range range_3fg = {0, 3};
-       struct range range_4fg = {0, 4};
        struct range range_multifinger = {2, 5};
        struct range range_multifinger_tap = {1, 4};
        struct range range_multifinger_doubletap = {3, 12};
@@ -5705,12 +5700,6 @@ TEST_COLLECTION(touchpad_tap)
        litest_add_ranged(touchpad_doubletap, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_doubletap);
        litest_add_ranged(touchpad_multitap, LITEST_TOUCHPAD, LITEST_ANY, &multitap_range);
        litest_add_ranged(touchpad_multitap_timeout, LITEST_TOUCHPAD, LITEST_ANY, &multitap_range);
-       litest_add_ranged(touchpad_multitap_n_drag_timeout, LITEST_TOUCHPAD, LITEST_ANY, &multitap_range);
-       litest_add_ranged(touchpad_multitap_n_drag_high_delay, LITEST_TOUCHPAD, LITEST_ANY, &any_tap_range);
-       litest_add_ranged(touchpad_multitap_n_drag_tap, LITEST_TOUCHPAD, LITEST_ANY, &multitap_range);
-       litest_add_ranged(touchpad_multitap_n_drag_move, LITEST_TOUCHPAD, LITEST_ANY, &multitap_range);
-       litest_add_ranged(touchpad_multitap_n_drag_2fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &multitap_range);
-       litest_add_ranged(touchpad_multitap_n_drag_click, LITEST_CLICKPAD, LITEST_ANY, &multitap_range);
        litest_add_ranged(touchpad_2fg_tap, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH|LITEST_SEMI_MT, &tap_map_range);
        litest_add_ranged(touchpad_2fg_tap_inverted, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &tap_map_range);
        litest_add(touchpad_2fg_tap_move_on_release, LITEST_TOUCHPAD|LITEST_SEMI_MT, LITEST_SINGLE_TOUCH);
@@ -5742,25 +5731,9 @@ TEST_COLLECTION(touchpad_tap)
 
        litest_add_ranged(touchpad_move_after_touch, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger);
 
-       litest_add_ranged(touchpad_tap_n_drag, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_tap);
-       litest_add_ranged(touchpad_tap_n_drag_2fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_multifinger_tap);
-       litest_add_ranged(touchpad_tap_n_drag_2fg_scroll, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_multifinger_tap);
-       litest_add_ranged(touchpad_tap_n_drag_draglock_2fg_scroll, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_multifinger_tap);
-       litest_add_ranged(touchpad_tap_n_drag_3fg_btntool, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH|LITEST_APPLE_CLICKPAD, &range_multifinger_tap);
-       litest_add_ranged(touchpad_tap_n_drag_3fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_multifinger_tap);
-       litest_add_ranged(touchpad_tap_n_drag_3fg_swipe, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_multifinger_tap);
-       litest_add_ranged(touchpad_tap_n_drag_draglock_3fg_swipe, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_multifinger_tap);
-       litest_add_ranged(touchpad_tap_n_drag_draglock, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_tap);
-       litest_add_ranged(touchpad_tap_n_drag_draglock_tap, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_doubletap);
-       litest_add_ranged(touchpad_tap_n_drag_draglock_timeout, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_tap);
-       litest_add_ranged(touchpad_tap_n_drag_draglock_sticky, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_tap);
-
        /* Real buttons don't interfere with tapping, so don't run those for
           pads with buttons */
        litest_add_ranged(touchpad_double_tap_click, LITEST_CLICKPAD, LITEST_ANY, &range_multifinger_tap);
-       litest_add_ranged(touchpad_tap_n_drag_click, LITEST_CLICKPAD, LITEST_ANY, &range_multifinger_tap);
-       litest_add_ranged(touchpad_multitap_n_drag_tap_click, LITEST_CLICKPAD, LITEST_ANY, &multitap_range);
-       litest_add_ranged(touchpad_tap_n_drag_draglock_tap_click, LITEST_CLICKPAD, LITEST_ANY, &range_multifinger_tap);
 
        litest_add(touchpad_tap_default_disabled, LITEST_TOUCHPAD|LITEST_BUTTON, LITEST_ANY);
        litest_add(touchpad_tap_default_enabled, LITEST_TOUCHPAD, LITEST_BUTTON);
@@ -5777,10 +5750,43 @@ TEST_COLLECTION(touchpad_tap)
 
        litest_add(clickpad_1fg_tap_click, LITEST_CLICKPAD, LITEST_ANY);
        litest_add(clickpad_2fg_tap_click, LITEST_CLICKPAD, LITEST_SINGLE_TOUCH|LITEST_APPLE_CLICKPAD);
+}
+
+TEST_COLLECTION(touchpad_tap_drag)
+{
+       struct range any_tap_range = {3, 12};
+       struct range multitap_range = {9, 15};
+       struct range range_multifinger_tap = {1, 4};
+       struct range range_multifinger_doubletap = {3, 12};
 
        litest_add(touchpad_drag_lock_default_disabled, LITEST_TOUCHPAD, LITEST_ANY);
        litest_add(touchpad_drag_lock_default_unavailable, LITEST_ANY, LITEST_TOUCHPAD);
 
+       litest_add_ranged(touchpad_tap_n_drag_click, LITEST_CLICKPAD, LITEST_ANY, &range_multifinger_tap);
+       litest_add_ranged(touchpad_multitap_n_drag_tap_click, LITEST_CLICKPAD, LITEST_ANY, &multitap_range);
+       litest_add_ranged(touchpad_tap_n_drag_draglock_tap_click, LITEST_CLICKPAD, LITEST_ANY, &range_multifinger_tap);
+
+       litest_add_ranged(touchpad_multitap_n_drag_timeout, LITEST_TOUCHPAD, LITEST_ANY, &multitap_range);
+       litest_add_ranged(touchpad_multitap_n_drag_high_delay, LITEST_TOUCHPAD, LITEST_ANY, &any_tap_range);
+       litest_add_ranged(touchpad_multitap_n_drag_tap, LITEST_TOUCHPAD, LITEST_ANY, &multitap_range);
+       litest_add_ranged(touchpad_multitap_n_drag_move, LITEST_TOUCHPAD, LITEST_ANY, &multitap_range);
+       litest_add_ranged(touchpad_multitap_n_drag_2fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &multitap_range);
+       litest_add_ranged(touchpad_multitap_n_drag_click, LITEST_CLICKPAD, LITEST_ANY, &multitap_range);
+
+       litest_add_ranged(touchpad_tap_n_drag, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_tap);
+       litest_add_ranged(touchpad_tap_n_drag_2fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_multifinger_tap);
+       litest_add_ranged(touchpad_tap_n_drag_2fg_scroll, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_multifinger_tap);
+       litest_add_ranged(touchpad_tap_n_drag_draglock_2fg_scroll, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_multifinger_tap);
+       litest_add_ranged(touchpad_tap_n_drag_3fg_btntool, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH|LITEST_APPLE_CLICKPAD, &range_multifinger_tap);
+       litest_add_ranged(touchpad_tap_n_drag_3fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_multifinger_tap);
+       litest_add_ranged(touchpad_tap_n_drag_3fg_swipe, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_multifinger_tap);
+       litest_add_ranged(touchpad_tap_n_drag_draglock_3fg_swipe, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_multifinger_tap);
+       litest_add_ranged(touchpad_tap_n_drag_draglock, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_tap);
+       litest_add_ranged(touchpad_tap_n_drag_draglock_tap, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_doubletap);
+       litest_add_ranged(touchpad_tap_n_drag_draglock_timeout, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_tap);
+       litest_add_ranged(touchpad_tap_n_drag_draglock_sticky, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_tap);
+
+
        litest_add(touchpad_drag_default_disabled, LITEST_ANY, LITEST_TOUCHPAD);
        litest_add(touchpad_drag_default_enabled, LITEST_TOUCHPAD, LITEST_BUTTON);
        litest_add(touchpad_drag_config_invalid, LITEST_TOUCHPAD, LITEST_ANY);
@@ -5789,6 +5795,17 @@ TEST_COLLECTION(touchpad_tap)
        litest_add_ranged(touchpad_drag_disabled, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_tap);
        litest_add_ranged(touchpad_drag_disabled_immediate, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_tap);
        litest_add_ranged(touchpad_drag_disabled_multitap_no_drag, LITEST_TOUCHPAD, LITEST_ANY, &multitap_range);
+}
+
+TEST_COLLECTION(touchpad_tap_palm)
+{
+       struct range multitap_range = {9, 15};
+       struct range range_multifinger_tap = {1, 4};
+       struct range range_multifinger_doubletap = {3, 12};
+       struct range range_2fg = {0, 2};
+       struct range range_2fg_multifinger_tap = {2, 8};
+       struct range range_3fg = {0, 3};
+       struct range range_4fg = {0, 4};
 
        litest_add(touchpad_tap_palm_on_idle, LITEST_TOUCHPAD, LITEST_ANY);
        litest_add(touchpad_tap_palm_on_touch, LITEST_TOUCHPAD, LITEST_ANY);