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: <https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1142>
This commit is contained in:
satrmb 2025-02-06 20:14:57 +01:00
parent 3a60c47e33
commit 6f9a54c573
6 changed files with 274 additions and 215 deletions

View file

@ -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 */

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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);
}