From: Jonas Ådahl Date: Mon, 24 Mar 2014 22:05:21 +0000 (+0100) Subject: test: Check that libinput doesn't send double touch down/up events X-Git-Tag: 0.2.0~17 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2b63c7c872726bcb42d62b100916ea10e03e6024;p=platform%2Fupstream%2Flibinput.git test: Check that libinput doesn't send double touch down/up events Signed-off-by: Jonas Ådahl --- diff --git a/test/touch.c b/test/touch.c index e2a5a4e3..96915e73 100644 --- a/test/touch.c +++ b/test/touch.c @@ -167,12 +167,54 @@ START_TEST(touch_many_slots) } END_TEST +START_TEST(touch_double_touch_down_up) +{ + struct libinput *libinput; + struct litest_device *dev; + struct libinput_event *ev; + bool got_down = false; + bool got_up = false; + + dev = litest_current_device(); + libinput = dev->libinput; + + litest_touch_down(dev, 0, 0, 0); + litest_touch_down(dev, 0, 0, 0); + litest_touch_up(dev, 0); + litest_touch_up(dev, 0); + + libinput_dispatch(libinput); + + while ((ev = libinput_get_event(libinput))) { + switch (libinput_event_get_type(ev)) { + case LIBINPUT_EVENT_TOUCH_DOWN: + ck_assert(!got_down); + got_down = true; + break; + case LIBINPUT_EVENT_TOUCH_UP: + ck_assert(got_down); + ck_assert(!got_up); + got_up = true; + break; + default: + break; + } + + libinput_dispatch(libinput); + } + + ck_assert(got_down); + ck_assert(got_up); +} +END_TEST + int main(int argc, char **argv) { litest_add("touch:frame", touch_frame_events, LITEST_TOUCH, LITEST_ANY); litest_add_no_device("touch:abs-transform", touch_abs_transform); litest_add_no_device("touch:many-slots", touch_many_slots); + litest_add("touch:double-touch-down-up", touch_double_touch_down_up, LITEST_TOUCH, LITEST_ANY); return litest_run(argc, argv); }