mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-05-07 06:08:08 +02:00
tablet: tighten the test for tablet button releases on proximity out
Make sure we check the expected sequence more stringent and change the x/y coordinates on prox in so the kernel doesn't filter them. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
2cdda41a3b
commit
f45a8c9ed7
1 changed files with 18 additions and 7 deletions
|
|
@ -1050,19 +1050,20 @@ START_TEST(proximity_out_clear_buttons)
|
||||||
struct libinput_event_tablet_tool *tablet_event;
|
struct libinput_event_tablet_tool *tablet_event;
|
||||||
struct libinput_event *event;
|
struct libinput_event *event;
|
||||||
uint32_t button;
|
uint32_t button;
|
||||||
|
|
||||||
struct axis_replacement axes[] = {
|
struct axis_replacement axes[] = {
|
||||||
{ ABS_DISTANCE, 10 },
|
{ ABS_DISTANCE, 10 },
|
||||||
{ ABS_PRESSURE, 0 },
|
{ ABS_PRESSURE, 0 },
|
||||||
{ -1, -1 }
|
{ -1, -1 }
|
||||||
};
|
};
|
||||||
|
bool have_proximity = false;
|
||||||
|
double x = 50, y = 50;
|
||||||
|
|
||||||
litest_drain_events(li);
|
litest_drain_events(li);
|
||||||
|
|
||||||
/* Test that proximity out events send button releases for any currently
|
/* Test that proximity out events send button releases for any currently
|
||||||
* pressed stylus buttons
|
* pressed stylus buttons
|
||||||
*/
|
*/
|
||||||
for (button = BTN_TOUCH + 1; button <= BTN_STYLUS2; button++) {
|
for (button = BTN_STYLUS; button <= BTN_STYLUS2; button++) {
|
||||||
bool button_released = false;
|
bool button_released = false;
|
||||||
uint32_t event_button = 0;
|
uint32_t event_button = 0;
|
||||||
enum libinput_button_state state;
|
enum libinput_button_state state;
|
||||||
|
|
@ -1070,7 +1071,9 @@ START_TEST(proximity_out_clear_buttons)
|
||||||
if (!libevdev_has_event_code(dev->evdev, EV_KEY, button))
|
if (!libevdev_has_event_code(dev->evdev, EV_KEY, button))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
litest_tablet_proximity_in(dev, 10, 10, axes);
|
litest_tablet_proximity_in(dev, x++, y++, axes);
|
||||||
|
litest_drain_events(li);
|
||||||
|
|
||||||
litest_event(dev, EV_KEY, button, 1);
|
litest_event(dev, EV_KEY, button, 1);
|
||||||
litest_event(dev, EV_SYN, SYN_REPORT, 0);
|
litest_event(dev, EV_SYN, SYN_REPORT, 0);
|
||||||
litest_tablet_proximity_out(dev);
|
litest_tablet_proximity_out(dev);
|
||||||
|
|
@ -1079,9 +1082,17 @@ START_TEST(proximity_out_clear_buttons)
|
||||||
litest_timeout_tablet_proxout();
|
litest_timeout_tablet_proxout();
|
||||||
libinput_dispatch(li);
|
libinput_dispatch(li);
|
||||||
|
|
||||||
while ((event = libinput_get_event(li))) {
|
event = libinput_get_event(li);
|
||||||
|
ck_assert_notnull(event);
|
||||||
|
do {
|
||||||
tablet_event = libinput_event_get_tablet_tool_event(event);
|
tablet_event = libinput_event_get_tablet_tool_event(event);
|
||||||
|
|
||||||
|
if (libinput_event_get_type(event) ==
|
||||||
|
LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY) {
|
||||||
|
have_proximity = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (libinput_event_get_type(event) ==
|
if (libinput_event_get_type(event) ==
|
||||||
LIBINPUT_EVENT_TABLET_TOOL_BUTTON) {
|
LIBINPUT_EVENT_TABLET_TOOL_BUTTON) {
|
||||||
|
|
||||||
|
|
@ -1094,15 +1105,15 @@ START_TEST(proximity_out_clear_buttons)
|
||||||
}
|
}
|
||||||
|
|
||||||
libinput_event_destroy(event);
|
libinput_event_destroy(event);
|
||||||
}
|
} while ((event = libinput_get_event(li)));
|
||||||
|
|
||||||
ck_assert_msg(button_released,
|
ck_assert_msg(button_released,
|
||||||
"Button %s (%d) was not released.",
|
"Button %s (%d) was not released.",
|
||||||
libevdev_event_code_get_name(EV_KEY, button),
|
libevdev_event_code_get_name(EV_KEY, button),
|
||||||
event_button);
|
event_button);
|
||||||
|
litest_assert(have_proximity);
|
||||||
|
litest_assert_empty_queue(li);
|
||||||
}
|
}
|
||||||
|
|
||||||
litest_assert_empty_queue(li);
|
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue