From 64df64665886fcc679329a6c5d2a2c12a6204c87 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 27 May 2019 14:19:26 +1000 Subject: [PATCH] test: split a test up into events vs processing Running under valgrind, this test often fails when the machine is under load. Split it up so the events are all processed in one go, reducing the chance of getting a timeout while processing a previous event. Signed-off-by: Peter Hutterer --- test/test-touchpad.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/test/test-touchpad.c b/test/test-touchpad.c index 6d4f7abe..3a7a0092 100644 --- a/test/test-touchpad.c +++ b/test/test-touchpad.c @@ -172,6 +172,7 @@ START_TEST(touchpad_2fg_scroll_initially_diagonal) struct libinput_event *event; struct libinput_event_pointer *ptrev; int i; + int expected_nevents; if (!litest_has_2fg_scroll(dev)) return; @@ -196,18 +197,27 @@ START_TEST(touchpad_2fg_scroll_initially_diagonal) litest_drain_events(li); /* scroll vertical only and make sure the horiz axis is never set */ + expected_nevents = 0; for (i = 6; i < 10; i++) { litest_touch_move(dev, 0, 55, 41 + i); - libinput_dispatch(li); + expected_nevents++; + } - event = libinput_get_event(li); + libinput_dispatch(li); + event = libinput_get_event(li); + + do { ptrev = litest_is_axis_event(event, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL, LIBINPUT_POINTER_AXIS_SOURCE_FINGER); ck_assert(!libinput_event_pointer_has_axis(ptrev, LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL)); libinput_event_destroy(event); - } + event = libinput_get_event(li); + expected_nevents--; + } while (event); + + ck_assert_int_eq(expected_nevents, 0); litest_touch_up(dev, 1); litest_touch_up(dev, 0);