[PATCH libinput 3/5] test/pointer: Don't rely on velocities in direction change test

Jonas Ådahl jadahl at gmail.com
Mon Jul 27 21:47:04 PDT 2015


We currently rely on an extra millisecond being added by the filter
code to get a velocity that are small enough to not hit the max
acceleration limit. If this arbitrary millisecond is changed (for
example by changing the internal time measurment to microseconds and
adding just a microsecond instead), the velocity may change so that the
maximum or minimum acceleration is always hit.

Adding a delay to the test won't work either since it would not only rely
on ending up within the acceleration limits but there would also be an
non-deterministic actual delay causing the velocity of the movement
after the direction change to be potentially larger than the movement
in the original direction due to the actual time delta in libinput will
not always be 1ms.

To fix the test to not rely on any artificial delays in the filter code
nor any non-deterministic delays in the test, lets just test that the
direction change of the hardware events resulted in a direction change
of the libinput motion events.

Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
---
 test/pointer.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/test/pointer.c b/test/pointer.c
index 1de5dc9..10b9fdc 100644
--- a/test/pointer.c
+++ b/test/pointer.c
@@ -998,7 +998,6 @@ START_TEST(pointer_accel_direction_change)
 	struct libinput_event_pointer *pev;
 	int i;
 	double delta;
-	double max_accel;
 
 	litest_drain_events(li);
 
@@ -1019,7 +1018,6 @@ START_TEST(pointer_accel_direction_change)
 
 		delta = libinput_event_pointer_get_dx(pev);
 		ck_assert_double_le(delta, 0.0);
-		max_accel = delta;
 		libinput_event_destroy(event);
 		event = libinput_get_event(li);
 	} while (libinput_next_event_type(li) != LIBINPUT_EVENT_NONE);
@@ -1027,7 +1025,6 @@ START_TEST(pointer_accel_direction_change)
 	pev = libinput_event_get_pointer_event(event);
 	delta = libinput_event_pointer_get_dx(pev);
 	ck_assert_double_gt(delta, 0.0);
-	ck_assert_double_lt(delta, -max_accel);
 	libinput_event_destroy(event);
 }
 END_TEST
-- 
2.1.0



More information about the wayland-devel mailing list