Loading services/core/java/com/android/server/net/NetworkPolicyManagerService.java +2 −1 Original line number Diff line number Diff line Loading @@ -1809,7 +1809,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { for (int i = 0; i < mUidPolicy.size(); i++) { final int uid = mUidPolicy.keyAt(i); final int uidPolicy = mUidPolicy.valueAt(i); if (uidPolicy == policy) { if ((policy == POLICY_NONE && uidPolicy == POLICY_NONE) || (uidPolicy & policy) != 0) { uids = appendInt(uids, uid); } } Loading services/tests/servicestests/assets/NetworkPolicyManagerServiceTest/netpolicy/uids-with-mixed-policies.xml 0 → 100644 +9 −0 Original line number Diff line number Diff line <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <policy-list version="10"> <uid-policy uid="10004" policy="0" /> <uid-policy uid="10008" policy="1" /> <uid-policy uid="10015" policy="2" /> <uid-policy uid="10016" policy="3" /> <uid-policy uid="10023" policy="4" /> <uid-policy uid="10042" policy="6" /> </policy-list> services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java +14 −1 Original line number Diff line number Diff line Loading @@ -160,7 +160,6 @@ public class NetworkPolicyManagerServiceTest { */ private String mNetpolicyXml; private @Mock IActivityManager mActivityManager; private @Mock INetworkStatsService mStatsService; private @Mock INetworkManagementService mNetworkManager; Loading Loading @@ -350,6 +349,20 @@ public class NetworkPolicyManagerServiceTest { assertUidPolicy(UID_D, POLICY_ALLOW_METERED_BACKGROUND); } @Test @NetPolicyXml("uids-with-mixed-policies.xml") public void testGetUidsWithPolicy() throws Exception { assertContainsInAnyOrder(mService.getUidsWithPolicy(POLICY_NONE), UID_A); assertContainsInAnyOrder(mService.getUidsWithPolicy(POLICY_REJECT_METERED_BACKGROUND), UID_B, UID_D); assertContainsInAnyOrder(mService.getUidsWithPolicy(POLICY_ALLOW_METERED_BACKGROUND), UID_E, UID_F); // Legacy (POLICY_ALLOW_BACKGROUND_BATTERY_SAVE) assertContainsInAnyOrder(mService.getUidsWithPolicy(2), UID_C, UID_D, UID_F); } // NOTE: testPolicyChangeTriggersListener() and testUidForeground() are too superficial, they // don't check for side-effects (like calls to NetworkManagementService) neither cover all // different modes (Data Saver, Battery Saver, Doze, App idle, etc...). Loading Loading
services/core/java/com/android/server/net/NetworkPolicyManagerService.java +2 −1 Original line number Diff line number Diff line Loading @@ -1809,7 +1809,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { for (int i = 0; i < mUidPolicy.size(); i++) { final int uid = mUidPolicy.keyAt(i); final int uidPolicy = mUidPolicy.valueAt(i); if (uidPolicy == policy) { if ((policy == POLICY_NONE && uidPolicy == POLICY_NONE) || (uidPolicy & policy) != 0) { uids = appendInt(uids, uid); } } Loading
services/tests/servicestests/assets/NetworkPolicyManagerServiceTest/netpolicy/uids-with-mixed-policies.xml 0 → 100644 +9 −0 Original line number Diff line number Diff line <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <policy-list version="10"> <uid-policy uid="10004" policy="0" /> <uid-policy uid="10008" policy="1" /> <uid-policy uid="10015" policy="2" /> <uid-policy uid="10016" policy="3" /> <uid-policy uid="10023" policy="4" /> <uid-policy uid="10042" policy="6" /> </policy-list>
services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java +14 −1 Original line number Diff line number Diff line Loading @@ -160,7 +160,6 @@ public class NetworkPolicyManagerServiceTest { */ private String mNetpolicyXml; private @Mock IActivityManager mActivityManager; private @Mock INetworkStatsService mStatsService; private @Mock INetworkManagementService mNetworkManager; Loading Loading @@ -350,6 +349,20 @@ public class NetworkPolicyManagerServiceTest { assertUidPolicy(UID_D, POLICY_ALLOW_METERED_BACKGROUND); } @Test @NetPolicyXml("uids-with-mixed-policies.xml") public void testGetUidsWithPolicy() throws Exception { assertContainsInAnyOrder(mService.getUidsWithPolicy(POLICY_NONE), UID_A); assertContainsInAnyOrder(mService.getUidsWithPolicy(POLICY_REJECT_METERED_BACKGROUND), UID_B, UID_D); assertContainsInAnyOrder(mService.getUidsWithPolicy(POLICY_ALLOW_METERED_BACKGROUND), UID_E, UID_F); // Legacy (POLICY_ALLOW_BACKGROUND_BATTERY_SAVE) assertContainsInAnyOrder(mService.getUidsWithPolicy(2), UID_C, UID_D, UID_F); } // NOTE: testPolicyChangeTriggersListener() and testUidForeground() are too superficial, they // don't check for side-effects (like calls to NetworkManagementService) neither cover all // different modes (Data Saver, Battery Saver, Doze, App idle, etc...). Loading