Initialize PointerCoords in input tests
The struct PointerCoords in VelocityTracker_test is created on the stack, but never initialized. Later, the coords are used to add an x and y value to the MotionEvent. The field "bits" in the struct is therefore initialized to whatever was previously occupying that stack address. It is possible that stack contained some non-zero data. This would cause enough of the bits of the 'bits' variable to be set, but without any of them being X or Y. As a result, when a new X or Y value is assigned, it does not fit into the bits (there's a 30-axes limit), and therefore remains at zero. Later, when velocity is computed, the coordinates evaluate to zero, and therefore, zero velocity is produced. The test fails, because a non-zero velocity is expected. After an audit of the entire Android codebase for usage of PointerCoords, found another potential issue in InputClassifier_test. Likely the code was copied over from VelocityTracker_test. Add a fix for that as well. Bug: 126536349 Test: atest -it -a libinput_tests, but only executed after building and flashing asanified libinput and libinput_tests onto device. Change-Id: Id8b870b6201d7489284bf9fc646750770bb9321a Merged-In: Id8b870b6201d7489284bf9fc646750770bb9321a
Loading
Please register or sign in to comment