diff --git a/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt b/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt index 1c9aba1e11..8e2b3101ed 100644 --- a/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt +++ b/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt @@ -306,6 +306,11 @@ class NetworkAgentTest { return foundCallback } + inline fun eventuallyExpect() = + history.poll(DEFAULT_TIMEOUT_MS) { it is T }.also { + assertNotNull(it, "Callback ${T::class} not received") + } as T + fun assertNoCallback() { assertTrue(waitForIdle(DEFAULT_TIMEOUT_MS), "Handler didn't became idle after ${DEFAULT_TIMEOUT_MS}ms") @@ -383,13 +388,12 @@ class NetworkAgentTest { callback.expectAvailableThenValidatedCallbacks(agent.network) agent.expectEmptySignalStrengths() agent.expectNoInternetValidationStatus() - agent.unregister() + + unregister(agent) callback.expectCallback(agent.network) - agent.expectCallback() assertFailsWith("Must not be able to register an agent twice") { agent.register() } - agent.expectCallback() } @Test @@ -400,7 +404,7 @@ class NetworkAgentTest { agent.expectNoInternetValidationStatus() mCM.requestBandwidthUpdate(agent.network) agent.expectCallback() - agent.unregister() + unregister(agent) } @Test @@ -648,10 +652,16 @@ class NetworkAgentTest { } } - agent.unregister() + unregister(agent) callback.expectCallback(agent.network) } + private fun unregister(agent: TestableNetworkAgent) { + agent.unregister() + agent.eventuallyExpect() + agent.eventuallyExpect() + } + @Test @IgnoreUpTo(Build.VERSION_CODES.R) fun testAgentStartsInConnecting() {