From 31b33be1d9a4fb82944e5cd8f92a963b08dbe447 Mon Sep 17 00:00:00 2001 From: Sudheer Shanka Date: Thu, 20 Oct 2022 14:59:46 -0700 Subject: [PATCH] Unregister all the receivers during test teardown. Bug: 253696106 Test: atest services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java Change-Id: I15eb40a92790373182e79bdd15bf01d66520d1bf --- .../net/NetworkPolicyManagerServiceTest.java | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java index 3bcde6a3aa53d..b7f90d43881bd 100644 --- a/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java @@ -113,8 +113,10 @@ import android.app.NotificationManager; import android.app.usage.NetworkStats; import android.app.usage.NetworkStatsManager; import android.app.usage.UsageStatsManagerInternal; +import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; import android.content.pm.ApplicationInfo; import android.content.pm.IPackageManager; import android.content.pm.PackageInfo; @@ -134,6 +136,7 @@ import android.net.NetworkTemplate; import android.net.TelephonyNetworkSpecifier; import android.net.wifi.WifiInfo; import android.os.Binder; +import android.os.Build; import android.os.Handler; import android.os.INetworkManagementService; import android.os.PersistableBundle; @@ -152,6 +155,7 @@ import android.telephony.TelephonyManager; import android.test.suitebuilder.annotation.MediumTest; import android.text.TextUtils; import android.util.ArrayMap; +import android.util.ArraySet; import android.util.DataUnit; import android.util.Log; import android.util.Pair; @@ -171,11 +175,12 @@ import com.android.server.LocalServices; import com.android.server.pm.pkg.AndroidPackage; import com.android.server.usage.AppStandbyInternal; -import libcore.io.Streams; - import com.google.common.util.concurrent.AbstractFuture; +import libcore.io.Streams; + import org.junit.After; +import org.junit.Assume; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -286,6 +291,8 @@ public class NetworkPolicyManagerServiceTest { private NetworkPolicyListenerAnswer mPolicyListener; private NetworkPolicyManagerService mService; + private final ArraySet mRegisteredReceivers = new ArraySet<>(); + /** * In some of the tests while initializing NetworkPolicyManagerService, * ACTION_RESTRICT_BACKGROUND_CHANGED is broadcasted. This is for capturing that broadcast. @@ -437,6 +444,21 @@ public class NetworkPolicyManagerServiceTest { public void enforceCallingOrSelfPermission(String permission, String message) { // Assume that we're AID_SYSTEM } + + @Override + public Intent registerReceiver(BroadcastReceiver receiver, + IntentFilter filter, String broadcastPermission, Handler scheduler) { + mRegisteredReceivers.add(receiver); + return super.registerReceiver(receiver, filter, broadcastPermission, scheduler); + } + + @Override + public Intent registerReceiverForAllUsers(BroadcastReceiver receiver, + IntentFilter filter, String broadcastPermission, Handler scheduler) { + mRegisteredReceivers.add(receiver); + return super.registerReceiverForAllUsers(receiver, filter, broadcastPermission, + scheduler); + } }; setNetpolicyXml(context); @@ -557,6 +579,13 @@ public class NetworkPolicyManagerServiceTest { RecurrenceRule.sClock = Clock.systemDefaultZone(); } + @After + public void unregisterReceivers() throws Exception { + for (BroadcastReceiver receiver : mRegisteredReceivers) { + mServiceContext.unregisterReceiver(receiver); + } + } + @Test public void testTurnRestrictBackgroundOn() throws Exception { assertRestrictBackgroundOff(); @@ -2033,6 +2062,9 @@ public class NetworkPolicyManagerServiceTest { @Test public void testNormalizeTemplate_duplicatedMergedImsiList() { + // This test leads to a Log.wtf, so skip it on eng builds. Otherwise, Log.wtf() would + // result in this process getting killed. + Assume.assumeFalse(Build.IS_ENG); final NetworkTemplate template = new NetworkTemplate.Builder(MATCH_CARRIER) .setSubscriberIds(Set.of(TEST_IMSI)).build(); final String[] mergedImsiGroup = new String[] {TEST_IMSI, TEST_IMSI};