Add the default network to NetworkStats and NetworkStatsCollection.
This allows us to maintain NetworkStats entries that track whether the traffic was on the default network. At the moment, the stats collection code always passes in DEFAULT_NETWORK_NO. However, this value is a no-op, since it is not persisted to disk. Only the ident, the uid/set/tag, and the packet/byte/operation counters are persisted. A future change will add defaultNetwork to the ident and start persisting it. Bug: 35142602 Test: runtest frameworks-net Change-Id: Ifa291c62c0fa389b88e5561086a29dcd7cee2253
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.internal.net;
|
||||
|
||||
import static android.net.NetworkStats.DEFAULT_NETWORK_NO;
|
||||
import static android.net.NetworkStats.METERED_NO;
|
||||
import static android.net.NetworkStats.ROAMING_NO;
|
||||
import static android.net.NetworkStats.SET_ALL;
|
||||
@@ -240,7 +241,8 @@ public class NetworkStatsFactoryTest {
|
||||
|
||||
private static void assertStatsEntry(NetworkStats stats, String iface, int uid, int set,
|
||||
int tag, long rxBytes, long txBytes) {
|
||||
final int i = stats.findIndex(iface, uid, set, tag, METERED_NO, ROAMING_NO);
|
||||
final int i = stats.findIndex(iface, uid, set, tag, METERED_NO, ROAMING_NO,
|
||||
DEFAULT_NETWORK_NO);
|
||||
if (i < 0) {
|
||||
fail(String.format("no NetworkStats for (iface: %s, uid: %d, set: %d, tag: %d)",
|
||||
iface, uid, set, tag));
|
||||
@@ -252,7 +254,8 @@ public class NetworkStatsFactoryTest {
|
||||
|
||||
private static void assertStatsEntry(NetworkStats stats, String iface, int uid, int set,
|
||||
int tag, long rxBytes, long rxPackets, long txBytes, long txPackets) {
|
||||
final int i = stats.findIndex(iface, uid, set, tag, METERED_NO, ROAMING_NO);
|
||||
final int i = stats.findIndex(iface, uid, set, tag, METERED_NO, ROAMING_NO,
|
||||
DEFAULT_NETWORK_NO);
|
||||
if (i < 0) {
|
||||
fail(String.format("no NetworkStats for (iface: %s, uid: %d, set: %d, tag: %d)",
|
||||
iface, uid, set, tag));
|
||||
|
||||
@@ -18,6 +18,8 @@ package com.android.server.net;
|
||||
|
||||
import static android.net.ConnectivityManager.TYPE_MOBILE;
|
||||
import static android.net.ConnectivityManager.TYPE_WIFI;
|
||||
import static android.net.NetworkStats.DEFAULT_NETWORK_NO;
|
||||
import static android.net.NetworkStats.DEFAULT_NETWORK_YES;
|
||||
import static android.net.NetworkStats.METERED_NO;
|
||||
import static android.net.NetworkStats.ROAMING_NO;
|
||||
import static android.net.NetworkStats.SET_DEFAULT;
|
||||
@@ -344,7 +346,7 @@ public class NetworkStatsObserversTest {
|
||||
NetworkStats xtSnapshot = null;
|
||||
NetworkStats uidSnapshot = new NetworkStats(TEST_START, 2 /* initialSize */)
|
||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||
BASE_BYTES, 2L, BASE_BYTES, 2L, 0L);
|
||||
DEFAULT_NETWORK_YES, BASE_BYTES, 2L, BASE_BYTES, 2L, 0L);
|
||||
mStatsObservers.updateStats(
|
||||
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
||||
VPN_INFO, TEST_START);
|
||||
@@ -352,7 +354,8 @@ public class NetworkStatsObserversTest {
|
||||
// Delta
|
||||
uidSnapshot = new NetworkStats(TEST_START + 2 * MINUTE_IN_MILLIS, 2 /* initialSize */)
|
||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||
BASE_BYTES + THRESHOLD_BYTES, 2L, BASE_BYTES + THRESHOLD_BYTES, 2L, 0L);
|
||||
DEFAULT_NETWORK_NO, BASE_BYTES + THRESHOLD_BYTES, 2L,
|
||||
BASE_BYTES + THRESHOLD_BYTES, 2L, 0L);
|
||||
mStatsObservers.updateStats(
|
||||
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
||||
VPN_INFO, TEST_START);
|
||||
@@ -381,7 +384,7 @@ public class NetworkStatsObserversTest {
|
||||
NetworkStats xtSnapshot = null;
|
||||
NetworkStats uidSnapshot = new NetworkStats(TEST_START, 2 /* initialSize */)
|
||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||
BASE_BYTES, 2L, BASE_BYTES, 2L, 0L);
|
||||
DEFAULT_NETWORK_NO, BASE_BYTES, 2L, BASE_BYTES, 2L, 0L);
|
||||
mStatsObservers.updateStats(
|
||||
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
||||
VPN_INFO, TEST_START);
|
||||
@@ -389,7 +392,8 @@ public class NetworkStatsObserversTest {
|
||||
// Delta
|
||||
uidSnapshot = new NetworkStats(TEST_START + 2 * MINUTE_IN_MILLIS, 2 /* initialSize */)
|
||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||
BASE_BYTES + THRESHOLD_BYTES, 2L, BASE_BYTES + THRESHOLD_BYTES, 2L, 0L);
|
||||
DEFAULT_NETWORK_NO, BASE_BYTES + THRESHOLD_BYTES, 2L,
|
||||
BASE_BYTES + THRESHOLD_BYTES, 2L, 0L);
|
||||
mStatsObservers.updateStats(
|
||||
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
||||
VPN_INFO, TEST_START);
|
||||
@@ -417,7 +421,7 @@ public class NetworkStatsObserversTest {
|
||||
NetworkStats xtSnapshot = null;
|
||||
NetworkStats uidSnapshot = new NetworkStats(TEST_START, 2 /* initialSize */)
|
||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||
BASE_BYTES, 2L, BASE_BYTES, 2L, 0L);
|
||||
DEFAULT_NETWORK_YES, BASE_BYTES, 2L, BASE_BYTES, 2L, 0L);
|
||||
mStatsObservers.updateStats(
|
||||
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
||||
VPN_INFO, TEST_START);
|
||||
@@ -425,7 +429,8 @@ public class NetworkStatsObserversTest {
|
||||
// Delta
|
||||
uidSnapshot = new NetworkStats(TEST_START + 2 * MINUTE_IN_MILLIS, 2 /* initialSize */)
|
||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||
BASE_BYTES + THRESHOLD_BYTES, 2L, BASE_BYTES + THRESHOLD_BYTES, 2L, 0L);
|
||||
DEFAULT_NETWORK_YES, BASE_BYTES + THRESHOLD_BYTES, 2L,
|
||||
BASE_BYTES + THRESHOLD_BYTES, 2L, 0L);
|
||||
mStatsObservers.updateStats(
|
||||
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
||||
VPN_INFO, TEST_START);
|
||||
@@ -454,7 +459,7 @@ public class NetworkStatsObserversTest {
|
||||
NetworkStats xtSnapshot = null;
|
||||
NetworkStats uidSnapshot = new NetworkStats(TEST_START, 2 /* initialSize */)
|
||||
.addValues(TEST_IFACE, UID_ANOTHER_USER, SET_DEFAULT, TAG_NONE, METERED_NO,
|
||||
ROAMING_NO, BASE_BYTES, 2L, BASE_BYTES, 2L, 0L);
|
||||
ROAMING_NO, DEFAULT_NETWORK_YES, BASE_BYTES, 2L, BASE_BYTES, 2L, 0L);
|
||||
mStatsObservers.updateStats(
|
||||
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
||||
VPN_INFO, TEST_START);
|
||||
@@ -462,8 +467,8 @@ public class NetworkStatsObserversTest {
|
||||
// Delta
|
||||
uidSnapshot = new NetworkStats(TEST_START + 2 * MINUTE_IN_MILLIS, 2 /* initialSize */)
|
||||
.addValues(TEST_IFACE, UID_ANOTHER_USER, SET_DEFAULT, TAG_NONE, METERED_NO,
|
||||
ROAMING_NO, BASE_BYTES + THRESHOLD_BYTES, 2L, BASE_BYTES + THRESHOLD_BYTES,
|
||||
2L, 0L);
|
||||
ROAMING_NO, DEFAULT_NETWORK_NO, BASE_BYTES + THRESHOLD_BYTES, 2L,
|
||||
BASE_BYTES + THRESHOLD_BYTES, 2L, 0L);
|
||||
mStatsObservers.updateStats(
|
||||
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
||||
VPN_INFO, TEST_START);
|
||||
|
||||
@@ -21,6 +21,9 @@ import static android.content.Intent.EXTRA_UID;
|
||||
import static android.net.ConnectivityManager.TYPE_MOBILE;
|
||||
import static android.net.ConnectivityManager.TYPE_WIFI;
|
||||
import static android.net.ConnectivityManager.TYPE_WIMAX;
|
||||
import static android.net.NetworkStats.DEFAULT_NETWORK_ALL;
|
||||
import static android.net.NetworkStats.DEFAULT_NETWORK_NO;
|
||||
import static android.net.NetworkStats.DEFAULT_NETWORK_YES;
|
||||
import static android.net.NetworkStats.IFACE_ALL;
|
||||
import static android.net.NetworkStats.METERED_ALL;
|
||||
import static android.net.NetworkStats.METERED_NO;
|
||||
@@ -313,10 +316,10 @@ public class NetworkStatsServiceTest {
|
||||
// verify service recorded history
|
||||
assertNetworkTotal(sTemplateWifi, 1024L, 8L, 2048L, 16L, 0);
|
||||
assertUidTotal(sTemplateWifi, UID_RED, 1024L, 8L, 512L, 4L, 10);
|
||||
assertUidTotal(sTemplateWifi, UID_RED, SET_DEFAULT, METERED_NO, ROAMING_NO, 512L, 4L, 256L,
|
||||
2L, 4);
|
||||
assertUidTotal(sTemplateWifi, UID_RED, SET_FOREGROUND, METERED_NO, ROAMING_NO, 512L, 4L,
|
||||
256L, 2L, 6);
|
||||
assertUidTotal(sTemplateWifi, UID_RED, SET_DEFAULT, METERED_NO, ROAMING_NO,
|
||||
DEFAULT_NETWORK_YES, 512L, 4L, 256L, 2L, 4);
|
||||
assertUidTotal(sTemplateWifi, UID_RED, SET_FOREGROUND, METERED_NO, ROAMING_NO,
|
||||
DEFAULT_NETWORK_YES, 512L, 4L, 256L, 2L, 6);
|
||||
assertUidTotal(sTemplateWifi, UID_BLUE, 128L, 1L, 128L, 1L, 0);
|
||||
|
||||
|
||||
@@ -338,10 +341,10 @@ public class NetworkStatsServiceTest {
|
||||
// after systemReady(), we should have historical stats loaded again
|
||||
assertNetworkTotal(sTemplateWifi, 1024L, 8L, 2048L, 16L, 0);
|
||||
assertUidTotal(sTemplateWifi, UID_RED, 1024L, 8L, 512L, 4L, 10);
|
||||
assertUidTotal(sTemplateWifi, UID_RED, SET_DEFAULT, METERED_NO, ROAMING_NO, 512L, 4L, 256L,
|
||||
2L, 4);
|
||||
assertUidTotal(sTemplateWifi, UID_RED, SET_FOREGROUND, METERED_NO, ROAMING_NO, 512L, 4L,
|
||||
256L, 2L, 6);
|
||||
assertUidTotal(sTemplateWifi, UID_RED, SET_DEFAULT, METERED_NO, ROAMING_NO,
|
||||
DEFAULT_NETWORK_YES, 512L, 4L, 256L, 2L, 4);
|
||||
assertUidTotal(sTemplateWifi, UID_RED, SET_FOREGROUND, METERED_NO, ROAMING_NO,
|
||||
DEFAULT_NETWORK_YES, 512L, 4L, 256L, 2L, 6);
|
||||
assertUidTotal(sTemplateWifi, UID_BLUE, 128L, 1L, 128L, 1L, 0);
|
||||
|
||||
}
|
||||
@@ -648,12 +651,12 @@ public class NetworkStatsServiceTest {
|
||||
NetworkStats stats = mSession.getSummaryForAllUid(
|
||||
sTemplateWifi, Long.MIN_VALUE, Long.MAX_VALUE, true);
|
||||
assertEquals(3, stats.size());
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 50L,
|
||||
5L, 50L, 5L, 1);
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO, 10L,
|
||||
1L, 10L, 1L, 1);
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||
DEFAULT_NETWORK_YES, 50L, 5L, 50L, 5L, 1);
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO,
|
||||
DEFAULT_NETWORK_YES, 10L, 1L, 10L, 1L, 1);
|
||||
assertValues(stats, IFACE_ALL, UID_BLUE, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||
2048L, 16L, 1024L, 8L, 0);
|
||||
DEFAULT_NETWORK_YES, 2048L, 16L, 1024L, 8L, 0);
|
||||
|
||||
// now verify that recent history only contains one uid
|
||||
final long currentTime = currentTimeMillis();
|
||||
@@ -661,7 +664,7 @@ public class NetworkStatsServiceTest {
|
||||
sTemplateWifi, currentTime - HOUR_IN_MILLIS, currentTime, true);
|
||||
assertEquals(1, stats.size());
|
||||
assertValues(stats, IFACE_ALL, UID_BLUE, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||
1024L, 8L, 512L, 4L, 0);
|
||||
DEFAULT_NETWORK_YES, 1024L, 8L, 512L, 4L, 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -715,14 +718,14 @@ public class NetworkStatsServiceTest {
|
||||
final NetworkStats stats = mSession.getSummaryForAllUid(
|
||||
sTemplateWifi, Long.MIN_VALUE, Long.MAX_VALUE, true);
|
||||
assertEquals(4, stats.size());
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 128L,
|
||||
2L, 128L, 2L, 1);
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO, 64L,
|
||||
1L, 64L, 1L, 1);
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||
DEFAULT_NETWORK_YES, 128L, 2L, 128L, 2L, 1);
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO,
|
||||
DEFAULT_NETWORK_YES, 64L, 1L, 64L, 1L, 1);
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||
32L, 2L, 32L, 2L, 1);
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_FOREGROUND, 0xFAAD, METERED_NO, ROAMING_NO, 1L,
|
||||
1L, 1L, 1L, 1);
|
||||
DEFAULT_NETWORK_YES, 32L, 2L, 32L, 2L, 1);
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_FOREGROUND, 0xFAAD, METERED_NO, ROAMING_NO,
|
||||
DEFAULT_NETWORK_YES, 1L, 1L, 1L, 1L, 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -743,14 +746,14 @@ public class NetworkStatsServiceTest {
|
||||
expectCurrentTime();
|
||||
expectDefaultSettings();
|
||||
expectNetworkStatsSummary(buildEmptyStats());
|
||||
// Note that all traffic from NetworkManagementService is tagged as METERED_NO and
|
||||
// ROAMING_NO, because metered and roaming isn't tracked at that layer. We layer it
|
||||
// on top by inspecting the iface properties.
|
||||
// Note that all traffic from NetworkManagementService is tagged as METERED_NO, ROAMING_NO
|
||||
// and DEFAULT_NETWORK_YES, because these three properties aren't tracked at that layer.
|
||||
// We layer them on top by inspecting the iface properties.
|
||||
expectNetworkStatsUidDetail(new NetworkStats(getElapsedRealtime(), 1)
|
||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 128L,
|
||||
2L, 128L, 2L, 0L)
|
||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO, 64L,
|
||||
1L, 64L, 1L, 0L));
|
||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||
DEFAULT_NETWORK_YES, 128L, 2L, 128L, 2L, 0L)
|
||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO,
|
||||
DEFAULT_NETWORK_YES, 64L, 1L, 64L, 1L, 0L));
|
||||
mService.incrementOperationCount(UID_RED, 0xF00D, 1);
|
||||
|
||||
forcePollAndWaitForIdle();
|
||||
@@ -762,9 +765,9 @@ public class NetworkStatsServiceTest {
|
||||
sTemplateWifi, Long.MIN_VALUE, Long.MAX_VALUE, true);
|
||||
assertEquals(2, stats.size());
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO,
|
||||
128L, 2L, 128L, 2L, 1);
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, 0xF00D, METERED_YES, ROAMING_NO, 64L,
|
||||
1L, 64L, 1L, 1);
|
||||
DEFAULT_NETWORK_YES, 128L, 2L, 128L, 2L, 1);
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, 0xF00D, METERED_YES, ROAMING_NO,
|
||||
DEFAULT_NETWORK_YES, 64L, 1L, 64L, 1L, 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -790,9 +793,9 @@ public class NetworkStatsServiceTest {
|
||||
// on top by inspecting the iface properties.
|
||||
expectNetworkStatsUidDetail(new NetworkStats(getElapsedRealtime(), 1)
|
||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_ALL, ROAMING_NO,
|
||||
128L, 2L, 128L, 2L, 0L)
|
||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, 0xF00D, METERED_ALL, ROAMING_NO, 64L,
|
||||
1L, 64L, 1L, 0L));
|
||||
DEFAULT_NETWORK_YES, 128L, 2L, 128L, 2L, 0L)
|
||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, 0xF00D, METERED_ALL, ROAMING_NO,
|
||||
DEFAULT_NETWORK_YES, 64L, 1L, 64L, 1L, 0L));
|
||||
forcePollAndWaitForIdle();
|
||||
|
||||
// verify service recorded history
|
||||
@@ -803,9 +806,9 @@ public class NetworkStatsServiceTest {
|
||||
sTemplateImsi1, Long.MIN_VALUE, Long.MAX_VALUE, true);
|
||||
assertEquals(2, stats.size());
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, TAG_NONE, METERED_ALL, ROAMING_YES,
|
||||
128L, 2L, 128L, 2L, 0);
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, 0xF00D, METERED_ALL, ROAMING_YES, 64L,
|
||||
1L, 64L, 1L, 0);
|
||||
DEFAULT_NETWORK_YES, 128L, 2L, 128L, 2L, 0);
|
||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, 0xF00D, METERED_ALL, ROAMING_YES,
|
||||
DEFAULT_NETWORK_YES, 64L, 1L, 64L, 1L, 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -984,18 +987,18 @@ public class NetworkStatsServiceTest {
|
||||
// verify summary API
|
||||
final NetworkStats stats = mSession.getSummaryForNetwork(template, start, end);
|
||||
assertValues(stats, IFACE_ALL, UID_ALL, SET_ALL, TAG_NONE, METERED_ALL, ROAMING_ALL,
|
||||
rxBytes, rxPackets, txBytes, txPackets, operations);
|
||||
DEFAULT_NETWORK_ALL, rxBytes, rxPackets, txBytes, txPackets, operations);
|
||||
}
|
||||
|
||||
private void assertUidTotal(NetworkTemplate template, int uid, long rxBytes, long rxPackets,
|
||||
long txBytes, long txPackets, int operations) throws Exception {
|
||||
assertUidTotal(template, uid, SET_ALL, METERED_ALL, ROAMING_ALL, rxBytes, rxPackets,
|
||||
txBytes, txPackets, operations);
|
||||
assertUidTotal(template, uid, SET_ALL, METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL,
|
||||
rxBytes, rxPackets, txBytes, txPackets, operations);
|
||||
}
|
||||
|
||||
private void assertUidTotal(NetworkTemplate template, int uid, int set, int metered,
|
||||
int roaming, long rxBytes, long rxPackets, long txBytes, long txPackets, int operations)
|
||||
throws Exception {
|
||||
int roaming, int defaultNetwork, long rxBytes, long rxPackets, long txBytes,
|
||||
long txPackets, int operations) throws Exception {
|
||||
// verify history API
|
||||
final NetworkStatsHistory history = mSession.getHistoryForUid(
|
||||
template, uid, set, TAG_NONE, FIELD_ALL);
|
||||
@@ -1005,8 +1008,8 @@ public class NetworkStatsServiceTest {
|
||||
// verify summary API
|
||||
final NetworkStats stats = mSession.getSummaryForAllUid(
|
||||
template, Long.MIN_VALUE, Long.MAX_VALUE, false);
|
||||
assertValues(stats, IFACE_ALL, uid, set, TAG_NONE, metered, roaming, rxBytes, rxPackets,
|
||||
txBytes, txPackets, operations);
|
||||
assertValues(stats, IFACE_ALL, uid, set, TAG_NONE, metered, roaming, defaultNetwork,
|
||||
rxBytes, rxPackets, txBytes, txPackets, operations);
|
||||
}
|
||||
|
||||
private void expectSystemReady() throws Exception {
|
||||
@@ -1104,8 +1107,8 @@ public class NetworkStatsServiceTest {
|
||||
}
|
||||
|
||||
private static void assertValues(NetworkStats stats, String iface, int uid, int set,
|
||||
int tag, int metered, int roaming, long rxBytes, long rxPackets, long txBytes,
|
||||
long txPackets, int operations) {
|
||||
int tag, int metered, int roaming, int defaultNetwork, long rxBytes, long rxPackets,
|
||||
long txBytes, long txPackets, int operations) {
|
||||
final NetworkStats.Entry entry = new NetworkStats.Entry();
|
||||
final int[] sets;
|
||||
if (set == SET_ALL) {
|
||||
@@ -1128,12 +1131,22 @@ public class NetworkStatsServiceTest {
|
||||
meterings = new int[] { metered };
|
||||
}
|
||||
|
||||
final int[] defaultNetworks;
|
||||
if (defaultNetwork == DEFAULT_NETWORK_ALL) {
|
||||
defaultNetworks = new int[] { DEFAULT_NETWORK_ALL, DEFAULT_NETWORK_YES,
|
||||
DEFAULT_NETWORK_NO };
|
||||
} else {
|
||||
defaultNetworks = new int[] { defaultNetwork };
|
||||
}
|
||||
|
||||
for (int s : sets) {
|
||||
for (int r : roamings) {
|
||||
for (int m : meterings) {
|
||||
final int i = stats.findIndex(iface, uid, s, tag, m, r);
|
||||
if (i != -1) {
|
||||
entry.add(stats.getValues(i, null));
|
||||
for (int d : defaultNetworks) {
|
||||
final int i = stats.findIndex(iface, uid, s, tag, m, r, d);
|
||||
if (i != -1) {
|
||||
entry.add(stats.getValues(i, null));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user