test: add a test for tablet pad event timestamps

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2017-01-16 10:51:10 +10:00
parent dbeaa06712
commit a7f4939f91

View file

@ -53,6 +53,72 @@ START_TEST(pad_no_cap)
}
END_TEST
START_TEST(pad_time)
{
struct litest_device *dev = litest_current_device();
struct libinput *li = dev->libinput;
struct libinput_event *ev;
struct libinput_event_tablet_pad *pev;
unsigned int code;
uint64_t time, time_usec, oldtime;
litest_drain_events(li);
for (code = BTN_0; code < KEY_MAX; code++) {
if (!libevdev_has_event_code(dev->evdev, EV_KEY, code))
continue;
litest_button_click(dev, code, 1);
litest_button_click(dev, code, 0);
libinput_dispatch(li);
switch (code) {
case BTN_STYLUS:
litest_assert_empty_queue(li);
continue;
default:
break;
}
break;
}
ev = libinput_get_event(li);
pev = litest_is_pad_button_event(ev,
0,
LIBINPUT_BUTTON_STATE_PRESSED);
time = libinput_event_tablet_pad_get_time(pev);
time_usec = libinput_event_tablet_pad_get_time_usec(pev);
ck_assert(time != 0);
ck_assert(time == time_usec/1000);
libinput_event_destroy(ev);
litest_drain_events(li);
msleep(10);
litest_button_click(dev, code, 1);
litest_button_click(dev, code, 0);
libinput_dispatch(li);
ev = libinput_get_event(li);
pev = litest_is_pad_button_event(ev,
0,
LIBINPUT_BUTTON_STATE_PRESSED);
oldtime = time;
time = libinput_event_tablet_pad_get_time(pev);
time_usec = libinput_event_tablet_pad_get_time_usec(pev);
ck_assert(time > oldtime);
ck_assert(time != 0);
ck_assert(time == time_usec/1000);
libinput_event_destroy(ev);
}
END_TEST
START_TEST(pad_num_buttons)
{
struct litest_device *dev = litest_current_device();
@ -637,6 +703,8 @@ litest_setup_tests_pad(void)
litest_add("pad:cap", pad_cap, LITEST_TABLET_PAD, LITEST_ANY);
litest_add("pad:cap", pad_no_cap, LITEST_ANY, LITEST_TABLET_PAD);
litest_add("pad:time", pad_time, LITEST_TABLET_PAD, LITEST_ANY);
litest_add("pad:button", pad_num_buttons, LITEST_TABLET_PAD, LITEST_ANY);
litest_add("pad:button", pad_button, LITEST_TABLET_PAD, LITEST_ANY);