diff options
| author | 2021-04-09 16:27:54 +0000 | |
|---|---|---|
| committer | 2021-04-09 16:27:54 +0000 | |
| commit | b86ffd63db89eb1e392bbe7db9cbc865639da18c (patch) | |
| tree | 32b7d45d068359204fa092bfa01f3927517be9c8 | |
| parent | b2b97f6f5e1ccd0291701d7b09077a97c9a1c2c3 (diff) | |
| parent | 7fe91d40f1a64abcfc43e68e305837924d8a1a3b (diff) | |
Merge "Adding log history for setOemNetworkPreference()" am: 7fe91d40f1
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1666340
Change-Id: I8c9faa1652e702b597cff87c7b5f22f859611dba
| -rw-r--r-- | services/core/java/com/android/server/ConnectivityService.java | 18 | ||||
| -rw-r--r-- | tests/net/java/com/android/server/ConnectivityServiceTest.java | 31 | 
2 files changed, 46 insertions, 3 deletions
| diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 30667177efc7..2e974aeb0ae1 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -2884,13 +2884,13 @@ public class ConnectivityService extends IConnectivityManager.Stub              pw.println();              pw.println("mNetworkRequestInfoLogs (most recent first):");              pw.increaseIndent(); -            mNetworkRequestInfoLogs.reverseDump(fd, pw, args); +            mNetworkRequestInfoLogs.reverseDump(pw);              pw.decreaseIndent();              pw.println();              pw.println("mNetworkInfoBlockingLogs (most recent first):");              pw.increaseIndent(); -            mNetworkInfoBlockingLogs.reverseDump(fd, pw, args); +            mNetworkInfoBlockingLogs.reverseDump(pw);              pw.decreaseIndent();              pw.println(); @@ -2904,7 +2904,7 @@ public class ConnectivityService extends IConnectivityManager.Stub                  long duration = SystemClock.elapsedRealtime() - mLastWakeLockAcquireTimestamp;                  pw.println("currently holding WakeLock for: " + (duration / 1000) + "s");              } -            mWakelockLogs.reverseDump(fd, pw, args); +            mWakelockLogs.reverseDump(pw);              pw.println();              pw.println("bandwidth update requests (by uid):"); @@ -2916,7 +2916,12 @@ public class ConnectivityService extends IConnectivityManager.Stub                  }              }              pw.decreaseIndent(); +            pw.decreaseIndent(); +            pw.println(); +            pw.println("mOemNetworkPreferencesLogs (most recent first):"); +            pw.increaseIndent(); +            mOemNetworkPreferencesLogs.reverseDump(pw);              pw.decreaseIndent();          } @@ -6205,6 +6210,12 @@ public class ConnectivityService extends IConnectivityManager.Stub      @NonNull      private ProfileNetworkPreferences mProfileNetworkPreferences = new ProfileNetworkPreferences(); +    // OemNetworkPreferences activity String log entries. +    private static final int MAX_OEM_NETWORK_PREFERENCE_LOGS = 20; +    @NonNull +    private final LocalLog mOemNetworkPreferencesLogs = +            new LocalLog(MAX_OEM_NETWORK_PREFERENCE_LOGS); +      /**       * Determine whether a given package has a mapping in the current OemNetworkPreferences.       * @param packageName the package name to check existence of a mapping for. @@ -9637,6 +9648,7 @@ public class ConnectivityService extends IConnectivityManager.Stub              return;          } +        mOemNetworkPreferencesLogs.log("UPDATE INITIATED: " + preference);          final ArraySet<NetworkRequestInfo> nris =                  new OemNetworkRequestFactory().createNrisFromOemNetworkPreferences(preference);          replaceDefaultNetworkRequestsForPreference(nris); diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java index e050495bfd0d..790f3be13293 100644 --- a/tests/net/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java @@ -18,6 +18,7 @@ package com.android.server;  import static android.Manifest.permission.CHANGE_NETWORK_STATE;  import static android.Manifest.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS; +import static android.Manifest.permission.DUMP;  import static android.Manifest.permission.NETWORK_FACTORY;  import static android.Manifest.permission.NETWORK_SETTINGS;  import static android.app.PendingIntent.FLAG_IMMUTABLE; @@ -356,6 +357,8 @@ import java.util.concurrent.atomic.AtomicBoolean;  import java.util.concurrent.atomic.AtomicReference;  import java.util.function.Predicate;  import java.util.function.Supplier; +import java.util.regex.Matcher; +import java.util.regex.Pattern;  import java.util.stream.Collectors;  import kotlin.reflect.KClass; @@ -9950,6 +9953,7 @@ public class ConnectivityServiceTest {      @Test      public void testDumpDoesNotCrash() { +        mServiceContext.setPermission(DUMP, PERMISSION_GRANTED);          // Filing a couple requests prior to testing the dump.          final TestNetworkCallback genericNetworkCallback = new TestNetworkCallback();          final TestNetworkCallback wifiNetworkCallback = new TestNetworkCallback(); @@ -11706,6 +11710,33 @@ public class ConnectivityServiceTest {      }      @Test +    public void testSetOemNetworkPreferenceLogsRequest() throws Exception { +        mServiceContext.setPermission(DUMP, PERMISSION_GRANTED); +        @OemNetworkPreferences.OemNetworkPreference final int networkPref = +                OEM_NETWORK_PREFERENCE_OEM_PAID; +        final StringWriter stringWriter = new StringWriter(); +        final String logIdentifier = "UPDATE INITIATED: OemNetworkPreferences"; +        final Pattern pattern = Pattern.compile(logIdentifier); + +        final int expectedNumLogs = 2; +        final UidRangeParcel[] uidRanges = +                toUidRangeStableParcels(uidRangesForUids(TEST_PACKAGE_UID)); + +        // Call twice to generate two logs. +        setupSetOemNetworkPreferenceForPreferenceTest(networkPref, uidRanges, TEST_PACKAGE_NAME); +        setupSetOemNetworkPreferenceForPreferenceTest(networkPref, uidRanges, TEST_PACKAGE_NAME); +        mService.dump(new FileDescriptor(), new PrintWriter(stringWriter), new String[0]); + +        final String dumpOutput = stringWriter.toString(); +        final Matcher matcher = pattern.matcher(dumpOutput); +        int count = 0; +        while (matcher.find()) { +            count++; +        } +        assertEquals(expectedNumLogs, count); +    } + +    @Test      public void testGetAllNetworkStateSnapshot() throws Exception {          verifyNoNetwork(); |