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 281a17c958)

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 3c295b59f5)

Change-Id: I8a95d4618dced81f173d2b38b9c1dfe3860b348a
This commit is contained in:
Lorenzo Colitti
2016-10-28 12:56:03 +09:00
parent 9997f1489a
commit 073e5e94ad
5 changed files with 19 additions and 9 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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<BroadcastInterceptor> mInterceptors = Lists.newArrayList();
private final List<BroadcastInterceptor> mInterceptors = new ArrayList<>();
public class BroadcastInterceptor extends AbstractFuture<Intent> {
public abstract class FutureIntent extends FutureTask<Intent> {
public FutureIntent() {
super(
() -> { throw new IllegalStateException("Cannot happen"); }
);
}
}
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<Intent> nextBroadcastIntent(String action) {
public FutureIntent nextBroadcastIntent(String action) {
return nextBroadcastIntent(new IntentFilter(action));
}
public Future<Intent> nextBroadcastIntent(IntentFilter filter) {
public FutureIntent nextBroadcastIntent(IntentFilter filter) {
final BroadcastInterceptor interceptor = new BroadcastInterceptor(null, filter);
synchronized (mInterceptors) {
mInterceptors.add(interceptor);