On Tue, Mar 25, 2014 at 09:45:55PM +0100, Jonas Ådahl wrote: > libinput currently handles 16 per device touch points. Test that we > behave as expected when a device has an even higher number of active > touch points. > > Signed-off-by: Jonas Ådahl <jad...@gmail.com> > --- > test/touch.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 50 insertions(+) > > diff --git a/test/touch.c b/test/touch.c > index 9354c25..61d8762 100644 > --- a/test/touch.c > +++ b/test/touch.c > @@ -275,6 +275,54 @@ START_TEST(touch_seat_slot_drop) > } > END_TEST > > +START_TEST(touch_many_slots) > +{ > + struct libinput *libinput; > + struct litest_device *dev; > + struct libinput_event *ev; > + int slot; > + const int num_tps = 100; > + int slot_count = 0; > + enum libinput_event_type type; > + > + dev = litest_current_device(); > + libinput = dev->libinput; > + > + for (slot = 0; slot < num_tps; ++slot) > + litest_touch_down(dev, slot, 0, 0); > + for (slot = 0; slot < num_tps; ++slot) > + litest_touch_up(dev, slot); > + > + libinput_dispatch(libinput); > + while ((ev = libinput_get_event(libinput))) { > + type = libinput_event_get_type(ev); > + > + if (type == LIBINPUT_EVENT_TOUCH_DOWN) > + slot_count++; > + else if (type == LIBINPUT_EVENT_TOUCH_UP) > + break; > + > + libinput_dispatch(libinput); > + } > + > + ck_assert_notnull(ev); > + ck_assert_int_gt(slot_count, 0); > + > + libinput_dispatch(libinput); > + do { > + type = libinput_event_get_type(ev); > + ck_assert_int_ne(type, LIBINPUT_EVENT_TOUCH_DOWN); > + if (type == LIBINPUT_EVENT_TOUCH_UP) { > + slot_count--; > + } > + > + libinput_dispatch(libinput); > + } while ((ev = libinput_get_event(libinput))); > + > + ck_assert_int_eq(slot_count, 0); > +} > +END_TEST > + > int > main(int argc, char **argv) > { > @@ -283,6 +331,8 @@ main(int argc, char **argv) > LITEST_TOUCH, LITEST_ANY); > litest_add_no_device("touch:seat-slot", touch_seat_slots); > litest_add_no_device("touch:seat-slot-drop", touch_seat_slot_drop); > + litest_add("touch:many-slots", touch_many_slots, > + LITEST_TOUCH, LITEST_ANY);
even though it breaks the 80 char width, I'd really prefer it if the tests would just be on one line, it's a lot easier to view them on screens that are less than 10 years old :) Cheers, Peter > > return litest_run(argc, argv); > } > -- > 1.8.3.2 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel