diff options
author | 2023-07-19 16:56:07 -0700 | |
---|---|---|
committer | 2023-07-21 00:02:02 +0000 | |
commit | 5468a014a89f62a19111e5cf322594574499aa71 (patch) | |
tree | 4f999f5bd4aa2850c54c2e3146d139569c50a596 | |
parent | 5a726914a9049da281269d5d02cd73796911b031 (diff) |
Make PointerEventDispatcherTest faster
Before this CL, the test waited 10 seconds (on hwasan builds) to assert
that there aren't any events.
Make this check faster by adding a separate assertion that events didn't
occur.
Bug: 290931418
Test: atest PointerEventDispatcherTest --rerun-until-failure 1000
Change-Id: Id4582ab0a2b58787a453e06250b82ecf2b1720f0
3 files changed, 16 insertions, 8 deletions
diff --git a/tests/Input/src/com/android/test/input/InputEventSenderAndReceiverTest.kt b/tests/Input/src/com/android/test/input/InputEventSenderAndReceiverTest.kt index 37b67f4c183c..075cf0cc5a45 100644 --- a/tests/Input/src/com/android/test/input/InputEventSenderAndReceiverTest.kt +++ b/tests/Input/src/com/android/test/input/InputEventSenderAndReceiverTest.kt @@ -113,13 +113,11 @@ class InputEventSenderAndReceiverTest { val sent = SpyInputEventSender.Timeline( inputEventId = 1, gpuCompletedTime = 3, presentTime = 2) mReceiver.reportTimeline(sent.inputEventId, sent.gpuCompletedTime, sent.presentTime) - val received = mSender.getTimeline() - assertEquals(null, received) + mSender.assertNoEvents() // Sender will no longer receive callbacks for this fd, even if receiver sends a valid // timeline later mReceiver.reportTimeline(2 /*inputEventId*/, 3 /*gpuCompletedTime*/, 4 /*presentTime*/) - val receivedSecondTimeline = mSender.getTimeline() - assertEquals(null, receivedSecondTimeline) + mSender.assertNoEvents() } /** diff --git a/tests/Input/src/com/android/test/input/PointerEventDispatcherTest.kt b/tests/Input/src/com/android/test/input/PointerEventDispatcherTest.kt index 1099878a1954..f311bc222d22 100644 --- a/tests/Input/src/com/android/test/input/PointerEventDispatcherTest.kt +++ b/tests/Input/src/com/android/test/input/PointerEventDispatcherTest.kt @@ -25,7 +25,6 @@ import android.view.WindowManagerPolicyConstants.PointerEventListener import com.android.server.UiThread import com.android.server.wm.PointerEventDispatcher import org.junit.Assert.assertEquals -import org.junit.Assert.assertNull import org.junit.After import org.junit.Before import org.junit.Test @@ -86,8 +85,7 @@ class PointerEventDispatcherTest { // Since the listener raises an exception during the event handling, the event should be // marked as 'not handled'. assertEquals(SpyInputEventSender.FinishedSignal(seq, handled = false), finishedSignal) - // Ensure that there aren't double finish calls. This would crash if there's a call - // to finish twice. - assertNull(mSender.getFinishedSignal()) + // Ensure that there aren't double finish calls. + mSender.assertNoEvents() } } diff --git a/tests/Input/src/com/android/test/input/SpyInputEventSenderAndReceiver.kt b/tests/Input/src/com/android/test/input/SpyInputEventSenderAndReceiver.kt index 2d9af9a65d33..5cbfce534b15 100644 --- a/tests/Input/src/com/android/test/input/SpyInputEventSenderAndReceiver.kt +++ b/tests/Input/src/com/android/test/input/SpyInputEventSenderAndReceiver.kt @@ -27,10 +27,17 @@ import android.view.MotionEvent import java.util.concurrent.LinkedBlockingQueue import java.util.concurrent.TimeUnit +import org.junit.Assert.assertNull + private fun <T> getEvent(queue: LinkedBlockingQueue<T>): T? { return queue.poll(DEFAULT_DISPATCHING_TIMEOUT_MILLIS.toLong(), TimeUnit.MILLISECONDS) } +private fun <T> assertNoEvents(queue: LinkedBlockingQueue<T>) { + // Poll the queue with a shorter timeout, to make the check faster. + assertNull(queue.poll(100L, TimeUnit.MILLISECONDS)) +} + class SpyInputEventReceiver(channel: InputChannel, looper: Looper) : InputEventReceiver(channel, looper) { private val mInputEvents = LinkedBlockingQueue<InputEvent>() @@ -72,4 +79,9 @@ class SpyInputEventSender(channel: InputChannel, looper: Looper) : fun getTimeline(): Timeline? { return getEvent(mTimelines) } + + fun assertNoEvents() { + assertNoEvents(mFinishedSignals) + assertNoEvents(mTimelines) + } } |