From a67dbefc0fd38d722f06d2c30b86b767580205b1 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 17 Oct 2024 19:35:16 +1000 Subject: [PATCH] test: split out the touchpad tap tests into multiple collections 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: --- .gitlab-ci.yml | 52 +++++++++++++++++++++++++++++ .gitlab-ci/config.yml | 6 ++++ meson.build | 2 ++ test/test-touchpad-tap.c | 71 +++++++++++++++++++++++++--------------- 4 files changed, 104 insertions(+), 27 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5e90da3a..46376f35 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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 < 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 diff --git a/.gitlab-ci/config.yml b/.gitlab-ci/config.yml index f8cbc374..e1f603c7 100644 --- a/.gitlab-ci/config.yml +++ b/.gitlab-ci/config.yml @@ -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 diff --git a/meson.build b/meson.build index fae140eb..c4df02e1 100644 --- a/meson.build +++ b/meson.build @@ -953,6 +953,8 @@ if get_option('tests') 'touchpad', 'touchpad_buttons', 'touchpad_tap', + 'touchpad_tap_drag', + 'touchpad_tap_palm', 'trackball', 'trackpoint', 'udev', diff --git a/test/test-touchpad-tap.c b/test/test-touchpad-tap.c index c2d1b1b0..3e721590 100644 --- a/test/test-touchpad-tap.c +++ b/test/test-touchpad-tap.c @@ -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);