From 073e5e94ad95b540501df6ea6937003359f23ac0 Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Fri, 28 Oct 2016 12:56:03 +0900 Subject: [PATCH] DO NOT MERGE: De-guava BroadcastInterceptingContext and move it to testutils. Removing the static dependency on guava reduces test compile time by about 20 seconds on a Z840, thus substantially speeding up the compile/test cycle. Make FutureIntent public instead of package-private because it is used directly by NetworkPolicyManagementServiceTest, which as of this CL is now in a different package. (cherry picked from commit 281a17c9580de5c9898be7d9654d428801976511) Test: runtest frameworks-services -c com.android.server.ConnectivityServiceTest # PASS Test: runtest frameworks-services -c com.android.server.NetworkPolicyManagerServiceTest # PASS Test: runtest frameworks-services -c com.android.server.net.NetworkStatsServiceTest # PASS Test: runtest frameworks-services -c com.android.server.NetworkManagementServiceTest # Already failing. Bug: 31479480 (cherry picked from commit 3c295b59f5767904656235db48692906148ab631) Change-Id: I8a95d4618dced81f173d2b38b9c1dfe3860b348a --- .../android/server/ConnectivityServiceTest.java | 1 + .../server/NetworkManagementServiceTest.java | 1 + .../server/NetworkPolicyManagerServiceTest.java | 1 + .../server/net/NetworkStatsServiceTest.java | 2 +- .../util/test}/BroadcastInterceptingContext.java | 23 ++++++++++++++-------- 5 files changed, 19 insertions(+), 9 deletions(-) rename {services/tests/servicestests/src/com/android/server => tests/utils/testutils/java/com/android/internal/util/test}/BroadcastInterceptingContext.java (89%) diff --git a/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java b/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java index 9bf3c2cf5efd..f95a8c6de58d 100644 --- a/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java @@ -76,6 +76,7 @@ import android.util.Log; import android.util.LogPrinter; import com.android.internal.util.WakeupMessage; +import com.android.internal.util.test.BroadcastInterceptingContext; import com.android.internal.util.test.FakeSettingsProvider; import com.android.server.connectivity.NetworkAgentInfo; import com.android.server.connectivity.NetworkMonitor; diff --git a/services/tests/servicestests/src/com/android/server/NetworkManagementServiceTest.java b/services/tests/servicestests/src/com/android/server/NetworkManagementServiceTest.java index 0d5daa5def97..f841bf9bff22 100644 --- a/services/tests/servicestests/src/com/android/server/NetworkManagementServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/NetworkManagementServiceTest.java @@ -24,6 +24,7 @@ import android.os.Binder; import android.test.AndroidTestCase; import android.test.suitebuilder.annotation.LargeTest; import com.android.server.net.BaseNetworkObserver; +import com.android.internal.util.test.BroadcastInterceptingContext; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; diff --git a/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java index 1a943a36c085..aeeca79a8473 100644 --- a/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java @@ -78,6 +78,7 @@ import android.test.suitebuilder.annotation.Suppress; import android.text.format.Time; import android.util.TrustedTime; +import com.android.internal.util.test.BroadcastInterceptingContext; import com.android.server.net.NetworkPolicyManagerService; import com.google.common.util.concurrent.AbstractFuture; diff --git a/services/tests/servicestests/src/com/android/server/net/NetworkStatsServiceTest.java b/services/tests/servicestests/src/com/android/server/net/NetworkStatsServiceTest.java index 94c6711da9ae..4b69eb3ac35b 100644 --- a/services/tests/servicestests/src/com/android/server/net/NetworkStatsServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/net/NetworkStatsServiceTest.java @@ -88,7 +88,7 @@ import android.test.suitebuilder.annotation.Suppress; import android.util.TrustedTime; import com.android.internal.net.VpnInfo; -import com.android.server.BroadcastInterceptingContext; +import com.android.internal.util.test.BroadcastInterceptingContext; import com.android.server.net.NetworkStatsService; import com.android.server.net.NetworkStatsService.NetworkStatsSettings; import com.android.server.net.NetworkStatsService.NetworkStatsSettings.Config; diff --git a/services/tests/servicestests/src/com/android/server/BroadcastInterceptingContext.java b/tests/utils/testutils/java/com/android/internal/util/test/BroadcastInterceptingContext.java similarity index 89% rename from services/tests/servicestests/src/com/android/server/BroadcastInterceptingContext.java rename to tests/utils/testutils/java/com/android/internal/util/test/BroadcastInterceptingContext.java index 13657ab7f02d..27b7419f227a 100644 --- a/services/tests/servicestests/src/com/android/server/BroadcastInterceptingContext.java +++ b/tests/utils/testutils/java/com/android/internal/util/test/BroadcastInterceptingContext.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server; +package com.android.internal.util.test; import android.content.BroadcastReceiver; import android.content.Context; @@ -25,13 +25,12 @@ import android.os.Bundle; import android.os.Handler; import android.os.UserHandle; -import com.google.common.collect.Lists; -import com.google.common.util.concurrent.AbstractFuture; - +import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; +import java.util.concurrent.FutureTask; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; @@ -42,9 +41,17 @@ import java.util.concurrent.TimeoutException; public class BroadcastInterceptingContext extends ContextWrapper { private static final String TAG = "WatchingContext"; - private final List mInterceptors = Lists.newArrayList(); + private final List mInterceptors = new ArrayList<>(); + + public abstract class FutureIntent extends FutureTask { + public FutureIntent() { + super( + () -> { throw new IllegalStateException("Cannot happen"); } + ); + } + } - public class BroadcastInterceptor extends AbstractFuture { + public class BroadcastInterceptor extends FutureIntent { private final BroadcastReceiver mReceiver; private final IntentFilter mFilter; @@ -82,11 +89,11 @@ public class BroadcastInterceptingContext extends ContextWrapper { super(base); } - public Future nextBroadcastIntent(String action) { + public FutureIntent nextBroadcastIntent(String action) { return nextBroadcastIntent(new IntentFilter(action)); } - public Future nextBroadcastIntent(IntentFilter filter) { + public FutureIntent nextBroadcastIntent(IntentFilter filter) { final BroadcastInterceptor interceptor = new BroadcastInterceptor(null, filter); synchronized (mInterceptors) { mInterceptors.add(interceptor); -- 2.11.0