Factorize custom asserts.
Also a few utilities that were in the way, and some opportunistic cleanups. Test: FrameworksNetTest NetworkStackTest Change-Id: I385070e2044fd967cb18f1ffea9a86a4627b742e
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.internal.util;
|
||||
|
||||
import static org.junit.Assert.assertArrayEquals;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
@@ -25,9 +26,6 @@ import androidx.test.runner.AndroidJUnit4;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
@SmallTest
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class RingBufferTest {
|
||||
@@ -36,7 +34,7 @@ public class RingBufferTest {
|
||||
public void testEmptyRingBuffer() {
|
||||
RingBuffer<String> buffer = new RingBuffer<>(String.class, 100);
|
||||
|
||||
assertArraysEqual(new String[0], buffer.toArray());
|
||||
assertArrayEquals(new String[0], buffer.toArray());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -65,7 +63,7 @@ public class RingBufferTest {
|
||||
buffer.append("e");
|
||||
|
||||
String[] expected = {"a", "b", "c", "d", "e"};
|
||||
assertArraysEqual(expected, buffer.toArray());
|
||||
assertArrayEquals(expected, buffer.toArray());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -73,19 +71,19 @@ public class RingBufferTest {
|
||||
RingBuffer<String> buffer = new RingBuffer<>(String.class, 1);
|
||||
|
||||
buffer.append("a");
|
||||
assertArraysEqual(new String[]{"a"}, buffer.toArray());
|
||||
assertArrayEquals(new String[]{"a"}, buffer.toArray());
|
||||
|
||||
buffer.append("b");
|
||||
assertArraysEqual(new String[]{"b"}, buffer.toArray());
|
||||
assertArrayEquals(new String[]{"b"}, buffer.toArray());
|
||||
|
||||
buffer.append("c");
|
||||
assertArraysEqual(new String[]{"c"}, buffer.toArray());
|
||||
assertArrayEquals(new String[]{"c"}, buffer.toArray());
|
||||
|
||||
buffer.append("d");
|
||||
assertArraysEqual(new String[]{"d"}, buffer.toArray());
|
||||
assertArrayEquals(new String[]{"d"}, buffer.toArray());
|
||||
|
||||
buffer.append("e");
|
||||
assertArraysEqual(new String[]{"e"}, buffer.toArray());
|
||||
assertArrayEquals(new String[]{"e"}, buffer.toArray());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -100,7 +98,7 @@ public class RingBufferTest {
|
||||
buffer.append("e");
|
||||
|
||||
String[] expected1 = {"a", "b", "c", "d", "e"};
|
||||
assertArraysEqual(expected1, buffer.toArray());
|
||||
assertArrayEquals(expected1, buffer.toArray());
|
||||
|
||||
String[] expected2 = new String[capacity];
|
||||
int firstIndex = 0;
|
||||
@@ -111,22 +109,22 @@ public class RingBufferTest {
|
||||
buffer.append("x");
|
||||
expected2[i] = "x";
|
||||
}
|
||||
assertArraysEqual(expected2, buffer.toArray());
|
||||
assertArrayEquals(expected2, buffer.toArray());
|
||||
|
||||
buffer.append("x");
|
||||
expected2[firstIndex] = "x";
|
||||
assertArraysEqual(expected2, buffer.toArray());
|
||||
assertArrayEquals(expected2, buffer.toArray());
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
for (String s : expected2) {
|
||||
buffer.append(s);
|
||||
}
|
||||
}
|
||||
assertArraysEqual(expected2, buffer.toArray());
|
||||
assertArrayEquals(expected2, buffer.toArray());
|
||||
|
||||
buffer.append("a");
|
||||
expected2[lastIndex] = "a";
|
||||
assertArraysEqual(expected2, buffer.toArray());
|
||||
assertArrayEquals(expected2, buffer.toArray());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -143,7 +141,7 @@ public class RingBufferTest {
|
||||
expected[i] = new DummyClass1();
|
||||
expected[i].x = capacity * i;
|
||||
}
|
||||
assertArraysEqual(expected, buffer.toArray());
|
||||
assertArrayEquals(expected, buffer.toArray());
|
||||
|
||||
for (int i = 0; i < capacity; ++i) {
|
||||
if (actual[i] != buffer.getNextSlot()) {
|
||||
@@ -177,18 +175,4 @@ public class RingBufferTest {
|
||||
}
|
||||
|
||||
private static final class DummyClass3 {}
|
||||
|
||||
static <T> void assertArraysEqual(T[] expected, T[] got) {
|
||||
if (expected.length != got.length) {
|
||||
fail(Arrays.toString(expected) + " and " + Arrays.toString(got)
|
||||
+ " did not have the same length");
|
||||
}
|
||||
|
||||
for (int i = 0; i < expected.length; i++) {
|
||||
if (!Objects.equals(expected[i], got[i])) {
|
||||
fail(Arrays.toString(expected) + " and " + Arrays.toString(got)
|
||||
+ " were not equal");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,7 +68,15 @@ import static android.net.NetworkPolicyManager.RULE_REJECT_ALL;
|
||||
import static android.net.NetworkPolicyManager.RULE_REJECT_METERED;
|
||||
import static android.net.RouteInfo.RTN_UNREACHABLE;
|
||||
|
||||
import static org.junit.Assert.assertArrayEquals;
|
||||
import static com.android.testutils.ConcurrentUtilsKt.await;
|
||||
import static com.android.testutils.ConcurrentUtilsKt.durationOf;
|
||||
import static com.android.testutils.HandlerUtilsKt.waitForIdleSerialExecutor;
|
||||
import static com.android.testutils.MiscAssertsKt.assertContainsExactly;
|
||||
import static com.android.testutils.MiscAssertsKt.assertEmpty;
|
||||
import static com.android.testutils.MiscAssertsKt.assertLength;
|
||||
import static com.android.testutils.MiscAssertsKt.assertRunsInAtMost;
|
||||
import static com.android.testutils.MiscAssertsKt.assertThrows;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotEquals;
|
||||
@@ -194,6 +202,7 @@ import com.android.server.net.NetworkPinner;
|
||||
import com.android.server.net.NetworkPolicyManagerInternal;
|
||||
import com.android.server.net.NetworkStatsFactory;
|
||||
import com.android.testutils.HandlerUtilsKt;
|
||||
import com.android.testutils.ThrowingConsumer;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
@@ -2567,10 +2576,10 @@ public class ConnectivityServiceTest {
|
||||
.build();
|
||||
|
||||
Class<IllegalArgumentException> expected = IllegalArgumentException.class;
|
||||
assertException(() -> { mCm.requestNetwork(request1, new NetworkCallback()); }, expected);
|
||||
assertException(() -> { mCm.requestNetwork(request1, pendingIntent); }, expected);
|
||||
assertException(() -> { mCm.requestNetwork(request2, new NetworkCallback()); }, expected);
|
||||
assertException(() -> { mCm.requestNetwork(request2, pendingIntent); }, expected);
|
||||
assertThrows(expected, () -> mCm.requestNetwork(request1, new NetworkCallback()));
|
||||
assertThrows(expected, () -> mCm.requestNetwork(request1, pendingIntent));
|
||||
assertThrows(expected, () -> mCm.requestNetwork(request2, new NetworkCallback()));
|
||||
assertThrows(expected, () -> mCm.requestNetwork(request2, pendingIntent));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -3482,7 +3491,7 @@ public class ConnectivityServiceTest {
|
||||
};
|
||||
}
|
||||
|
||||
assertTimeLimit("Registering callbacks", REGISTER_TIME_LIMIT_MS, () -> {
|
||||
assertRunsInAtMost("Registering callbacks", REGISTER_TIME_LIMIT_MS, () -> {
|
||||
for (NetworkCallback cb : callbacks) {
|
||||
mCm.registerNetworkCallback(request, cb);
|
||||
}
|
||||
@@ -3495,7 +3504,7 @@ public class ConnectivityServiceTest {
|
||||
mCellNetworkAgent.connect(false);
|
||||
|
||||
long onAvailableDispatchingDuration = durationOf(() -> {
|
||||
awaitLatch(availableLatch, 10 * CONNECT_TIME_LIMIT_MS);
|
||||
await(availableLatch, 10 * CONNECT_TIME_LIMIT_MS);
|
||||
});
|
||||
Log.d(TAG, String.format("Dispatched %d of %d onAvailable callbacks in %dms",
|
||||
NUM_REQUESTS - availableLatch.getCount(), NUM_REQUESTS,
|
||||
@@ -3510,7 +3519,7 @@ public class ConnectivityServiceTest {
|
||||
mWiFiNetworkAgent.connect(false);
|
||||
|
||||
long onLostDispatchingDuration = durationOf(() -> {
|
||||
awaitLatch(losingLatch, 10 * SWITCH_TIME_LIMIT_MS);
|
||||
await(losingLatch, 10 * SWITCH_TIME_LIMIT_MS);
|
||||
});
|
||||
Log.d(TAG, String.format("Dispatched %d of %d onLosing callbacks in %dms",
|
||||
NUM_REQUESTS - losingLatch.getCount(), NUM_REQUESTS, onLostDispatchingDuration));
|
||||
@@ -3518,33 +3527,13 @@ public class ConnectivityServiceTest {
|
||||
NUM_REQUESTS, onLostDispatchingDuration, SWITCH_TIME_LIMIT_MS),
|
||||
onLostDispatchingDuration <= SWITCH_TIME_LIMIT_MS);
|
||||
|
||||
assertTimeLimit("Unregistering callbacks", UNREGISTER_TIME_LIMIT_MS, () -> {
|
||||
assertRunsInAtMost("Unregistering callbacks", UNREGISTER_TIME_LIMIT_MS, () -> {
|
||||
for (NetworkCallback cb : callbacks) {
|
||||
mCm.unregisterNetworkCallback(cb);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private long durationOf(Runnable fn) {
|
||||
long startTime = SystemClock.elapsedRealtime();
|
||||
fn.run();
|
||||
return SystemClock.elapsedRealtime() - startTime;
|
||||
}
|
||||
|
||||
private void assertTimeLimit(String descr, long timeLimit, Runnable fn) {
|
||||
long timeTaken = durationOf(fn);
|
||||
String msg = String.format("%s: took %dms, limit was %dms", descr, timeTaken, timeLimit);
|
||||
Log.d(TAG, msg);
|
||||
assertTrue(msg, timeTaken <= timeLimit);
|
||||
}
|
||||
|
||||
private boolean awaitLatch(CountDownLatch l, long timeoutMs) {
|
||||
try {
|
||||
return l.await(timeoutMs, TimeUnit.MILLISECONDS);
|
||||
} catch (InterruptedException e) {}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMobileDataAlwaysOn() throws Exception {
|
||||
final TestNetworkCallback cellNetworkCallback = new TestNetworkCallback();
|
||||
@@ -4105,7 +4094,7 @@ public class ConnectivityServiceTest {
|
||||
}
|
||||
|
||||
public void assertNoCallback() {
|
||||
HandlerUtilsKt.waitForIdleSerialExecutor(mExecutor, TIMEOUT_MS);
|
||||
waitForIdleSerialExecutor(mExecutor, TIMEOUT_MS);
|
||||
CallbackValue cv = mCallbacks.peek();
|
||||
assertNull("Unexpected callback: " + cv, cv);
|
||||
}
|
||||
@@ -4244,11 +4233,6 @@ public class ConnectivityServiceTest {
|
||||
callback3.expectStopped();
|
||||
}
|
||||
|
||||
@FunctionalInterface
|
||||
private interface ThrowingConsumer<T> {
|
||||
void accept(T t) throws Exception;
|
||||
}
|
||||
|
||||
// Helper method to prepare the executor and run test
|
||||
private void runTestWithSerialExecutors(ThrowingConsumer<Executor> functor) throws Exception {
|
||||
final ExecutorService executorSingleThread = Executors.newSingleThreadExecutor();
|
||||
@@ -4823,17 +4807,17 @@ public class ConnectivityServiceTest {
|
||||
assertNull(mCm.getLinkProperties(TYPE_NONE));
|
||||
assertFalse(mCm.isNetworkSupported(TYPE_NONE));
|
||||
|
||||
assertException(() -> { mCm.networkCapabilitiesForType(TYPE_NONE); },
|
||||
IllegalArgumentException.class);
|
||||
assertThrows(IllegalArgumentException.class,
|
||||
() -> { mCm.networkCapabilitiesForType(TYPE_NONE); });
|
||||
|
||||
Class<UnsupportedOperationException> unsupported = UnsupportedOperationException.class;
|
||||
assertException(() -> { mCm.startUsingNetworkFeature(TYPE_WIFI, ""); }, unsupported);
|
||||
assertException(() -> { mCm.stopUsingNetworkFeature(TYPE_WIFI, ""); }, unsupported);
|
||||
assertThrows(unsupported, () -> { mCm.startUsingNetworkFeature(TYPE_WIFI, ""); });
|
||||
assertThrows(unsupported, () -> { mCm.stopUsingNetworkFeature(TYPE_WIFI, ""); });
|
||||
// TODO: let test context have configuration application target sdk version
|
||||
// and test that pre-M requesting for TYPE_NONE sends back APN_REQUEST_FAILED
|
||||
assertException(() -> { mCm.startUsingNetworkFeature(TYPE_NONE, ""); }, unsupported);
|
||||
assertException(() -> { mCm.stopUsingNetworkFeature(TYPE_NONE, ""); }, unsupported);
|
||||
assertException(() -> { mCm.requestRouteToHostAddress(TYPE_NONE, null); }, unsupported);
|
||||
assertThrows(unsupported, () -> { mCm.startUsingNetworkFeature(TYPE_NONE, ""); });
|
||||
assertThrows(unsupported, () -> { mCm.stopUsingNetworkFeature(TYPE_NONE, ""); });
|
||||
assertThrows(unsupported, () -> { mCm.requestRouteToHostAddress(TYPE_NONE, null); });
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -5095,11 +5079,11 @@ public class ConnectivityServiceTest {
|
||||
ResolverParamsParcel resolvrParams = mResolverParamsParcelCaptor.getValue();
|
||||
assertEquals(2, resolvrParams.tlsServers.length);
|
||||
assertTrue(ArrayUtils.containsAll(resolvrParams.tlsServers,
|
||||
new String[]{"2001:db8::1", "192.0.2.1"}));
|
||||
new String[] { "2001:db8::1", "192.0.2.1" }));
|
||||
// Opportunistic mode.
|
||||
assertEquals(2, resolvrParams.tlsServers.length);
|
||||
assertTrue(ArrayUtils.containsAll(resolvrParams.tlsServers,
|
||||
new String[]{"2001:db8::1", "192.0.2.1"}));
|
||||
new String[] { "2001:db8::1", "192.0.2.1" }));
|
||||
reset(mMockDnsResolver);
|
||||
cellNetworkCallback.expectCallback(CallbackState.AVAILABLE, mCellNetworkAgent);
|
||||
cellNetworkCallback.expectCallback(CallbackState.NETWORK_CAPABILITIES,
|
||||
@@ -5117,7 +5101,7 @@ public class ConnectivityServiceTest {
|
||||
resolvrParams = mResolverParamsParcelCaptor.getValue();
|
||||
assertEquals(2, resolvrParams.servers.length);
|
||||
assertTrue(ArrayUtils.containsAll(resolvrParams.servers,
|
||||
new String[]{"2001:db8::1", "192.0.2.1"}));
|
||||
new String[] { "2001:db8::1", "192.0.2.1" }));
|
||||
reset(mMockDnsResolver);
|
||||
cellNetworkCallback.assertNoCallback();
|
||||
|
||||
@@ -5127,10 +5111,10 @@ public class ConnectivityServiceTest {
|
||||
resolvrParams = mResolverParamsParcelCaptor.getValue();
|
||||
assertEquals(2, resolvrParams.servers.length);
|
||||
assertTrue(ArrayUtils.containsAll(resolvrParams.servers,
|
||||
new String[]{"2001:db8::1", "192.0.2.1"}));
|
||||
new String[] { "2001:db8::1", "192.0.2.1" }));
|
||||
assertEquals(2, resolvrParams.tlsServers.length);
|
||||
assertTrue(ArrayUtils.containsAll(resolvrParams.tlsServers,
|
||||
new String[]{"2001:db8::1", "192.0.2.1"}));
|
||||
new String[] { "2001:db8::1", "192.0.2.1" }));
|
||||
reset(mMockDnsResolver);
|
||||
cellNetworkCallback.assertNoCallback();
|
||||
|
||||
@@ -5265,29 +5249,6 @@ public class ConnectivityServiceTest {
|
||||
assertTrue(lp.getDnsServers().containsAll(dnsServers));
|
||||
}
|
||||
|
||||
private static <T> void assertEmpty(T[] ts) {
|
||||
int length = ts.length;
|
||||
assertEquals("expected empty array, but length was " + length, 0, length);
|
||||
}
|
||||
|
||||
private static <T> void assertLength(int expected, T[] got) {
|
||||
int length = got.length;
|
||||
assertEquals(String.format("expected array of length %s, but length was %s for %s",
|
||||
expected, length, Arrays.toString(got)), expected, length);
|
||||
}
|
||||
|
||||
private static <T> void assertException(Runnable block, Class<T> expected) {
|
||||
try {
|
||||
block.run();
|
||||
fail("Expected exception of type " + expected);
|
||||
} catch (Exception got) {
|
||||
if (!got.getClass().equals(expected)) {
|
||||
fail("Expected exception of type " + expected + " but got " + got);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVpnNetworkActive() {
|
||||
final int uid = Process.myUid();
|
||||
@@ -6484,14 +6445,6 @@ public class ConnectivityServiceTest {
|
||||
return vpnNetworkAgent;
|
||||
}
|
||||
|
||||
private void assertContainsExactly(int[] actual, int... expected) {
|
||||
int[] sortedActual = Arrays.copyOf(actual, actual.length);
|
||||
int[] sortedExpected = Arrays.copyOf(expected, expected.length);
|
||||
Arrays.sort(sortedActual);
|
||||
Arrays.sort(sortedExpected);
|
||||
assertArrayEquals(sortedExpected, sortedActual);
|
||||
}
|
||||
|
||||
private static PackageInfo buildPackageInfo(boolean hasSystemPermission, int uid) {
|
||||
final PackageInfo packageInfo = new PackageInfo();
|
||||
packageInfo.requestedPermissions = new String[0];
|
||||
|
||||
@@ -19,8 +19,9 @@ package com.android.server.connectivity;
|
||||
import static android.net.metrics.INetdEventListener.EVENT_GETADDRINFO;
|
||||
import static android.net.metrics.INetdEventListener.EVENT_GETHOSTBYNAME;
|
||||
|
||||
import static com.android.testutils.MiscAssertsKt.assertStringContains;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
@@ -111,15 +112,15 @@ public class NetdEventListenerServiceTest {
|
||||
String[] events2 = remove(listNetdEvent(), baseline);
|
||||
int expectedLength2 = uids.length + 1; // +1 for the WakeupStats line
|
||||
assertEquals(expectedLength2, events2.length);
|
||||
assertContains(events2[0], "WakeupStats");
|
||||
assertContains(events2[0], "wlan0");
|
||||
assertContains(events2[0], "0x800");
|
||||
assertContains(events2[0], "0x86dd");
|
||||
assertStringContains(events2[0], "WakeupStats");
|
||||
assertStringContains(events2[0], "wlan0");
|
||||
assertStringContains(events2[0], "0x800");
|
||||
assertStringContains(events2[0], "0x86dd");
|
||||
for (int i = 0; i < uids.length; i++) {
|
||||
String got = events2[i+1];
|
||||
assertContains(got, "WakeupEvent");
|
||||
assertContains(got, "wlan0");
|
||||
assertContains(got, "uid: " + uids[i]);
|
||||
assertStringContains(got, "WakeupEvent");
|
||||
assertStringContains(got, "wlan0");
|
||||
assertStringContains(got, "uid: " + uids[i]);
|
||||
}
|
||||
|
||||
int uid = 20000;
|
||||
@@ -131,13 +132,13 @@ public class NetdEventListenerServiceTest {
|
||||
String[] events3 = remove(listNetdEvent(), baseline);
|
||||
int expectedLength3 = BUFFER_LENGTH + 1; // +1 for the WakeupStats line
|
||||
assertEquals(expectedLength3, events3.length);
|
||||
assertContains(events2[0], "WakeupStats");
|
||||
assertContains(events2[0], "wlan0");
|
||||
assertStringContains(events2[0], "WakeupStats");
|
||||
assertStringContains(events2[0], "wlan0");
|
||||
for (int i = 1; i < expectedLength3; i++) {
|
||||
String got = events3[i];
|
||||
assertContains(got, "WakeupEvent");
|
||||
assertContains(got, "wlan0");
|
||||
assertContains(got, "uid: " + uid);
|
||||
assertStringContains(got, "WakeupEvent");
|
||||
assertStringContains(got, "wlan0");
|
||||
assertStringContains(got, "uid: " + uid);
|
||||
}
|
||||
|
||||
uid = 45678;
|
||||
@@ -145,9 +146,9 @@ public class NetdEventListenerServiceTest {
|
||||
|
||||
String[] events4 = remove(listNetdEvent(), baseline);
|
||||
String lastEvent = events4[events4.length - 1];
|
||||
assertContains(lastEvent, "WakeupEvent");
|
||||
assertContains(lastEvent, "wlan0");
|
||||
assertContains(lastEvent, "uid: " + uid);
|
||||
assertStringContains(lastEvent, "WakeupEvent");
|
||||
assertStringContains(lastEvent, "wlan0");
|
||||
assertStringContains(lastEvent, "uid: " + uid);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -529,10 +530,6 @@ public class NetdEventListenerServiceTest {
|
||||
return buffer.toString().split("\\n");
|
||||
}
|
||||
|
||||
static void assertContains(String got, String want) {
|
||||
assertTrue(got + " did not contain \"" + want + "\"", got.contains(want));
|
||||
}
|
||||
|
||||
static <T> T[] remove(T[] array, T[] filtered) {
|
||||
List<T> c = Arrays.asList(filtered);
|
||||
int next = 0;
|
||||
|
||||
@@ -29,6 +29,7 @@ import static android.text.format.DateUtils.MINUTE_IN_MILLIS;
|
||||
|
||||
import static com.android.server.net.NetworkStatsCollection.multiplySafe;
|
||||
|
||||
import static org.junit.Assert.assertArrayEquals;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.fail;
|
||||
@@ -43,7 +44,6 @@ import android.os.Process;
|
||||
import android.os.UserHandle;
|
||||
import android.telephony.SubscriptionPlan;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.test.MoreAsserts;
|
||||
import android.text.format.DateUtils;
|
||||
import android.util.RecurrenceRule;
|
||||
|
||||
@@ -240,11 +240,11 @@ public class NetworkStatsCollectionTest {
|
||||
60 * MINUTE_IN_MILLIS, entry);
|
||||
|
||||
// Verify the set of relevant UIDs for each access level.
|
||||
MoreAsserts.assertEquals(new int[] { myUid },
|
||||
assertArrayEquals(new int[] { myUid },
|
||||
collection.getRelevantUids(NetworkStatsAccess.Level.DEFAULT));
|
||||
MoreAsserts.assertEquals(new int[] { Process.SYSTEM_UID, myUid, otherUidInSameUser },
|
||||
assertArrayEquals(new int[] { Process.SYSTEM_UID, myUid, otherUidInSameUser },
|
||||
collection.getRelevantUids(NetworkStatsAccess.Level.USER));
|
||||
MoreAsserts.assertEquals(
|
||||
assertArrayEquals(
|
||||
new int[] { Process.SYSTEM_UID, myUid, otherUidInSameUser, uidInDifferentUser },
|
||||
collection.getRelevantUids(NetworkStatsAccess.Level.DEVICE));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user