From 6f9a54c5739147fd66f7f906d58ecc92cd471df4 Mon Sep 17 00:00:00 2001 From: satrmb <10471-satrmb@gitlab.freedesktop.org> Date: Thu, 6 Feb 2025 20:14:57 +0100 Subject: [PATCH] test: convert most ranged tests to parametrized ones The two remaining ranged tests (abs_device_no_range, abs_mt_device_no_range) are better served staying with ranges because parametrized tests need to explicitly list all members of the range, which for these tests is not only pretty big, but also contains abs axes reserved for future use. Those axes have no names yet, making a future-proof conversion pretty much impossible. Part-of: --- test/test-gestures.c | 111 +++++++------ test/test-pointer.c | 50 +++--- test/test-quirks.c | 8 +- test/test-touchpad-buttons.c | 8 +- test/test-touchpad-tap.c | 296 ++++++++++++++++++++--------------- test/test-touchpad.c | 16 +- 6 files changed, 274 insertions(+), 215 deletions(-) diff --git a/test/test-gestures.c b/test/test-gestures.c index ff775366..79be3d91 100644 --- a/test/test-gestures.c +++ b/test/test-gestures.c @@ -39,7 +39,7 @@ enum hold_gesture_behaviour { }; static void -test_gesture_swipe_3fg(int cardinal, enum hold_gesture_behaviour hold) +test_gesture_swipe_3fg(enum cardinal cardinal, enum hold_gesture_behaviour hold) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; @@ -150,7 +150,7 @@ test_gesture_swipe_3fg(int cardinal, enum hold_gesture_behaviour hold) } static void -test_gesture_swipe_4fg(int cardinal, enum hold_gesture_behaviour hold) +test_gesture_swipe_4fg(enum cardinal cardinal, enum hold_gesture_behaviour hold) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; @@ -288,7 +288,7 @@ test_gesture_swipe_4fg(int cardinal, enum hold_gesture_behaviour hold) } static void -test_gesture_pinch_2fg(int cardinal, enum hold_gesture_behaviour hold) +test_gesture_pinch_2fg(enum cardinal cardinal, enum hold_gesture_behaviour hold) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; @@ -411,7 +411,7 @@ test_gesture_pinch_2fg(int cardinal, enum hold_gesture_behaviour hold) } static void -test_gesture_pinch_3fg(int cardinal, enum hold_gesture_behaviour hold) +test_gesture_pinch_3fg(enum cardinal cardinal, enum hold_gesture_behaviour hold) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; @@ -526,7 +526,7 @@ test_gesture_pinch_3fg(int cardinal, enum hold_gesture_behaviour hold) } static void -test_gesture_pinch_4fg(int cardinal, enum hold_gesture_behaviour hold) +test_gesture_pinch_4fg(enum cardinal cardinal, enum hold_gesture_behaviour hold) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; @@ -648,7 +648,7 @@ test_gesture_pinch_4fg(int cardinal, enum hold_gesture_behaviour hold) } static void -test_gesture_spread(int cardinal, enum hold_gesture_behaviour hold) +test_gesture_spread(enum cardinal cardinal, enum hold_gesture_behaviour hold) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; @@ -946,7 +946,7 @@ END_TEST START_TEST(gestures_swipe_3fg) { - int cardinal = _i; /* ranged test */ + enum cardinal cardinal = litest_test_param_get_i32(test_env->params, "direction"); test_gesture_swipe_3fg(cardinal, HOLD_GESTURE_IGNORE); } END_TEST @@ -958,7 +958,7 @@ START_TEST(gestures_swipe_3fg_btntool) struct libinput_event *event; struct libinput_event_gesture *gevent; double dx, dy; - int cardinal = _i; /* ranged test */ + enum cardinal cardinal = litest_test_param_get_i32(test_env->params, "direction"); double dir_x, dir_y; int cardinals[NCARDINALS][2] = { { 0, 30 }, @@ -1106,7 +1106,7 @@ END_TEST START_TEST(gestures_swipe_4fg) { - int cardinal = _i; /* ranged test */ + enum cardinal cardinal = litest_test_param_get_i32(test_env->params, "direction"); test_gesture_swipe_4fg(cardinal, HOLD_GESTURE_IGNORE); } END_TEST @@ -1118,7 +1118,7 @@ START_TEST(gestures_swipe_4fg_btntool) struct libinput_event *event; struct libinput_event_gesture *gevent; double dx, dy; - int cardinal = _i; /* ranged test */ + enum cardinal cardinal = litest_test_param_get_i32(test_env->params, "direction"); double dir_x, dir_y; int cardinals[NCARDINALS][2] = { { 0, 30 }, @@ -1216,28 +1216,28 @@ END_TEST START_TEST(gestures_pinch) { - int cardinal = _i; /* ranged test */ + enum cardinal cardinal = litest_test_param_get_i32(test_env->params, "direction"); test_gesture_pinch_2fg(cardinal, HOLD_GESTURE_IGNORE); } END_TEST START_TEST(gestures_pinch_3fg) { - int cardinal = _i; /* ranged test */ + enum cardinal cardinal = litest_test_param_get_i32(test_env->params, "direction"); test_gesture_pinch_3fg(cardinal, HOLD_GESTURE_IGNORE); } END_TEST START_TEST(gestures_pinch_4fg) { - int cardinal = _i; /* ranged test */ + enum cardinal cardinal = litest_test_param_get_i32(test_env->params, "direction"); test_gesture_pinch_4fg(cardinal, HOLD_GESTURE_IGNORE); } END_TEST START_TEST(gestures_spread) { - int cardinal = _i; /* ranged test */ + enum cardinal cardinal = litest_test_param_get_i32(test_env->params, "direction"); test_gesture_spread(cardinal, HOLD_GESTURE_IGNORE); } END_TEST @@ -1483,7 +1483,7 @@ START_TEST(gestures_hold) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); litest_disable_tap(dev->libinput_device); litest_drain_events(li); @@ -1496,7 +1496,7 @@ START_TEST(gestures_hold_tap_enabled) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); litest_enable_tap(dev->libinput_device); litest_drain_events(li); @@ -1509,7 +1509,7 @@ START_TEST(gestures_hold_cancel) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); litest_disable_tap(dev->libinput_device); litest_drain_events(li); @@ -1522,7 +1522,7 @@ START_TEST(gestures_hold_cancel_tap_enabled) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); litest_enable_tap(dev->libinput_device); litest_drain_events(li); @@ -1533,42 +1533,42 @@ END_TEST START_TEST(gestures_hold_then_swipe_3fg) { - int cardinal = _i; /* ranged test */ + enum cardinal cardinal = litest_test_param_get_i32(test_env->params, "direction"); test_gesture_swipe_3fg(cardinal, HOLD_GESTURE_REQUIRE); } END_TEST START_TEST(gestures_hold_then_swipe_4fg) { - int cardinal = _i; /* ranged test */ + enum cardinal cardinal = litest_test_param_get_i32(test_env->params, "direction"); test_gesture_swipe_4fg(cardinal, HOLD_GESTURE_REQUIRE); } END_TEST START_TEST(gestures_hold_then_pinch_2fg) { - int cardinal = _i; /* ranged test */ + enum cardinal cardinal = litest_test_param_get_i32(test_env->params, "direction"); test_gesture_pinch_2fg(cardinal, HOLD_GESTURE_REQUIRE); } END_TEST START_TEST(gestures_hold_then_pinch_3fg) { - int cardinal = _i; /* ranged test */ + enum cardinal cardinal = litest_test_param_get_i32(test_env->params, "direction"); test_gesture_pinch_3fg(cardinal, HOLD_GESTURE_REQUIRE); } END_TEST START_TEST(gestures_hold_then_pinch_4fg) { - int cardinal = _i; /* ranged test */ + enum cardinal cardinal = litest_test_param_get_i32(test_env->params, "direction"); test_gesture_pinch_4fg(cardinal, HOLD_GESTURE_REQUIRE); } END_TEST START_TEST(gestures_hold_then_spread) { - int cardinal = _i; /* ranged test */ + enum cardinal cardinal = litest_test_param_get_i32(test_env->params, "direction"); test_gesture_spread(cardinal, HOLD_GESTURE_REQUIRE); } END_TEST @@ -1629,7 +1629,7 @@ START_TEST(gestures_hold_once_tap_n_drag) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (nfingers > litest_slot_count(dev)) @@ -2195,7 +2195,7 @@ START_TEST(gestures_3fg_drag_lock_resume_1fg_tap) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int finger_count = _i; /* ranged test */ + int finger_count = litest_test_param_get_i32(test_env->params, "fingers"); if (litest_slot_count(dev) < 3) return LITEST_NOT_APPLICABLE; @@ -2263,23 +2263,10 @@ END_TEST TEST_COLLECTION(gestures) { - struct range cardinals = { N, N + NCARDINALS }; - struct range range_hold = { 1, 5 }; - struct range range_multifinger_tap = {1, 4}; - struct range range_3fg_drag = { 3, 5 }; - litest_add(gestures_cap, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH); litest_add(gestures_nocap, LITEST_ANY, LITEST_TOUCHPAD); - litest_add_ranged(gestures_swipe_3fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); - litest_add_ranged(gestures_swipe_3fg_btntool, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); litest_add(gestures_swipe_3fg_btntool_pinch_like, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH); - litest_add_ranged(gestures_swipe_4fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); - litest_add_ranged(gestures_swipe_4fg_btntool, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); - litest_add_ranged(gestures_pinch, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); - litest_add_ranged(gestures_pinch_3fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); - litest_add_ranged(gestures_pinch_4fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); - litest_add_ranged(gestures_spread, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); litest_add(gestures_3fg_buttonarea_scroll, LITEST_CLICKPAD, LITEST_SINGLE_TOUCH); litest_add(gestures_3fg_buttonarea_scroll_btntool, LITEST_CLICKPAD, LITEST_SINGLE_TOUCH); @@ -2292,20 +2279,40 @@ TEST_COLLECTION(gestures) litest_add(gestures_hold_config_is_available, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH|LITEST_SEMI_MT); litest_add(gestures_hold_config_is_not_available, LITEST_TOUCHPAD|LITEST_SEMI_MT, LITEST_ANY); - litest_add_ranged(gestures_hold, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_hold); - litest_add_ranged(gestures_hold_tap_enabled, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_hold); - litest_add_ranged(gestures_hold_cancel, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_hold); - litest_add_ranged(gestures_hold_cancel_tap_enabled, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_hold); - litest_add_ranged(gestures_hold_then_swipe_3fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); - litest_add_ranged(gestures_hold_then_swipe_4fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); - litest_add_ranged(gestures_hold_then_pinch_2fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); - litest_add_ranged(gestures_hold_then_pinch_3fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); - litest_add_ranged(gestures_hold_then_pinch_4fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); - litest_add_ranged(gestures_hold_then_spread, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &cardinals); + litest_with_parameters(params, "fingers", 'i', 4, 1, 2, 3, 4) { + litest_add_parametrized(gestures_hold, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(gestures_hold_tap_enabled, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(gestures_hold_cancel, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(gestures_hold_cancel_tap_enabled, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + } + + litest_with_parameters(params, "direction", 'I', 8, litest_named_i32(N), litest_named_i32(NE), + litest_named_i32(E), litest_named_i32(SE), + litest_named_i32(S), litest_named_i32(SW), + litest_named_i32(W), litest_named_i32(NW)) { + litest_add_parametrized(gestures_swipe_3fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(gestures_swipe_3fg_btntool, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(gestures_swipe_4fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(gestures_swipe_4fg_btntool, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(gestures_pinch, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(gestures_pinch_3fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(gestures_pinch_4fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(gestures_spread, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + + litest_add_parametrized(gestures_hold_then_swipe_3fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(gestures_hold_then_swipe_4fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(gestures_hold_then_pinch_2fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(gestures_hold_then_pinch_3fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(gestures_hold_then_pinch_4fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(gestures_hold_then_spread, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + } + litest_add(gestures_hold_then_3fg_buttonarea_scroll, LITEST_CLICKPAD, LITEST_SINGLE_TOUCH); litest_add(gestures_hold_once_on_double_tap, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH); - litest_add_ranged(gestures_hold_once_tap_n_drag, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_tap); + litest_with_parameters(params, "fingers", 'i', 3, 1, 2, 3) { + litest_add_parametrized(gestures_hold_once_tap_n_drag, LITEST_TOUCHPAD, LITEST_ANY, params); + } litest_add(gestures_hold_and_motion_before_timeout, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH); litest_add(gestures_hold_and_motion_after_timeout, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH); @@ -2333,7 +2340,9 @@ TEST_COLLECTION(gestures) litest_add_parametrized(gestures_3fg_drag_lock_resume_2fg_scroll, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); litest_parameters_unref(params); } - litest_add_ranged(gestures_3fg_drag_lock_resume_1fg_tap, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_3fg_drag); + litest_with_parameters(params, "fingers", 'i', 2, 3, 4) { + litest_add_parametrized(gestures_3fg_drag_lock_resume_1fg_tap, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + } /* Timing-sensitive test, valgrind is too slow */ diff --git a/test/test-pointer.c b/test/test-pointer.c index 3c1c3712..a063b0e0 100644 --- a/test/test-pointer.c +++ b/test/test-pointer.c @@ -1089,7 +1089,7 @@ START_TEST(pointer_scroll_with_rotation) struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; struct libinput_device *device = dev->libinput_device; - double angle = _i * 20; /* ranged test */ + double angle = litest_test_param_get_double(test_env->params, "angle"); litest_drain_events(li); libinput_device_config_rotation_set_angle(device, angle); @@ -1951,15 +1951,14 @@ enum mb_buttonorder { LRRL, RRLL, RLRL, - RLLR, - _MB_BUTTONORDER_COUNT + RLLR }; START_TEST(pointer_scroll_button_lock_middlebutton) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - enum mb_buttonorder buttonorder = _i; /* ranged test */ + enum mb_buttonorder buttonorder = litest_test_param_get_i32(test_env->params, "buttonorder"); if (!libinput_device_config_middle_emulation_is_available(dev->libinput_device)) return LITEST_NOT_APPLICABLE; @@ -3163,7 +3162,7 @@ START_TEST(debounce_bounce) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - unsigned int button = _i; /* ranged test */ + unsigned int button = litest_test_param_get_i32(test_env->params, "button"); if (!libinput_device_pointer_has_button(dev->libinput_device, button)) @@ -3210,7 +3209,7 @@ START_TEST(debounce_bounce_high_delay) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - unsigned int button = _i; /* ranged test */ + unsigned int button = litest_test_param_get_i32(test_env->params, "button"); if (!libinput_device_pointer_has_button(dev->libinput_device, button)) @@ -3343,7 +3342,7 @@ START_TEST(debounce_spurious) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - unsigned int button = _i; /* ranged test */ + unsigned int button = litest_test_param_get_i32(test_env->params, "button"); if (!libinput_device_pointer_has_button(dev->libinput_device, button)) @@ -3763,10 +3762,6 @@ END_TEST TEST_COLLECTION(pointer) { - struct range buttons = {BTN_LEFT, BTN_TASK + 1}; - struct range buttonorder = {0, _MB_BUTTONORDER_COUNT}; - struct range rotation_20deg = {0, 18}; /* steps of 20 degrees */ - litest_add(pointer_motion_relative, LITEST_RELATIVE, LITEST_POINTINGSTICK); litest_add_for_device(pointer_motion_relative_zero, LITEST_MOUSE); litest_with_parameters(params, @@ -3806,7 +3801,14 @@ TEST_COLLECTION(pointer) litest_add(pointer_scroll_button_lock_enable_while_down_just_lock, LITEST_RELATIVE|LITEST_BUTTON, LITEST_ANY); litest_add(pointer_scroll_button_lock_otherbutton, LITEST_RELATIVE|LITEST_BUTTON, LITEST_ANY); litest_add(pointer_scroll_button_lock_enable_while_otherbutton_down, LITEST_RELATIVE|LITEST_BUTTON, LITEST_ANY); - litest_add_ranged(pointer_scroll_button_lock_middlebutton, LITEST_RELATIVE|LITEST_BUTTON, LITEST_ANY, &buttonorder); + litest_with_parameters(params, "buttonorder", 'I', 6, litest_named_i32(LLRR), + litest_named_i32(LRLR), + litest_named_i32(LRRL), + litest_named_i32(RRLL), + litest_named_i32(RLRL), + litest_named_i32(RLLR)) { + litest_add_parametrized(pointer_scroll_button_lock_middlebutton, LITEST_RELATIVE|LITEST_BUTTON, LITEST_ANY, params); + } litest_add(pointer_scroll_button_lock_doubleclick_nomove, LITEST_RELATIVE|LITEST_BUTTON, LITEST_ANY); litest_add(pointer_scroll_nowheel_defaults, LITEST_RELATIVE|LITEST_BUTTON, LITEST_WHEEL); @@ -3816,7 +3818,10 @@ TEST_COLLECTION(pointer) litest_add(pointer_scroll_natural_enable_config, LITEST_WHEEL, LITEST_TABLET); litest_add(pointer_scroll_natural_wheel, LITEST_WHEEL, LITEST_TABLET); litest_add(pointer_scroll_has_axis_invalid, LITEST_WHEEL, LITEST_TABLET); - litest_add_ranged(pointer_scroll_with_rotation, LITEST_WHEEL, LITEST_TABLET, &rotation_20deg); + litest_with_parameters(params, "angle", 'd', 18, 0.0, 20.0, 40.0, 60.0, 80.0, 100.0, 120.0, 140.0, 160.0, + 180.0, 200.0, 220.0, 240.0, 260.0, 280.0, 300.0, 320.0, 340.0) { + litest_add_parametrized(pointer_scroll_with_rotation, LITEST_WHEEL, LITEST_TABLET, params); + } litest_add(pointer_no_calibration, LITEST_ANY, LITEST_TOUCH|LITEST_SINGLE_TOUCH|LITEST_ABSOLUTE|LITEST_PROTOCOL_A|LITEST_TABLET); @@ -3862,12 +3867,21 @@ TEST_COLLECTION(pointer) litest_add(pointer_time_usec, LITEST_RELATIVE, LITEST_ANY); - litest_add_ranged(debounce_bounce, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE, &buttons); - /* Timing-sensitive test, valgrind is too slow */ - if (!RUNNING_ON_VALGRIND) - litest_add_ranged(debounce_bounce_high_delay, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE, &buttons); + litest_with_parameters(params, "button", 'I', 8, litest_named_i32(BTN_LEFT), + litest_named_i32(BTN_RIGHT), + litest_named_i32(BTN_MIDDLE), + litest_named_i32(BTN_SIDE), + litest_named_i32(BTN_EXTRA), + litest_named_i32(BTN_FORWARD), + litest_named_i32(BTN_BACK), + litest_named_i32(BTN_TASK)) { + litest_add_parametrized(debounce_bounce, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE, params); + litest_add_parametrized(debounce_spurious, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE, params); + /* Timing-sensitive test, valgrind is too slow */ + if (!RUNNING_ON_VALGRIND) + litest_add_parametrized(debounce_bounce_high_delay, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE, params); + } litest_add(debounce_bounce_check_immediate, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE); - litest_add_ranged(debounce_spurious, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE, &buttons); litest_add(debounce_spurious_multibounce, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE); if (!RUNNING_ON_VALGRIND) litest_add(debounce_spurious_trigger_high_delay, LITEST_BUTTON, LITEST_TOUCHPAD|LITEST_NO_DEBOUNCE); diff --git a/test/test-quirks.c b/test/test-quirks.c index 7a1571ea..fa6bdccc 100644 --- a/test/test-quirks.c +++ b/test/test-quirks.c @@ -1447,7 +1447,7 @@ START_TEST(quirks_model_override) struct data_dir dd; struct quirks *q; bool isset; - bool set = _i; /* ranged test */ + bool set = litest_test_param_get_bool(test_env->params, "enable_model"); /* Test model quirks override by setting, then unsetting (or the other way round) */ @@ -1605,8 +1605,6 @@ END_TEST TEST_COLLECTION(quirks) { - struct range boolean = {0, 2}; - litest_add_deviceless(quirks_invalid_dir); litest_add_deviceless(quirks_empty_dir); @@ -1658,7 +1656,9 @@ TEST_COLLECTION(quirks) litest_add_for_device(quirks_model_one, LITEST_MOUSE); litest_add_for_device(quirks_model_zero, LITEST_MOUSE); - litest_add_ranged_for_device(quirks_model_override, LITEST_MOUSE, &boolean); + litest_with_parameters(params, "enable_model", 'b') { + litest_add_parametrized_for_device(quirks_model_override, LITEST_MOUSE, params); + } litest_add(quirks_model_alps, LITEST_TOUCHPAD, LITEST_ANY); litest_add(quirks_model_wacom, LITEST_TOUCHPAD, LITEST_ANY); diff --git a/test/test-touchpad-buttons.c b/test/test-touchpad-buttons.c index 09699eb9..b40b26c8 100644 --- a/test/test-touchpad-buttons.c +++ b/test/test-touchpad-buttons.c @@ -1069,7 +1069,7 @@ START_TEST(touchpad_clickfinger_click_drag) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button; int nslots = litest_slot_count(dev); @@ -2242,8 +2242,6 @@ END_TEST TEST_COLLECTION(touchpad_buttons) { - struct range finger_count = {1, 4}; - litest_add(touchpad_button, LITEST_TOUCHPAD, LITEST_CLICKPAD); litest_add(touchpad_1fg_clickfinger, LITEST_CLICKPAD, LITEST_ANY); @@ -2279,7 +2277,9 @@ TEST_COLLECTION(touchpad_buttons) litest_add_for_device(touchpad_1fg_clickfinger_no_touch_phantomclicks, LITEST_SYNAPTICS_PHANTOMCLICKS); - litest_add_ranged(touchpad_clickfinger_click_drag, LITEST_CLICKPAD, LITEST_ANY, &finger_count); + litest_with_parameters(params, "fingers", 'i', 3, 1, 2, 3) { + litest_add_parametrized(touchpad_clickfinger_click_drag, LITEST_CLICKPAD, LITEST_ANY, params); + } litest_add(touchpad_click_defaults_clickfinger, LITEST_APPLE_CLICKPAD, LITEST_ANY); litest_add(touchpad_click_default_clickfinger_map, LITEST_APPLE_CLICKPAD, LITEST_ANY); diff --git a/test/test-touchpad-tap.c b/test/test-touchpad-tap.c index be5fabf5..a3975055 100644 --- a/test/test-touchpad-tap.c +++ b/test/test-touchpad-tap.c @@ -62,8 +62,8 @@ START_TEST(touchpad_doubletap) struct libinput_event *event; struct libinput_event_pointer *ptrev; uint32_t oldtime, curtime; - int nfingers = (_i % 3) + 1, /* ranged test */ - nfingers2 = _i / 3; + int nfingers = litest_test_param_get_i32(test_env->params, "fingers_1st"), + nfingers2 = litest_test_param_get_i32(test_env->params, "fingers_2nd"); unsigned int button = 0, button2 = 0; @@ -203,8 +203,8 @@ START_TEST(touchpad_multitap) struct libinput_event_pointer *ptrev; uint32_t oldtime = 0, curtime; - int nfingers = (_i % 3) + 1, /* ranged test */ - range = _i / 3, /* looped test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"), + range = litest_test_param_get_i32(test_env->params, "taps"), ntaps; unsigned int button = 0; @@ -293,8 +293,8 @@ START_TEST(touchpad_multitap_n_drag_move) struct libinput_event_pointer *ptrev; uint32_t oldtime = 0, curtime; - int nfingers = (_i % 3) + 1, /* ranged test */ - range = _i / 3, /* looped test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"), + range = litest_test_param_get_i32(test_env->params, "taps"), ntaps; unsigned int button = 0; @@ -402,8 +402,8 @@ START_TEST(touchpad_multitap_n_drag_2fg) struct libinput_event_pointer *ptrev; uint32_t oldtime = 0, curtime; - int nfingers = (_i % 3) + 1, /* ranged test */ - range = _i / 3, /* looped test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"), + range = litest_test_param_get_i32(test_env->params, "taps"), ntaps; unsigned int button = 0; @@ -519,8 +519,8 @@ START_TEST(touchpad_multitap_n_drag_click) struct libinput_event_pointer *ptrev; uint32_t oldtime = 0, curtime; - int nfingers = (_i % 3) + 1, /* ranged test */ - range = _i / 3, /* looped test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"), + range = litest_test_param_get_i32(test_env->params, "taps"), ntaps; unsigned int button = 0; @@ -620,8 +620,8 @@ START_TEST(touchpad_multitap_timeout) struct libinput_event *event; struct libinput_event_pointer *ptrev; uint32_t ptime, rtime; - int nfingers = (_i % 3) + 1, /* ranged test */ - range = _i / 3, /* looped test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"), + range = litest_test_param_get_i32(test_env->params, "taps"), ntaps; unsigned int button = 0; @@ -710,8 +710,8 @@ START_TEST(touchpad_multitap_n_drag_timeout) struct libinput_event_pointer *ptrev; uint32_t oldtime = 0, curtime; - int nfingers = (_i % 3) + 1, /* ranged test */ - range = _i / 3, /* looped test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"), + range = litest_test_param_get_i32(test_env->params, "taps"), ntaps; unsigned int button = 0; @@ -821,8 +821,8 @@ START_TEST(touchpad_multitap_n_drag_high_delay) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = (_i % 3) + 1, /* ranged test */ - range = _i / 3, /* looped test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"), + range = litest_test_param_get_i32(test_env->params, "taps"), ntaps; unsigned int button = 0; @@ -917,8 +917,8 @@ START_TEST(touchpad_multitap_n_drag_tap) struct libinput_event_pointer *ptrev; uint32_t oldtime = 0, curtime; - int nfingers = (_i % 3) + 1, /* ranged test */ - range = _i / 3, /* looped test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"), + range = litest_test_param_get_i32(test_env->params, "taps"), ntaps; unsigned int button = 0; @@ -1032,8 +1032,8 @@ START_TEST(touchpad_multitap_n_drag_tap_click) struct libinput_event_pointer *ptrev; uint32_t oldtime = 0, curtime; - int nfingers = (_i % 3) + 1, /* ranged test */ - range = _i / 3, /* looped test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"), + range = litest_test_param_get_i32(test_env->params, "taps"), ntaps; unsigned int button = 0; @@ -1156,7 +1156,7 @@ START_TEST(touchpad_tap_n_drag) struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; struct libinput_event *event; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (nfingers > litest_slot_count(dev)) @@ -1238,7 +1238,7 @@ START_TEST(touchpad_tap_n_drag_draglock) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (nfingers > litest_slot_count(dev)) @@ -1319,8 +1319,8 @@ START_TEST(touchpad_tap_n_drag_draglock_tap) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = (_i % 3) + 1, /* ranged test */ - nfingers2 = _i / 3; + int nfingers = litest_test_param_get_i32(test_env->params, "fingers_1st"), + nfingers2 = litest_test_param_get_i32(test_env->params, "fingers_2nd"); unsigned int button = 0; if (nfingers > litest_slot_count(dev)) @@ -1426,7 +1426,7 @@ START_TEST(touchpad_tap_n_drag_draglock_tap_click) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (nfingers > litest_slot_count(dev)) @@ -1511,7 +1511,7 @@ START_TEST(touchpad_tap_n_drag_draglock_timeout) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (nfingers > litest_slot_count(dev)) @@ -1582,7 +1582,7 @@ START_TEST(touchpad_tap_n_drag_draglock_sticky) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (nfingers > litest_slot_count(dev)) @@ -1665,7 +1665,7 @@ START_TEST(touchpad_tap_n_drag_2fg) */ struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (nfingers > litest_slot_count(dev)) @@ -1743,7 +1743,7 @@ START_TEST(touchpad_tap_n_drag_2fg_scroll) */ struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (nfingers > litest_slot_count(dev)) @@ -1823,7 +1823,7 @@ START_TEST(touchpad_tap_n_drag_draglock_2fg_scroll) */ struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (nfingers > litest_slot_count(dev)) @@ -1908,7 +1908,7 @@ START_TEST(touchpad_tap_n_drag_3fg_btntool) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (litest_slot_count(dev) > 2 || @@ -2007,7 +2007,7 @@ START_TEST(touchpad_tap_n_drag_3fg) */ struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (litest_slot_count(dev) < 3) @@ -2093,7 +2093,7 @@ START_TEST(touchpad_tap_n_drag_3fg_swipe) */ struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (litest_slot_count(dev) < 3) @@ -2184,7 +2184,7 @@ START_TEST(touchpad_tap_n_drag_draglock_3fg_swipe) */ struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (litest_slot_count(dev) < 3) @@ -2710,7 +2710,7 @@ START_TEST(touchpad_double_tap_click) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (nfingers > litest_slot_count(dev)) @@ -2786,7 +2786,7 @@ START_TEST(touchpad_tap_n_drag_click) struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (nfingers > litest_slot_count(dev)) @@ -3499,7 +3499,7 @@ START_TEST(touchpad_move_after_touch) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); if (nfingers > litest_slot_count(dev)) return LITEST_NOT_APPLICABLE; @@ -3959,7 +3959,7 @@ START_TEST(touchpad_drag_disabled) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (nfingers > litest_slot_count(dev)) @@ -4034,7 +4034,7 @@ START_TEST(touchpad_drag_disabled_immediate) struct libinput_event *ev; struct libinput_event_pointer *ptrev; uint64_t press_time, release_time; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (nfingers > litest_slot_count(dev)) @@ -4112,8 +4112,8 @@ START_TEST(touchpad_drag_disabled_multitap_no_drag) struct libinput_event_pointer *ptrev; uint32_t oldtime = 0, curtime; - int nfingers = (_i % 3) + 1, /* ranged test */ - range = _i / 3, /* looped test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"), + range = litest_test_param_get_i32(test_env->params, "taps"), ntaps; unsigned int button = 0; @@ -4413,7 +4413,7 @@ START_TEST(touchpad_tap_palm_on_tapped) { ABS_MT_PRESSURE, 75 }, { -1, 0 } }; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (!touchpad_has_palm_pressure(dev)) @@ -4495,7 +4495,7 @@ START_TEST(touchpad_tap_palm_on_tapped_palm_down) { ABS_MT_PRESSURE, 75 }, { -1, 0 } }; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (!touchpad_has_palm_pressure(dev)) @@ -4577,8 +4577,8 @@ START_TEST(touchpad_tap_palm_on_tapped_doubletap) { ABS_MT_PRESSURE, 75 }, { -1, 0 } }; - int nfingers = (_i % 3) + 1, /* ranged test */ - nfingers2 = _i / 3; + int nfingers = litest_test_param_get_i32(test_env->params, "fingers_1st"), + nfingers2 = litest_test_param_get_i32(test_env->params, "fingers_2nd"); unsigned int button = 0, button2 = 0; @@ -4708,7 +4708,7 @@ START_TEST(touchpad_tap_palm_on_drag) { ABS_MT_PRESSURE, 75 }, { -1, 0 } }; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (!touchpad_has_palm_pressure(dev)) @@ -4791,9 +4791,10 @@ START_TEST(touchpad_tap_palm_on_drag_2fg) { ABS_MT_PRESSURE, 75 }, { -1, 0 } }; - int this = _i % 2, /* ranged test */ - other = (_i + 1) % 2, - nfingers = _i / 2; + int which = litest_test_param_get_i32(test_env->params, "which"), + this = which % 2, + other = (which + 1) % 2, + nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (!touchpad_has_palm_pressure(dev)) @@ -4883,8 +4884,8 @@ START_TEST(touchpad_tap_palm_on_touch_2) { ABS_MT_PRESSURE, 75 }, { -1, 0 } }; - int which = _i; /* ranged test */ - int this = which % 2, + int which = litest_test_param_get_i32(test_env->params, "which"), + this = which % 2, other = (which + 1) % 2; if (!touchpad_has_palm_pressure(dev)) @@ -4924,8 +4925,8 @@ START_TEST(touchpad_tap_palm_on_touch_2_retouch) { ABS_MT_PRESSURE, 75 }, { -1, 0 } }; - int which = _i; /* ranged test */ - int this = which % 2, + int which = litest_test_param_get_i32(test_env->params, "which"), + this = which % 2, other = (which + 1) % 2; if (!touchpad_has_palm_pressure(dev)) @@ -4969,8 +4970,8 @@ START_TEST(touchpad_tap_palm_on_touch_3) { ABS_MT_PRESSURE, 75 }, { -1, 0 } }; - int which = _i; /* ranged test */ - int this = which % 3; + int which = litest_test_param_get_i32(test_env->params, "which"), + this = which % 3; if (litest_slot_count(dev) < 3) return LITEST_NOT_APPLICABLE; @@ -5016,8 +5017,8 @@ START_TEST(touchpad_tap_palm_on_touch_3_retouch) { ABS_MT_PRESSURE, 75 }, { -1, 0 } }; - int which = _i; /* ranged test */ - int this = which % 3; + int which = litest_test_param_get_i32(test_env->params, "which"), + this = which % 3; if (litest_slot_count(dev) < 3) return LITEST_NOT_APPLICABLE; @@ -5068,8 +5069,8 @@ START_TEST(touchpad_tap_palm_on_touch_4) { ABS_MT_PRESSURE, 75 }, { -1, 0 } }; - int which = _i; /* ranged test */ - int this = which % 4; + int which = litest_test_param_get_i32(test_env->params, "which"), + this = which % 4; if (litest_slot_count(dev) < 4) return LITEST_NOT_APPLICABLE; @@ -5108,7 +5109,7 @@ START_TEST(touchpad_tap_palm_after_tap) { ABS_MT_PRESSURE, 75 }, { -1, 0 } }; - int nfingers = _i; /* ranged test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int button = 0; if (!touchpad_has_palm_pressure(dev)) @@ -5187,8 +5188,8 @@ START_TEST(touchpad_tap_palm_multitap) { ABS_MT_PRESSURE, 75 }, { -1, 0 } }; - int nfingers = (_i % 3) + 1, /* ranged test */ - range = _i / 3, /* looped test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"), + range = litest_test_param_get_i32(test_env->params, "taps"), ntaps; unsigned int button = 0; @@ -5273,8 +5274,8 @@ START_TEST(touchpad_tap_palm_multitap_timeout) { ABS_MT_PRESSURE, 75 }, { -1, 0 } }; - int nfingers = (_i % 3) + 1, /* ranged test */ - range = _i / 3, /* looped test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"), + range = litest_test_param_get_i32(test_env->params, "taps"), ntaps; unsigned int button = 0; @@ -5358,8 +5359,8 @@ START_TEST(touchpad_tap_palm_multitap_down_again) { ABS_MT_PRESSURE, 75 }, { -1, 0 } }; - int nfingers = (_i % 3) + 1, /* ranged test */ - range = _i / 3, /* looped test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"), + range = litest_test_param_get_i32(test_env->params, "taps"), ntaps; unsigned int button = 0; @@ -5474,8 +5475,8 @@ START_TEST(touchpad_tap_palm_multitap_click) { ABS_MT_PRESSURE, 75 }, { -1, 0 } }; - int nfingers = (_i % 3) + 1, /* ranged test */ - range = _i / 3, /* looped test */ + int nfingers = litest_test_param_get_i32(test_env->params, "fingers"), + range = litest_test_param_get_i32(test_env->params, "taps"), ntaps; unsigned int button = 0; @@ -5694,15 +5695,17 @@ END_TEST TEST_COLLECTION(touchpad_tap) { - struct range multitap_range = {9, 15}; - struct range range_multifinger = {2, 5}; - struct range range_multifinger_tap = {1, 4}; - struct range range_multifinger_doubletap = {3, 12}; - litest_add(touchpad_1fg_tap, LITEST_TOUCHPAD, LITEST_ANY); - 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_with_parameters(params, "fingers_1st", 'i', 3, 1, 2, 3, + "fingers_2nd", 'i', 3, 1, 2, 3) { + litest_add_parametrized(touchpad_doubletap, LITEST_TOUCHPAD, LITEST_ANY, params); + } + litest_with_parameters(params, "fingers", 'i', 3, 1, 2, 3, + "taps", 'i', 2, 3, 4) { + litest_add_parametrized(touchpad_multitap, LITEST_TOUCHPAD, LITEST_ANY, params); + litest_add_parametrized(touchpad_multitap_timeout, LITEST_TOUCHPAD, LITEST_ANY, params); + } + litest_add(touchpad_2fg_tap_move_on_release, LITEST_TOUCHPAD|LITEST_SEMI_MT, LITEST_SINGLE_TOUCH); litest_add(touchpad_2fg_tap_n_hold_first, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH); litest_add(touchpad_2fg_tap_n_hold_second, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH); @@ -5736,11 +5739,15 @@ TEST_COLLECTION(touchpad_tap) litest_add_parametrized(touchpad_3fg_tap, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); } - litest_add_ranged(touchpad_move_after_touch, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger); + litest_with_parameters(params, "fingers", 'i', 3, 2, 3, 4) { + litest_add_parametrized(touchpad_move_after_touch, LITEST_TOUCHPAD, LITEST_ANY, params); + } /* 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_with_parameters(params, "fingers", 'i', 3, 1, 2, 3) { + litest_add_parametrized(touchpad_double_tap_click, LITEST_CLICKPAD, LITEST_ANY, params); + } litest_add(touchpad_tap_default_disabled, LITEST_TOUCHPAD|LITEST_BUTTON, LITEST_ANY); litest_add(touchpad_tap_default_enabled, LITEST_TOUCHPAD, LITEST_BUTTON); @@ -5761,78 +5768,107 @@ TEST_COLLECTION(touchpad_tap) 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_with_parameters(params, "fingers", 'i', 3, 1, 2, 3, + "taps", 'i', 2, 3, 4) { + litest_add_parametrized(touchpad_multitap_n_drag_tap_click, LITEST_CLICKPAD, LITEST_ANY, params); - 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_parametrized(touchpad_multitap_n_drag_timeout, LITEST_TOUCHPAD, LITEST_ANY, params); + litest_add_parametrized(touchpad_multitap_n_drag_tap, LITEST_TOUCHPAD, LITEST_ANY, params); + litest_add_parametrized(touchpad_multitap_n_drag_move, LITEST_TOUCHPAD, LITEST_ANY, params); + litest_add_parametrized(touchpad_multitap_n_drag_2fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(touchpad_multitap_n_drag_click, LITEST_CLICKPAD, LITEST_ANY, params); - 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_parametrized(touchpad_drag_disabled_multitap_no_drag, LITEST_TOUCHPAD, LITEST_ANY, params); + } + litest_with_parameters(params, "fingers", 'i', 3, 1, 2, 3, + "taps", 'i', 3, 1, 2, 3) { + litest_add_parametrized(touchpad_multitap_n_drag_high_delay, LITEST_TOUCHPAD, LITEST_ANY, params); + } + + litest_with_parameters(params, "fingers", 'i', 3, 1, 2, 3) { + litest_add_parametrized(touchpad_tap_n_drag_click, LITEST_CLICKPAD, LITEST_ANY, params); + litest_add_parametrized(touchpad_tap_n_drag_draglock_tap_click, LITEST_CLICKPAD, LITEST_ANY, params); + + litest_add_parametrized(touchpad_tap_n_drag, LITEST_TOUCHPAD, LITEST_ANY, params); + litest_add_parametrized(touchpad_tap_n_drag_2fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(touchpad_tap_n_drag_2fg_scroll, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(touchpad_tap_n_drag_draglock_2fg_scroll, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(touchpad_tap_n_drag_3fg_btntool, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH|LITEST_APPLE_CLICKPAD, params); + litest_add_parametrized(touchpad_tap_n_drag_3fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(touchpad_tap_n_drag_3fg_swipe, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(touchpad_tap_n_drag_draglock_3fg_swipe, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(touchpad_tap_n_drag_draglock, LITEST_TOUCHPAD, LITEST_ANY, params); + litest_add_parametrized(touchpad_tap_n_drag_draglock_timeout, LITEST_TOUCHPAD, LITEST_ANY, params); + litest_add_parametrized(touchpad_tap_n_drag_draglock_sticky, LITEST_TOUCHPAD, LITEST_ANY, params); + + litest_add_parametrized(touchpad_drag_disabled, LITEST_TOUCHPAD, LITEST_ANY, params); + litest_add_parametrized(touchpad_drag_disabled_immediate, LITEST_TOUCHPAD, LITEST_ANY, params); + } + + litest_with_parameters(params, "fingers_1st", 'i', 3, 1, 2, 3, + "fingers_2nd", 'i', 3, 1, 2, 3) { + litest_add_parametrized(touchpad_tap_n_drag_draglock_tap, LITEST_TOUCHPAD, LITEST_ANY, params); + } 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); litest_add(touchpad_drag_config_unsupported, LITEST_ANY, LITEST_TOUCHPAD); litest_add(touchpad_drag_config_enabledisable, LITEST_TOUCHPAD, LITEST_ANY); - 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); litest_add(touchpad_tap_palm_on_touch_hold_timeout, LITEST_TOUCHPAD, LITEST_ANY); litest_add(touchpad_tap_palm_on_touch_hold_move, LITEST_TOUCHPAD, LITEST_ANY); - litest_add_ranged(touchpad_tap_palm_on_tapped, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_tap); - litest_add_ranged(touchpad_tap_palm_on_tapped_palm_down, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_tap); - litest_add_ranged(touchpad_tap_palm_on_tapped_doubletap, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_multifinger_doubletap); - litest_add_ranged(touchpad_tap_palm_on_drag, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_tap); - litest_add_ranged(touchpad_tap_palm_on_drag_2fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_2fg_multifinger_tap); - litest_add_ranged(touchpad_tap_palm_on_touch_2, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_2fg); - litest_add_ranged(touchpad_tap_palm_on_touch_2_retouch, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_2fg); - litest_add_ranged(touchpad_tap_palm_on_touch_3, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_3fg); - litest_add_ranged(touchpad_tap_palm_on_touch_3_retouch, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_3fg); - litest_add_ranged(touchpad_tap_palm_on_touch_4, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &range_4fg); - litest_add_ranged(touchpad_tap_palm_after_tap, LITEST_TOUCHPAD, LITEST_ANY, &range_multifinger_tap); - litest_add_ranged(touchpad_tap_palm_multitap, LITEST_TOUCHPAD, LITEST_ANY, &multitap_range); - litest_add_ranged(touchpad_tap_palm_multitap_timeout, LITEST_TOUCHPAD, LITEST_ANY, &multitap_range); - litest_add_ranged(touchpad_tap_palm_multitap_down_again, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, &multitap_range); - litest_add_ranged(touchpad_tap_palm_multitap_click, LITEST_CLICKPAD, LITEST_ANY, &multitap_range); + + litest_with_parameters(params, "fingers", 'i', 3, 1, 2, 3) { + litest_add_parametrized(touchpad_tap_palm_on_tapped, LITEST_TOUCHPAD, LITEST_ANY, params); + litest_add_parametrized(touchpad_tap_palm_on_tapped_palm_down, LITEST_TOUCHPAD, LITEST_ANY, params); + litest_add_parametrized(touchpad_tap_palm_on_drag, LITEST_TOUCHPAD, LITEST_ANY, params); + litest_add_parametrized(touchpad_tap_palm_after_tap, LITEST_TOUCHPAD, LITEST_ANY, params); + } + + litest_with_parameters(params, "fingers_1st", 'i', 3, 1, 2, 3, + "fingers_2nd", 'i', 3, 1, 2, 3) { + litest_add_parametrized(touchpad_tap_palm_on_tapped_doubletap, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + } + + litest_with_parameters(params, "fingers", 'i', 3, 1, 2, 3, + "which", 'I', 2, litest_named_i32(0, "first"), litest_named_i32(1, "second")) { + litest_add_parametrized(touchpad_tap_palm_on_drag_2fg, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + } + + litest_with_parameters(params, "which", 'I', 2, litest_named_i32(0, "first"), litest_named_i32(1, "second")) { + litest_add_parametrized(touchpad_tap_palm_on_touch_2, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(touchpad_tap_palm_on_touch_2_retouch, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + } + + litest_with_parameters(params, "which", 'I', 3, litest_named_i32(0, "first"), litest_named_i32(1, "second"), + litest_named_i32(2, "third")) { + litest_add_parametrized(touchpad_tap_palm_on_touch_3, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(touchpad_tap_palm_on_touch_3_retouch, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + } + + litest_with_parameters(params, "which", 'I', 4, litest_named_i32(0, "first"), litest_named_i32(1, "second"), + litest_named_i32(2, "third"), litest_named_i32(3, "fourth")) { + litest_add_parametrized(touchpad_tap_palm_on_touch_4, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + } + + litest_with_parameters(params, "fingers", 'i', 3, 1, 2, 3, + "taps", 'i', 3, 3, 4, 5) { + litest_add_parametrized(touchpad_tap_palm_multitap, LITEST_TOUCHPAD, LITEST_ANY, params); + litest_add_parametrized(touchpad_tap_palm_multitap_timeout, LITEST_TOUCHPAD, LITEST_ANY, params); + litest_add_parametrized(touchpad_tap_palm_multitap_down_again, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH, params); + litest_add_parametrized(touchpad_tap_palm_multitap_click, LITEST_CLICKPAD, LITEST_ANY, params); + } + litest_add(touchpad_tap_palm_click_then_tap, LITEST_CLICKPAD, LITEST_ANY); litest_add(touchpad_tap_palm_dwt_tap, LITEST_TOUCHPAD, LITEST_ANY); litest_add(touchpad_tap_palm_3fg_start, LITEST_TOUCHPAD, LITEST_ANY); diff --git a/test/test-touchpad.c b/test/test-touchpad.c index 8c089660..f88ed03f 100644 --- a/test/test-touchpad.c +++ b/test/test-touchpad.c @@ -3679,7 +3679,7 @@ START_TEST(touchpad_fingers_down_before_init) struct litest_device *dev = litest_current_device(); struct libinput *li; - int finger_count = _i; /* looped test */ + int finger_count = litest_test_param_get_i32(test_env->params, "fingers"); unsigned int map[] = {0, BTN_TOOL_PEN, BTN_TOOL_DOUBLETAP, BTN_TOOL_TRIPLETAP, BTN_TOOL_QUADTAP, BTN_TOOL_QUINTTAP}; @@ -5317,7 +5317,7 @@ START_TEST(touchpad_dwt_multiple_keyboards_remove) struct litest_device *touchpad = litest_current_device(); struct litest_device *keyboards[2]; struct libinput *li = touchpad->libinput; - int which = _i; /* ranged test */ + int which = litest_test_param_get_i32(test_env->params, "which"); struct litest_device *removed, *remained; litest_assert_int_le(which, 1); @@ -7264,8 +7264,6 @@ END_TEST TEST_COLLECTION(touchpad) { - struct range five_fingers = {1, 6}; - litest_add(touchpad_1fg_motion, LITEST_TOUCHPAD, LITEST_ANY); litest_add(touchpad_2fg_no_motion, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH); @@ -7338,7 +7336,9 @@ TEST_COLLECTION(touchpad) litest_add_parametrized(touchpad_initial_state, LITEST_TOUCHPAD, LITEST_ANY, params); } - litest_add_ranged(touchpad_fingers_down_before_init, LITEST_TOUCHPAD, LITEST_ANY, &five_fingers); + litest_with_parameters(params, "fingers", 'i', 5, 1, 2, 3, 4, 5) { + litest_add_parametrized(touchpad_fingers_down_before_init, LITEST_TOUCHPAD, LITEST_ANY, params); + } litest_add(touchpad_state_after_syn_dropped_2fg_change, LITEST_TOUCHPAD, LITEST_SINGLE_TOUCH); litest_add(touchpad_thumb_lower_area_movement, LITEST_CLICKPAD, LITEST_ANY); @@ -7397,8 +7397,6 @@ TEST_COLLECTION(touchpad) TEST_COLLECTION(touchpad_dwt) { - struct range twice = {0, 2 }; - litest_add(touchpad_dwt, LITEST_TOUCHPAD, LITEST_ANY); litest_add_for_device(touchpad_dwt_ext_and_int_keyboard, LITEST_SYNAPTICS_I2C); litest_add(touchpad_dwt_enable_touch, LITEST_TOUCHPAD, LITEST_ANY); @@ -7438,7 +7436,9 @@ TEST_COLLECTION(touchpad_dwt) litest_add_for_device(touchpad_dwt_multiple_keyboards, LITEST_SYNAPTICS_I2C); litest_add_for_device(touchpad_dwt_multiple_keyboards_bothkeys, LITEST_SYNAPTICS_I2C); litest_add_for_device(touchpad_dwt_multiple_keyboards_bothkeys_modifier, LITEST_SYNAPTICS_I2C); - litest_add_ranged_for_device(touchpad_dwt_multiple_keyboards_remove, LITEST_SYNAPTICS_I2C, &twice); + litest_with_parameters(params, "which", 'I', 2, litest_named_i32(0, "first"), litest_named_i32(1, "second")) { + litest_add_parametrized_for_device(touchpad_dwt_multiple_keyboards_remove, LITEST_SYNAPTICS_I2C, params); + } litest_add_for_device(touchpad_dwt_remove_before_keyboard, LITEST_KEYBOARD); }