Merge "Fix NullPointerException happens in dumpCheckin" am: 6b7e457988 am: 44a02af11a
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2059628 Change-Id: I70635422f634787b51dbd7fa00d9c8617d24c88a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -206,6 +206,7 @@ public class NetworkIdentitySet extends HashSet<NetworkIdentity> {
|
|||||||
public static int compare(@NonNull NetworkIdentitySet left, @NonNull NetworkIdentitySet right) {
|
public static int compare(@NonNull NetworkIdentitySet left, @NonNull NetworkIdentitySet right) {
|
||||||
Objects.requireNonNull(left);
|
Objects.requireNonNull(left);
|
||||||
Objects.requireNonNull(right);
|
Objects.requireNonNull(right);
|
||||||
|
if (left.isEmpty() && right.isEmpty()) return 0;
|
||||||
if (left.isEmpty()) return -1;
|
if (left.isEmpty()) return -1;
|
||||||
if (right.isEmpty()) return 1;
|
if (right.isEmpty()) return 1;
|
||||||
|
|
||||||
|
|||||||
@@ -776,7 +776,7 @@ public class NetworkStatsCollection implements FileRotator.Reader, FileRotator.W
|
|||||||
if (!templateMatches(groupTemplate, key.ident)) continue;
|
if (!templateMatches(groupTemplate, key.ident)) continue;
|
||||||
if (key.set >= NetworkStats.SET_DEBUG_START) continue;
|
if (key.set >= NetworkStats.SET_DEBUG_START) continue;
|
||||||
|
|
||||||
final Key groupKey = new Key(null, key.uid, key.set, key.tag);
|
final Key groupKey = new Key(new NetworkIdentitySet(), key.uid, key.set, key.tag);
|
||||||
NetworkStatsHistory groupHistory = grouped.get(groupKey);
|
NetworkStatsHistory groupHistory = grouped.get(groupKey);
|
||||||
if (groupHistory == null) {
|
if (groupHistory == null) {
|
||||||
groupHistory = new NetworkStatsHistory(value.getBucketDuration());
|
groupHistory = new NetworkStatsHistory(value.getBucketDuration());
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ filegroup {
|
|||||||
"java/android/net/IpSecManagerTest.java",
|
"java/android/net/IpSecManagerTest.java",
|
||||||
"java/android/net/IpSecTransformTest.java",
|
"java/android/net/IpSecTransformTest.java",
|
||||||
"java/android/net/KeepalivePacketDataUtilTest.java",
|
"java/android/net/KeepalivePacketDataUtilTest.java",
|
||||||
|
"java/android/net/NetworkIdentitySetTest.kt",
|
||||||
"java/android/net/NetworkIdentityTest.kt",
|
"java/android/net/NetworkIdentityTest.kt",
|
||||||
"java/android/net/NetworkStats*.java",
|
"java/android/net/NetworkStats*.java",
|
||||||
"java/android/net/NetworkTemplateTest.kt",
|
"java/android/net/NetworkTemplateTest.kt",
|
||||||
|
|||||||
66
tests/unit/java/android/net/NetworkIdentitySetTest.kt
Normal file
66
tests/unit/java/android/net/NetworkIdentitySetTest.kt
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2022 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package android.net
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.net.ConnectivityManager.TYPE_MOBILE
|
||||||
|
import android.os.Build
|
||||||
|
import android.telephony.TelephonyManager
|
||||||
|
import com.android.testutils.DevSdkIgnoreRule
|
||||||
|
import com.android.testutils.DevSdkIgnoreRunner
|
||||||
|
import org.junit.Test
|
||||||
|
import org.junit.runner.RunWith
|
||||||
|
import org.mockito.Mockito.mock
|
||||||
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
|
private const val TEST_IMSI1 = "testimsi1"
|
||||||
|
|
||||||
|
@DevSdkIgnoreRule.IgnoreUpTo(Build.VERSION_CODES.S_V2)
|
||||||
|
@RunWith(DevSdkIgnoreRunner::class)
|
||||||
|
class NetworkIdentitySetTest {
|
||||||
|
private val mockContext = mock(Context::class.java)
|
||||||
|
|
||||||
|
private fun buildMobileNetworkStateSnapshot(
|
||||||
|
caps: NetworkCapabilities,
|
||||||
|
subscriberId: String
|
||||||
|
): NetworkStateSnapshot {
|
||||||
|
return NetworkStateSnapshot(mock(Network::class.java), caps,
|
||||||
|
LinkProperties(), subscriberId, TYPE_MOBILE)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testCompare() {
|
||||||
|
val ident1 = NetworkIdentity.buildNetworkIdentity(mockContext,
|
||||||
|
buildMobileNetworkStateSnapshot(NetworkCapabilities(), TEST_IMSI1),
|
||||||
|
false /* defaultNetwork */, TelephonyManager.NETWORK_TYPE_UMTS)
|
||||||
|
val ident2 = NetworkIdentity.buildNetworkIdentity(mockContext,
|
||||||
|
buildMobileNetworkStateSnapshot(NetworkCapabilities(), TEST_IMSI1),
|
||||||
|
true /* defaultNetwork */, TelephonyManager.NETWORK_TYPE_UMTS)
|
||||||
|
|
||||||
|
// Verify that the results of comparing two empty sets are equal
|
||||||
|
assertEquals(0, NetworkIdentitySet.compare(NetworkIdentitySet(), NetworkIdentitySet()))
|
||||||
|
|
||||||
|
val identSet1 = NetworkIdentitySet()
|
||||||
|
val identSet2 = NetworkIdentitySet()
|
||||||
|
identSet1.add(ident1)
|
||||||
|
identSet2.add(ident2)
|
||||||
|
assertEquals(-1, NetworkIdentitySet.compare(NetworkIdentitySet(), identSet1))
|
||||||
|
assertEquals(1, NetworkIdentitySet.compare(identSet1, NetworkIdentitySet()))
|
||||||
|
assertEquals(0, NetworkIdentitySet.compare(identSet1, identSet1))
|
||||||
|
assertEquals(-1, NetworkIdentitySet.compare(identSet1, identSet2))
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user