From 602996fe2559e1bcc4e8a32cd21a738950706ca7 Mon Sep 17 00:00:00 2001 From: Hugo Benichi Date: Thu, 12 Oct 2017 23:09:25 +0900 Subject: [PATCH] Fix ConnectivityServiceTest#testNetworkCallbackMaximum Although commit 2a84d1cbcf3 fixed some flakyness issues in testNetworkCallbackMaximum so that it became stable when ran on its own, it introduced a new source of random failures because instead of registering callbacks after callbacks until a limit was reached, commit 2a84d1cbcf3 changed the test logic to push the assertions right up to the theoretical limit. More precisely when registering and unregistering PendingIntents in a loop, not introducing some delay for checking that previous PendingIntents have been effectively unregistered can cause the test to fail. This patch fixes this issue. Bug: 32561414 Bug: 62918393 Test: runtest frameworks-net testNetworkCallbackMaximum now succeeds 100 in a row on sailfish Change-Id: I086817a738ab99fd53ba76ca8faada6151f46472 --- tests/net/java/com/android/server/ConnectivityServiceTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java index d9586c2b31..c2cb66d5e6 100644 --- a/tests/net/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java @@ -3296,12 +3296,14 @@ public class ConnectivityServiceTest { mCm.requestNetwork(networkRequest, networkCallback); mCm.unregisterNetworkCallback(networkCallback); } + waitForIdle(); for (int i = 0; i < MAX_REQUESTS; i++) { NetworkCallback networkCallback = new NetworkCallback(); mCm.registerNetworkCallback(networkRequest, networkCallback); mCm.unregisterNetworkCallback(networkCallback); } + waitForIdle(); for (int i = 0; i < MAX_REQUESTS; i++) { PendingIntent pendingIntent = @@ -3309,6 +3311,7 @@ public class ConnectivityServiceTest { mCm.requestNetwork(networkRequest, pendingIntent); mCm.unregisterNetworkCallback(pendingIntent); } + waitForIdle(); for (int i = 0; i < MAX_REQUESTS; i++) { PendingIntent pendingIntent =