summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Siarhei Vishniakou <svv@google.com> 2023-07-19 16:56:07 -0700
committer Siarhei Vishniakou <svv@google.com> 2023-07-21 00:02:02 +0000
commit5468a014a89f62a19111e5cf322594574499aa71 (patch)
tree4f999f5bd4aa2850c54c2e3146d139569c50a596
parent5a726914a9049da281269d5d02cd73796911b031 (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
-rw-r--r--tests/Input/src/com/android/test/input/InputEventSenderAndReceiverTest.kt6
-rw-r--r--tests/Input/src/com/android/test/input/PointerEventDispatcherTest.kt6
-rw-r--r--tests/Input/src/com/android/test/input/SpyInputEventSenderAndReceiver.kt12
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)
+ }
}