From a7f4939f91f49f31332328b9e52b7510f660d50b Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 16 Jan 2017 10:51:10 +1000 Subject: [PATCH] test: add a test for tablet pad event timestamps Signed-off-by: Peter Hutterer --- test/test-pad.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/test/test-pad.c b/test/test-pad.c index e2651e68..7048570e 100644 --- a/test/test-pad.c +++ b/test/test-pad.c @@ -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);