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,9 @@
|
|||||||
|
|
||||||
package android.net;
|
package android.net;
|
||||||
|
|
||||||
|
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.METERED_ALL;
|
import static android.net.NetworkStats.METERED_ALL;
|
||||||
import static android.net.NetworkStats.METERED_NO;
|
import static android.net.NetworkStats.METERED_NO;
|
||||||
import static android.net.NetworkStats.METERED_YES;
|
import static android.net.NetworkStats.METERED_YES;
|
||||||
@@ -56,71 +59,75 @@ public class NetworkStatsTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testFindIndex() throws Exception {
|
public void testFindIndex() throws Exception {
|
||||||
final NetworkStats stats = new NetworkStats(TEST_START, 5)
|
final NetworkStats stats = new NetworkStats(TEST_START, 5)
|
||||||
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 1024L,
|
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
8L, 0L, 0L, 10)
|
DEFAULT_NETWORK_YES, 1024L, 8L, 0L, 0L, 10)
|
||||||
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 0L, 0L,
|
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
1024L, 8L, 11)
|
DEFAULT_NETWORK_NO, 0L, 0L, 1024L, 8L, 11)
|
||||||
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO, 0L, 0L,
|
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO,
|
||||||
1024L, 8L, 11)
|
DEFAULT_NETWORK_YES, 0L, 0L, 1024L, 8L, 11)
|
||||||
.addValues(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 1024L,
|
.addValues(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
8L, 1024L, 8L, 12)
|
DEFAULT_NETWORK_NO, 1024L, 8L, 1024L, 8L, 12)
|
||||||
.addValues(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_YES, 1024L,
|
.addValues(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_YES,
|
||||||
8L, 1024L, 8L, 12);
|
DEFAULT_NETWORK_YES, 1024L, 8L, 1024L, 8L, 12);
|
||||||
|
|
||||||
assertEquals(4, stats.findIndex(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, METERED_YES,
|
assertEquals(4, stats.findIndex(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, METERED_YES,
|
||||||
ROAMING_YES));
|
ROAMING_YES, DEFAULT_NETWORK_YES));
|
||||||
assertEquals(3, stats.findIndex(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, METERED_NO,
|
assertEquals(3, stats.findIndex(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO));
|
ROAMING_NO, DEFAULT_NETWORK_NO));
|
||||||
assertEquals(2, stats.findIndex(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_YES,
|
assertEquals(2, stats.findIndex(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_YES,
|
||||||
ROAMING_NO));
|
ROAMING_NO, DEFAULT_NETWORK_YES));
|
||||||
assertEquals(1, stats.findIndex(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO,
|
assertEquals(1, stats.findIndex(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO));
|
ROAMING_NO, DEFAULT_NETWORK_NO));
|
||||||
assertEquals(0, stats.findIndex(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO,
|
assertEquals(0, stats.findIndex(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO));
|
ROAMING_NO, DEFAULT_NETWORK_YES));
|
||||||
assertEquals(-1, stats.findIndex(TEST_IFACE, 6, SET_DEFAULT, TAG_NONE, METERED_NO,
|
assertEquals(-1, stats.findIndex(TEST_IFACE, 6, SET_DEFAULT, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO));
|
ROAMING_NO, DEFAULT_NETWORK_NO));
|
||||||
|
assertEquals(-1, stats.findIndex(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO,
|
||||||
|
ROAMING_NO, DEFAULT_NETWORK_NO));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFindIndexHinted() {
|
public void testFindIndexHinted() {
|
||||||
final NetworkStats stats = new NetworkStats(TEST_START, 3)
|
final NetworkStats stats = new NetworkStats(TEST_START, 3)
|
||||||
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 1024L,
|
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
8L, 0L, 0L, 10)
|
DEFAULT_NETWORK_YES, 1024L, 8L, 0L, 0L, 10)
|
||||||
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 0L, 0L,
|
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
1024L, 8L, 11)
|
DEFAULT_NETWORK_NO, 0L, 0L, 1024L, 8L, 11)
|
||||||
.addValues(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 1024L,
|
.addValues(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
8L, 1024L, 8L, 12)
|
DEFAULT_NETWORK_YES, 1024L, 8L, 1024L, 8L, 12)
|
||||||
.addValues(TEST_IFACE2, 100, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
.addValues(TEST_IFACE2, 100, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
1024L, 8L, 0L, 0L, 10)
|
DEFAULT_NETWORK_NO, 1024L, 8L, 0L, 0L, 10)
|
||||||
.addValues(TEST_IFACE2, 101, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO, 0L, 0L,
|
.addValues(TEST_IFACE2, 101, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO,
|
||||||
1024L, 8L, 11)
|
DEFAULT_NETWORK_YES, 0L, 0L, 1024L, 8L, 11)
|
||||||
.addValues(TEST_IFACE2, 101, SET_DEFAULT, 0xF00D, METERED_YES, ROAMING_NO, 0L, 0L,
|
.addValues(TEST_IFACE2, 101, SET_DEFAULT, 0xF00D, METERED_YES, ROAMING_NO,
|
||||||
1024L, 8L, 11)
|
DEFAULT_NETWORK_NO, 0L, 0L, 1024L, 8L, 11)
|
||||||
.addValues(TEST_IFACE2, 102, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 1024L,
|
.addValues(TEST_IFACE2, 102, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
8L, 1024L, 8L, 12)
|
DEFAULT_NETWORK_YES, 1024L, 8L, 1024L, 8L, 12)
|
||||||
.addValues(TEST_IFACE2, 102, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_YES, 1024L,
|
.addValues(TEST_IFACE2, 102, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_YES,
|
||||||
8L, 1024L, 8L, 12);
|
DEFAULT_NETWORK_NO, 1024L, 8L, 1024L, 8L, 12);
|
||||||
|
|
||||||
// verify that we correctly find across regardless of hinting
|
// verify that we correctly find across regardless of hinting
|
||||||
for (int hint = 0; hint < stats.size(); hint++) {
|
for (int hint = 0; hint < stats.size(); hint++) {
|
||||||
assertEquals(0, stats.findIndexHinted(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE,
|
assertEquals(0, stats.findIndexHinted(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE,
|
||||||
METERED_NO, ROAMING_NO, hint));
|
METERED_NO, ROAMING_NO, DEFAULT_NETWORK_YES, hint));
|
||||||
assertEquals(1, stats.findIndexHinted(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE,
|
assertEquals(1, stats.findIndexHinted(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE,
|
||||||
METERED_NO, ROAMING_NO, hint));
|
METERED_NO, ROAMING_NO, DEFAULT_NETWORK_NO, hint));
|
||||||
assertEquals(2, stats.findIndexHinted(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE,
|
assertEquals(2, stats.findIndexHinted(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE,
|
||||||
METERED_NO, ROAMING_NO, hint));
|
METERED_NO, ROAMING_NO, DEFAULT_NETWORK_YES, hint));
|
||||||
assertEquals(3, stats.findIndexHinted(TEST_IFACE2, 100, SET_FOREGROUND, TAG_NONE,
|
assertEquals(3, stats.findIndexHinted(TEST_IFACE2, 100, SET_FOREGROUND, TAG_NONE,
|
||||||
METERED_NO, ROAMING_NO, hint));
|
METERED_NO, ROAMING_NO, DEFAULT_NETWORK_NO, hint));
|
||||||
assertEquals(4, stats.findIndexHinted(TEST_IFACE2, 101, SET_DEFAULT, 0xF00D,
|
assertEquals(4, stats.findIndexHinted(TEST_IFACE2, 101, SET_DEFAULT, 0xF00D,
|
||||||
METERED_NO, ROAMING_NO, hint));
|
METERED_NO, ROAMING_NO, DEFAULT_NETWORK_YES, hint));
|
||||||
assertEquals(5, stats.findIndexHinted(TEST_IFACE2, 101, SET_DEFAULT, 0xF00D,
|
assertEquals(5, stats.findIndexHinted(TEST_IFACE2, 101, SET_DEFAULT, 0xF00D,
|
||||||
METERED_YES, ROAMING_NO, hint));
|
METERED_YES, ROAMING_NO, DEFAULT_NETWORK_NO, hint));
|
||||||
assertEquals(6, stats.findIndexHinted(TEST_IFACE2, 102, SET_DEFAULT, TAG_NONE,
|
assertEquals(6, stats.findIndexHinted(TEST_IFACE2, 102, SET_DEFAULT, TAG_NONE,
|
||||||
METERED_NO, ROAMING_NO, hint));
|
METERED_NO, ROAMING_NO, DEFAULT_NETWORK_YES, hint));
|
||||||
assertEquals(7, stats.findIndexHinted(TEST_IFACE2, 102, SET_DEFAULT, TAG_NONE,
|
assertEquals(7, stats.findIndexHinted(TEST_IFACE2, 102, SET_DEFAULT, TAG_NONE,
|
||||||
METERED_YES, ROAMING_YES, hint));
|
METERED_YES, ROAMING_YES, DEFAULT_NETWORK_NO, hint));
|
||||||
assertEquals(-1, stats.findIndexHinted(TEST_IFACE, 6, SET_DEFAULT, TAG_NONE,
|
assertEquals(-1, stats.findIndexHinted(TEST_IFACE, 6, SET_DEFAULT, TAG_NONE,
|
||||||
METERED_NO, ROAMING_NO, hint));
|
METERED_NO, ROAMING_NO, DEFAULT_NETWORK_YES, hint));
|
||||||
|
assertEquals(-1, stats.findIndexHinted(TEST_IFACE2, 102, SET_DEFAULT, TAG_NONE,
|
||||||
|
METERED_YES, ROAMING_YES, DEFAULT_NETWORK_YES, hint));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,50 +138,50 @@ public class NetworkStatsTest {
|
|||||||
assertEquals(0, stats.size());
|
assertEquals(0, stats.size());
|
||||||
assertEquals(4, stats.internalSize());
|
assertEquals(4, stats.internalSize());
|
||||||
|
|
||||||
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 1L, 1L,
|
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
2L, 2L, 3);
|
DEFAULT_NETWORK_YES, 1L, 1L, 2L, 2L, 3);
|
||||||
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 2L, 2L,
|
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
2L, 2L, 4);
|
DEFAULT_NETWORK_NO, 2L, 2L, 2L, 2L, 4);
|
||||||
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_YES, 3L,
|
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_YES,
|
||||||
3L, 2L, 2L, 5);
|
DEFAULT_NETWORK_YES, 3L, 3L, 2L, 2L, 5);
|
||||||
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_YES, 3L,
|
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_YES,
|
||||||
3L, 2L, 2L, 5);
|
DEFAULT_NETWORK_NO, 3L, 3L, 2L, 2L, 5);
|
||||||
|
|
||||||
assertEquals(4, stats.size());
|
assertEquals(4, stats.size());
|
||||||
assertEquals(4, stats.internalSize());
|
assertEquals(4, stats.internalSize());
|
||||||
|
|
||||||
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 4L,
|
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
40L, 4L, 40L, 7);
|
DEFAULT_NETWORK_NO, 4L, 40L, 4L, 40L, 7);
|
||||||
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 5L,
|
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
50L, 4L, 40L, 8);
|
DEFAULT_NETWORK_YES, 5L, 50L, 4L, 40L, 8);
|
||||||
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 6L,
|
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
60L, 5L, 50L, 10);
|
DEFAULT_NETWORK_NO, 6L, 60L, 5L, 50L, 10);
|
||||||
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_YES, 7L,
|
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_YES,
|
||||||
70L, 5L, 50L, 11);
|
DEFAULT_NETWORK_YES, 7L, 70L, 5L, 50L, 11);
|
||||||
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_YES, 7L,
|
stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_YES,
|
||||||
70L, 5L, 50L, 11);
|
DEFAULT_NETWORK_NO, 7L, 70L, 5L, 50L, 11);
|
||||||
|
|
||||||
assertEquals(9, stats.size());
|
assertEquals(9, stats.size());
|
||||||
assertTrue(stats.internalSize() >= 9);
|
assertTrue(stats.internalSize() >= 9);
|
||||||
|
|
||||||
assertValues(stats, 0, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(stats, 0, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
1L, 1L, 2L, 2L, 3);
|
DEFAULT_NETWORK_YES, 1L, 1L, 2L, 2L, 3);
|
||||||
assertValues(stats, 1, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(stats, 1, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
2L, 2L, 2L, 2L, 4);
|
DEFAULT_NETWORK_NO, 2L, 2L, 2L, 2L, 4);
|
||||||
assertValues(stats, 2, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_YES,
|
assertValues(stats, 2, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_YES,
|
||||||
3L, 3L, 2L, 2L, 5);
|
DEFAULT_NETWORK_YES, 3L, 3L, 2L, 2L, 5);
|
||||||
assertValues(stats, 3, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_YES,
|
assertValues(stats, 3, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_YES,
|
||||||
ROAMING_YES, 3L, 3L, 2L, 2L, 5);
|
ROAMING_YES, DEFAULT_NETWORK_NO, 3L, 3L, 2L, 2L, 5);
|
||||||
assertValues(stats, 4, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(stats, 4, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
4L, 40L, 4L, 40L, 7);
|
DEFAULT_NETWORK_NO, 4L, 40L, 4L, 40L, 7);
|
||||||
assertValues(stats, 5, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(stats, 5, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
5L, 50L, 4L, 40L, 8);
|
DEFAULT_NETWORK_YES, 5L, 50L, 4L, 40L, 8);
|
||||||
assertValues(stats, 6, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(stats, 6, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
6L, 60L, 5L, 50L, 10);
|
DEFAULT_NETWORK_NO, 6L, 60L, 5L, 50L, 10);
|
||||||
assertValues(stats, 7, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_YES,
|
assertValues(stats, 7, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_YES,
|
||||||
7L, 70L, 5L, 50L, 11);
|
DEFAULT_NETWORK_YES, 7L, 70L, 5L, 50L, 11);
|
||||||
assertValues(stats, 8, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_YES,
|
assertValues(stats, 8, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, METERED_YES,
|
||||||
ROAMING_YES, 7L, 70L, 5L, 50L, 11);
|
ROAMING_YES, DEFAULT_NETWORK_NO, 7L, 70L, 5L, 50L, 11);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -187,17 +194,17 @@ public class NetworkStatsTest {
|
|||||||
-128L, -1L, -1);
|
-128L, -1L, -1);
|
||||||
|
|
||||||
assertValues(stats, 0, TEST_IFACE, 1001, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(stats, 0, TEST_IFACE, 1001, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
384L, 3L, 128L, 1L, 9);
|
DEFAULT_NETWORK_NO, 384L, 3L, 128L, 1L, 9);
|
||||||
assertValues(stats, 1, TEST_IFACE, 1001, SET_DEFAULT, 0xff, METERED_NO, ROAMING_NO, 128L,
|
assertValues(stats, 1, TEST_IFACE, 1001, SET_DEFAULT, 0xff, METERED_NO, ROAMING_NO,
|
||||||
1L, 128L, 1L, 2);
|
DEFAULT_NETWORK_NO, 128L, 1L, 128L, 1L, 2);
|
||||||
|
|
||||||
// now try combining that should create row
|
// now try combining that should create row
|
||||||
stats.combineValues(TEST_IFACE, 5005, SET_DEFAULT, TAG_NONE, 128L, 1L, 128L, 1L, 3);
|
stats.combineValues(TEST_IFACE, 5005, SET_DEFAULT, TAG_NONE, 128L, 1L, 128L, 1L, 3);
|
||||||
assertValues(stats, 2, TEST_IFACE, 5005, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(stats, 2, TEST_IFACE, 5005, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
128L, 1L, 128L, 1L, 3);
|
DEFAULT_NETWORK_NO, 128L, 1L, 128L, 1L, 3);
|
||||||
stats.combineValues(TEST_IFACE, 5005, SET_DEFAULT, TAG_NONE, 128L, 1L, 128L, 1L, 3);
|
stats.combineValues(TEST_IFACE, 5005, SET_DEFAULT, TAG_NONE, 128L, 1L, 128L, 1L, 3);
|
||||||
assertValues(stats, 2, TEST_IFACE, 5005, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(stats, 2, TEST_IFACE, 5005, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
256L, 2L, 256L, 2L, 6);
|
DEFAULT_NETWORK_NO, 256L, 2L, 256L, 2L, 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -213,10 +220,10 @@ public class NetworkStatsTest {
|
|||||||
final NetworkStats result = after.subtract(before);
|
final NetworkStats result = after.subtract(before);
|
||||||
|
|
||||||
// identical data should result in zero delta
|
// identical data should result in zero delta
|
||||||
assertValues(result, 0, TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 0L,
|
assertValues(result, 0, TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L, 0);
|
DEFAULT_NETWORK_NO, 0L, 0L, 0L, 0L, 0);
|
||||||
assertValues(result, 1, TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 0L,
|
assertValues(result, 1, TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L, 0);
|
DEFAULT_NETWORK_NO, 0L, 0L, 0L, 0L, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -232,10 +239,10 @@ public class NetworkStatsTest {
|
|||||||
final NetworkStats result = after.subtract(before);
|
final NetworkStats result = after.subtract(before);
|
||||||
|
|
||||||
// expect delta between measurements
|
// expect delta between measurements
|
||||||
assertValues(result, 0, TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 1L,
|
assertValues(result, 0, TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
1L, 2L, 1L, 4);
|
DEFAULT_NETWORK_NO, 1L, 1L, 2L, 1L, 4);
|
||||||
assertValues(result, 1, TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 3L,
|
assertValues(result, 1, TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
1L, 4L, 1L, 8);
|
DEFAULT_NETWORK_NO, 3L, 1L, 4L, 1L, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -252,12 +259,12 @@ public class NetworkStatsTest {
|
|||||||
final NetworkStats result = after.subtract(before);
|
final NetworkStats result = after.subtract(before);
|
||||||
|
|
||||||
// its okay to have new rows
|
// its okay to have new rows
|
||||||
assertValues(result, 0, TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 0L,
|
assertValues(result, 0, TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L, 0);
|
DEFAULT_NETWORK_NO, 0L, 0L, 0L, 0L, 0);
|
||||||
assertValues(result, 1, TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 0L,
|
assertValues(result, 1, TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L, 0);
|
DEFAULT_NETWORK_NO, 0L, 0L, 0L, 0L, 0);
|
||||||
assertValues(result, 2, TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(result, 2, TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
1024L, 8L, 1024L, 8L, 20);
|
DEFAULT_NETWORK_NO, 1024L, 8L, 1024L, 8L, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -274,7 +281,7 @@ public class NetworkStatsTest {
|
|||||||
// should silently drop omitted rows
|
// should silently drop omitted rows
|
||||||
assertEquals(1, result.size());
|
assertEquals(1, result.size());
|
||||||
assertValues(result, 0, TEST_IFACE2, UID_ALL, SET_DEFAULT, TAG_NONE, METERED_NO,
|
assertValues(result, 0, TEST_IFACE2, UID_ALL, SET_DEFAULT, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO, 1L, 2L, 3L, 4L, 0);
|
ROAMING_NO, DEFAULT_NETWORK_NO, 1L, 2L, 3L, 4L, 0);
|
||||||
assertEquals(4L, result.getTotalBytes());
|
assertEquals(4L, result.getTotalBytes());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -301,21 +308,21 @@ public class NetworkStatsTest {
|
|||||||
assertEquals(64L, uidTag.getTotalBytes());
|
assertEquals(64L, uidTag.getTotalBytes());
|
||||||
|
|
||||||
final NetworkStats uidMetered = new NetworkStats(TEST_START, 3)
|
final NetworkStats uidMetered = new NetworkStats(TEST_START, 3)
|
||||||
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 32L, 0L,
|
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L)
|
DEFAULT_NETWORK_YES, 32L, 0L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO, 32L, 0L,
|
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO,
|
||||||
0L, 0L, 0L)
|
DEFAULT_NETWORK_NO, 32L, 0L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO, 32L, 0L,
|
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO,
|
||||||
0L, 0L, 0L);
|
DEFAULT_NETWORK_YES, 32L, 0L, 0L, 0L, 0L);
|
||||||
assertEquals(96L, uidMetered.getTotalBytes());
|
assertEquals(96L, uidMetered.getTotalBytes());
|
||||||
|
|
||||||
final NetworkStats uidRoaming = new NetworkStats(TEST_START, 3)
|
final NetworkStats uidRoaming = new NetworkStats(TEST_START, 3)
|
||||||
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 32L, 0L,
|
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L)
|
DEFAULT_NETWORK_YES, 32L, 0L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO, 32L, 0L,
|
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO,
|
||||||
0L, 0L, 0L)
|
DEFAULT_NETWORK_NO, 32L, 0L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_YES, 32L, 0L,
|
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_YES,
|
||||||
0L, 0L, 0L);
|
DEFAULT_NETWORK_YES, 32L, 0L, 0L, 0L, 0L);
|
||||||
assertEquals(96L, uidRoaming.getTotalBytes());
|
assertEquals(96L, uidRoaming.getTotalBytes());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -331,38 +338,38 @@ public class NetworkStatsTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testGroupedByIfaceAll() throws Exception {
|
public void testGroupedByIfaceAll() throws Exception {
|
||||||
final NetworkStats uidStats = new NetworkStats(TEST_START, 3)
|
final NetworkStats uidStats = new NetworkStats(TEST_START, 3)
|
||||||
.addValues(IFACE_ALL, 100, SET_ALL, TAG_NONE, METERED_NO, ROAMING_NO, 128L, 8L, 0L,
|
.addValues(IFACE_ALL, 100, SET_ALL, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
2L, 20L)
|
DEFAULT_NETWORK_YES, 128L, 8L, 0L, 2L, 20L)
|
||||||
.addValues(IFACE_ALL, 101, SET_FOREGROUND, TAG_NONE, METERED_YES, ROAMING_NO, 128L,
|
.addValues(IFACE_ALL, 101, SET_FOREGROUND, TAG_NONE, METERED_YES, ROAMING_NO,
|
||||||
8L, 0L, 2L, 20L)
|
DEFAULT_NETWORK_NO, 128L, 8L, 0L, 2L, 20L)
|
||||||
.addValues(IFACE_ALL, 101, SET_ALL, TAG_NONE, METERED_NO, ROAMING_YES, 128L, 8L, 0L,
|
.addValues(IFACE_ALL, 101, SET_ALL, TAG_NONE, METERED_NO, ROAMING_YES,
|
||||||
2L, 20L);
|
DEFAULT_NETWORK_YES, 128L, 8L, 0L, 2L, 20L);
|
||||||
final NetworkStats grouped = uidStats.groupedByIface();
|
final NetworkStats grouped = uidStats.groupedByIface();
|
||||||
|
|
||||||
assertEquals(3, uidStats.size());
|
assertEquals(3, uidStats.size());
|
||||||
assertEquals(1, grouped.size());
|
assertEquals(1, grouped.size());
|
||||||
|
|
||||||
assertValues(grouped, 0, IFACE_ALL, UID_ALL, SET_ALL, TAG_NONE, METERED_ALL, ROAMING_ALL,
|
assertValues(grouped, 0, IFACE_ALL, UID_ALL, SET_ALL, TAG_NONE, METERED_ALL, ROAMING_ALL,
|
||||||
384L, 24L, 0L, 6L, 0L);
|
DEFAULT_NETWORK_ALL, 384L, 24L, 0L, 6L, 0L);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGroupedByIface() throws Exception {
|
public void testGroupedByIface() throws Exception {
|
||||||
final NetworkStats uidStats = new NetworkStats(TEST_START, 7)
|
final NetworkStats uidStats = new NetworkStats(TEST_START, 7)
|
||||||
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 128L, 8L,
|
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 2L, 20L)
|
DEFAULT_NETWORK_YES, 128L, 8L, 0L, 2L, 20L)
|
||||||
.addValues(TEST_IFACE2, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 512L,
|
.addValues(TEST_IFACE2, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
32L, 0L, 0L, 0L)
|
DEFAULT_NETWORK_NO, 512L, 32L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE2, 100, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO, 64L, 4L,
|
.addValues(TEST_IFACE2, 100, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L)
|
DEFAULT_NETWORK_YES, 64L, 4L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE2, 100, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO, 512L,
|
.addValues(TEST_IFACE2, 100, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
32L, 0L, 0L, 0L)
|
DEFAULT_NETWORK_NO, 512L, 32L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 128L, 8L,
|
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L)
|
DEFAULT_NETWORK_YES, 128L, 8L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE, 101, SET_DEFAULT, 0xF00D, METERED_YES, ROAMING_NO, 128L, 8L,
|
.addValues(TEST_IFACE, 101, SET_DEFAULT, 0xF00D, METERED_YES, ROAMING_NO,
|
||||||
0L, 0L, 0L)
|
DEFAULT_NETWORK_NO, 128L, 8L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_YES, 128L,
|
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_YES,
|
||||||
8L, 0L, 0L, 0L);
|
DEFAULT_NETWORK_YES, 128L, 8L, 0L, 0L, 0L);
|
||||||
|
|
||||||
final NetworkStats grouped = uidStats.groupedByIface();
|
final NetworkStats grouped = uidStats.groupedByIface();
|
||||||
|
|
||||||
@@ -370,59 +377,59 @@ public class NetworkStatsTest {
|
|||||||
|
|
||||||
assertEquals(2, grouped.size());
|
assertEquals(2, grouped.size());
|
||||||
assertValues(grouped, 0, TEST_IFACE, UID_ALL, SET_ALL, TAG_NONE, METERED_ALL, ROAMING_ALL,
|
assertValues(grouped, 0, TEST_IFACE, UID_ALL, SET_ALL, TAG_NONE, METERED_ALL, ROAMING_ALL,
|
||||||
384L, 24L, 0L, 2L, 0L);
|
DEFAULT_NETWORK_ALL, 384L, 24L, 0L, 2L, 0L);
|
||||||
assertValues(grouped, 1, TEST_IFACE2, UID_ALL, SET_ALL, TAG_NONE, METERED_ALL, ROAMING_ALL,
|
assertValues(grouped, 1, TEST_IFACE2, UID_ALL, SET_ALL, TAG_NONE, METERED_ALL, ROAMING_ALL,
|
||||||
1024L, 64L, 0L, 0L, 0L);
|
DEFAULT_NETWORK_ALL, 1024L, 64L, 0L, 0L, 0L);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAddAllValues() {
|
public void testAddAllValues() {
|
||||||
final NetworkStats first = new NetworkStats(TEST_START, 5)
|
final NetworkStats first = new NetworkStats(TEST_START, 5)
|
||||||
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO, 32L, 0L,
|
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO,
|
||||||
0L, 0L, 0L)
|
DEFAULT_NETWORK_YES, 32L, 0L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE, 100, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO, 32L,
|
.addValues(TEST_IFACE, 100, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L, 0L)
|
DEFAULT_NETWORK_NO, 32L, 0L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE, 100, SET_FOREGROUND, TAG_NONE, METERED_YES, ROAMING_YES, 32L,
|
.addValues(TEST_IFACE, 100, SET_FOREGROUND, TAG_NONE, METERED_YES, ROAMING_YES,
|
||||||
0L, 0L, 0L, 0L);
|
DEFAULT_NETWORK_YES, 32L, 0L, 0L, 0L, 0L);
|
||||||
|
|
||||||
final NetworkStats second = new NetworkStats(TEST_START, 2)
|
final NetworkStats second = new NetworkStats(TEST_START, 2)
|
||||||
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO, 32L, 0L,
|
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO,
|
||||||
0L, 0L, 0L)
|
DEFAULT_NETWORK_YES, 32L, 0L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE2, UID_ALL, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 32L,
|
.addValues(TEST_IFACE2, UID_ALL, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L, 0L)
|
DEFAULT_NETWORK_NO, 32L, 0L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE, 100, SET_FOREGROUND, TAG_NONE, METERED_YES, ROAMING_YES, 32L,
|
.addValues(TEST_IFACE, 100, SET_FOREGROUND, TAG_NONE, METERED_YES, ROAMING_YES,
|
||||||
0L, 0L, 0L, 0L);
|
DEFAULT_NETWORK_YES, 32L, 0L, 0L, 0L, 0L);
|
||||||
|
|
||||||
first.combineAllValues(second);
|
first.combineAllValues(second);
|
||||||
|
|
||||||
assertEquals(4, first.size());
|
assertEquals(4, first.size());
|
||||||
assertValues(first, 0, TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO, 64L,
|
assertValues(first, 0, TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO,
|
||||||
0L, 0L, 0L, 0L);
|
DEFAULT_NETWORK_YES, 64L, 0L, 0L, 0L, 0L);
|
||||||
assertValues(first, 1, TEST_IFACE, 100, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(first, 1, TEST_IFACE, 100, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
32L, 0L, 0L, 0L, 0L);
|
DEFAULT_NETWORK_NO, 32L, 0L, 0L, 0L, 0L);
|
||||||
assertValues(first, 2, TEST_IFACE, 100, SET_FOREGROUND, TAG_NONE, METERED_YES, ROAMING_YES,
|
assertValues(first, 2, TEST_IFACE, 100, SET_FOREGROUND, TAG_NONE, METERED_YES, ROAMING_YES,
|
||||||
64L, 0L, 0L, 0L, 0L);
|
DEFAULT_NETWORK_YES, 64L, 0L, 0L, 0L, 0L);
|
||||||
assertValues(first, 3, TEST_IFACE2, UID_ALL, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(first, 3, TEST_IFACE2, UID_ALL, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
32L, 0L, 0L, 0L, 0L);
|
DEFAULT_NETWORK_NO, 32L, 0L, 0L, 0L, 0L);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetTotal() {
|
public void testGetTotal() {
|
||||||
final NetworkStats stats = new NetworkStats(TEST_START, 7)
|
final NetworkStats stats = new NetworkStats(TEST_START, 7)
|
||||||
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 128L, 8L,
|
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 2L, 20L)
|
DEFAULT_NETWORK_YES, 128L, 8L, 0L, 2L, 20L)
|
||||||
.addValues(TEST_IFACE2, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 512L,
|
.addValues(TEST_IFACE2, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
32L, 0L, 0L, 0L)
|
DEFAULT_NETWORK_NO, 512L, 32L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE2, 100, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO, 64L, 4L,
|
.addValues(TEST_IFACE2, 100, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L)
|
DEFAULT_NETWORK_YES, 64L, 4L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE2, 100, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO, 512L,
|
.addValues(TEST_IFACE2, 100, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
32L, 0L, 0L, 0L)
|
DEFAULT_NETWORK_NO, 512L,32L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO, 128L,
|
.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO,
|
||||||
8L, 0L, 0L, 0L)
|
DEFAULT_NETWORK_YES, 128L, 8L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE, 101, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO, 128L, 8L,
|
.addValues(TEST_IFACE, 101, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L)
|
DEFAULT_NETWORK_NO, 128L, 8L, 0L, 0L, 0L)
|
||||||
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_YES, 128L,
|
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_YES,
|
||||||
8L, 0L, 0L, 0L);
|
DEFAULT_NETWORK_NO, 128L, 8L, 0L, 0L, 0L);
|
||||||
|
|
||||||
assertValues(stats.getTotal(null), 1408L, 88L, 0L, 2L, 20L);
|
assertValues(stats.getTotal(null), 1408L, 88L, 0L, 2L, 20L);
|
||||||
assertValues(stats.getTotal(null, 100), 1280L, 80L, 0L, 2L, 20L);
|
assertValues(stats.getTotal(null, 100), 1280L, 80L, 0L, 2L, 20L);
|
||||||
@@ -449,9 +456,9 @@ public class NetworkStatsTest {
|
|||||||
assertEquals(6, before.size());
|
assertEquals(6, before.size());
|
||||||
assertEquals(2, after.size());
|
assertEquals(2, after.size());
|
||||||
assertValues(after, 0, TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(after, 0, TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
128L, 8L, 0L, 0L, 0L);
|
DEFAULT_NETWORK_NO, 128L, 8L, 0L, 0L, 0L);
|
||||||
assertValues(after, 1, TEST_IFACE, 101, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO, 128L,
|
assertValues(after, 1, TEST_IFACE, 101, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO,
|
||||||
8L, 0L, 0L, 0L);
|
DEFAULT_NETWORK_NO, 128L, 8L, 0L, 0L, 0L);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -489,90 +496,90 @@ public class NetworkStatsTest {
|
|||||||
final String underlyingIface = "wlan0";
|
final String underlyingIface = "wlan0";
|
||||||
final int testTag1 = 8888;
|
final int testTag1 = 8888;
|
||||||
NetworkStats delta = new NetworkStats(TEST_START, 17)
|
NetworkStats delta = new NetworkStats(TEST_START, 17)
|
||||||
.addValues(tunIface, 10100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 39605L, 46L,
|
.addValues(tunIface, 10100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
12259L, 55L, 0L)
|
DEFAULT_NETWORK_NO, 39605L, 46L, 12259L, 55L, 0L)
|
||||||
.addValues(tunIface, 10100, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO, 0L, 0L,
|
.addValues(tunIface, 10100, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L)
|
DEFAULT_NETWORK_NO, 0L, 0L, 0L, 0L, 0L)
|
||||||
.addValues(tunIface, 10120, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 72667L, 197L,
|
.addValues(tunIface, 10120, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
43909L, 241L, 0L)
|
DEFAULT_NETWORK_NO, 72667L, 197L, 43909L, 241L, 0L)
|
||||||
.addValues(tunIface, 10120, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO, 9297L,
|
.addValues(tunIface, 10120, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
17L, 4128L, 21L, 0L)
|
DEFAULT_NETWORK_NO, 9297L, 17L, 4128L, 21L, 0L)
|
||||||
// VPN package also uses some traffic through unprotected network.
|
// VPN package also uses some traffic through unprotected network.
|
||||||
.addValues(tunIface, tunUid, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 4983L, 10L,
|
.addValues(tunIface, tunUid, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
1801L, 12L, 0L)
|
DEFAULT_NETWORK_NO, 4983L, 10L, 1801L, 12L, 0L)
|
||||||
.addValues(tunIface, tunUid, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO, 0L, 0L,
|
.addValues(tunIface, tunUid, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L)
|
DEFAULT_NETWORK_NO, 0L, 0L, 0L, 0L, 0L)
|
||||||
// Tag entries
|
// Tag entries
|
||||||
.addValues(tunIface, 10120, SET_DEFAULT, testTag1, METERED_NO, ROAMING_NO, 21691L, 41L,
|
.addValues(tunIface, 10120, SET_DEFAULT, testTag1, METERED_NO, ROAMING_NO,
|
||||||
13820L, 51L, 0L)
|
DEFAULT_NETWORK_NO, 21691L, 41L, 13820L, 51L, 0L)
|
||||||
.addValues(tunIface, 10120, SET_FOREGROUND, testTag1, METERED_NO, ROAMING_NO, 1281L, 2L,
|
.addValues(tunIface, 10120, SET_FOREGROUND, testTag1, METERED_NO, ROAMING_NO,
|
||||||
665L, 2L, 0L)
|
DEFAULT_NETWORK_NO, 1281L, 2L, 665L, 2L, 0L)
|
||||||
// Irrelevant entries
|
// Irrelevant entries
|
||||||
.addValues(TEST_IFACE, 10100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 1685L, 5L,
|
.addValues(TEST_IFACE, 10100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
2070L, 6L, 0L)
|
DEFAULT_NETWORK_NO, 1685L, 5L, 2070L, 6L, 0L)
|
||||||
// Underlying Iface entries
|
// Underlying Iface entries
|
||||||
.addValues(underlyingIface, 10100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 5178L,
|
.addValues(underlyingIface, 10100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
8L, 2139L, 11L, 0L)
|
DEFAULT_NETWORK_NO, 5178L, 8L, 2139L, 11L, 0L)
|
||||||
.addValues(underlyingIface, 10100, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO, 0L,
|
.addValues(underlyingIface, 10100, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L, 0L)
|
DEFAULT_NETWORK_NO, 0L, 0L, 0L, 0L, 0L)
|
||||||
.addValues(underlyingIface, tunUid, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
.addValues(underlyingIface, tunUid, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
149873L, 287L, 59217L /* smaller than sum(tun0) */,
|
DEFAULT_NETWORK_NO, 149873L, 287L, 59217L /* smaller than sum(tun0) */,
|
||||||
299L /* smaller than sum(tun0) */, 0L)
|
299L /* smaller than sum(tun0) */, 0L)
|
||||||
.addValues(underlyingIface, tunUid, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
.addValues(underlyingIface, tunUid, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L, 0L, 0L);
|
DEFAULT_NETWORK_NO, 0L, 0L, 0L, 0L, 0L);
|
||||||
|
|
||||||
assertTrue(delta.migrateTun(tunUid, tunIface, underlyingIface));
|
assertTrue(delta.toString(), delta.migrateTun(tunUid, tunIface, underlyingIface));
|
||||||
assertEquals(20, delta.size());
|
assertEquals(20, delta.size());
|
||||||
|
|
||||||
// tunIface and TEST_IFACE entries are not changed.
|
// tunIface and TEST_IFACE entries are not changed.
|
||||||
assertValues(delta, 0, tunIface, 10100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(delta, 0, tunIface, 10100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
39605L, 46L, 12259L, 55L, 0L);
|
DEFAULT_NETWORK_NO, 39605L, 46L, 12259L, 55L, 0L);
|
||||||
assertValues(delta, 1, tunIface, 10100, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(delta, 1, tunIface, 10100, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L, 0L, 0L);
|
DEFAULT_NETWORK_NO, 0L, 0L, 0L, 0L, 0L);
|
||||||
assertValues(delta, 2, tunIface, 10120, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(delta, 2, tunIface, 10120, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
72667L, 197L, 43909L, 241L, 0L);
|
DEFAULT_NETWORK_NO, 72667L, 197L, 43909L, 241L, 0L);
|
||||||
assertValues(delta, 3, tunIface, 10120, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(delta, 3, tunIface, 10120, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
9297L, 17L, 4128L, 21L, 0L);
|
DEFAULT_NETWORK_NO, 9297L, 17L, 4128L, 21L, 0L);
|
||||||
assertValues(delta, 4, tunIface, tunUid, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(delta, 4, tunIface, tunUid, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
4983L, 10L, 1801L, 12L, 0L);
|
DEFAULT_NETWORK_NO, 4983L, 10L, 1801L, 12L, 0L);
|
||||||
assertValues(delta, 5, tunIface, tunUid, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(delta, 5, tunIface, tunUid, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
0L, 0L, 0L, 0L, 0L);
|
DEFAULT_NETWORK_NO, 0L, 0L, 0L, 0L, 0L);
|
||||||
assertValues(delta, 6, tunIface, 10120, SET_DEFAULT, testTag1, METERED_NO, ROAMING_NO,
|
assertValues(delta, 6, tunIface, 10120, SET_DEFAULT, testTag1, METERED_NO, ROAMING_NO,
|
||||||
21691L, 41L, 13820L, 51L, 0L);
|
DEFAULT_NETWORK_NO, 21691L, 41L, 13820L, 51L, 0L);
|
||||||
assertValues(delta, 7, tunIface, 10120, SET_FOREGROUND, testTag1, METERED_NO, ROAMING_NO,
|
assertValues(delta, 7, tunIface, 10120, SET_FOREGROUND, testTag1, METERED_NO, ROAMING_NO,
|
||||||
1281L, 2L, 665L, 2L, 0L);
|
DEFAULT_NETWORK_NO, 1281L, 2L, 665L, 2L, 0L);
|
||||||
assertValues(delta, 8, TEST_IFACE, 10100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(delta, 8, TEST_IFACE, 10100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
1685L, 5L, 2070L, 6L, 0L);
|
DEFAULT_NETWORK_NO, 1685L, 5L, 2070L, 6L, 0L);
|
||||||
|
|
||||||
// Existing underlying Iface entries are updated
|
// Existing underlying Iface entries are updated
|
||||||
assertValues(delta, 9, underlyingIface, 10100, SET_DEFAULT, TAG_NONE, METERED_NO,
|
assertValues(delta, 9, underlyingIface, 10100, SET_DEFAULT, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO, 44783L, 54L, 14178L, 62L, 0L);
|
ROAMING_NO, DEFAULT_NETWORK_NO, 44783L, 54L, 14178L, 62L, 0L);
|
||||||
assertValues(delta, 10, underlyingIface, 10100, SET_FOREGROUND, TAG_NONE, METERED_NO,
|
assertValues(delta, 10, underlyingIface, 10100, SET_FOREGROUND, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO, 0L, 0L, 0L, 0L, 0L);
|
ROAMING_NO, DEFAULT_NETWORK_NO, 0L, 0L, 0L, 0L, 0L);
|
||||||
|
|
||||||
// VPN underlying Iface entries are updated
|
// VPN underlying Iface entries are updated
|
||||||
assertValues(delta, 11, underlyingIface, tunUid, SET_DEFAULT, TAG_NONE, METERED_NO,
|
assertValues(delta, 11, underlyingIface, tunUid, SET_DEFAULT, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO, 28304L, 27L, 1L, 2L, 0L);
|
ROAMING_NO, DEFAULT_NETWORK_NO, 28304L, 27L, 1L, 2L, 0L);
|
||||||
assertValues(delta, 12, underlyingIface, tunUid, SET_FOREGROUND, TAG_NONE, METERED_NO,
|
assertValues(delta, 12, underlyingIface, tunUid, SET_FOREGROUND, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO, 0L, 0L, 0L, 0L, 0L);
|
ROAMING_NO, DEFAULT_NETWORK_NO, 0L, 0L, 0L, 0L, 0L);
|
||||||
|
|
||||||
// New entries are added for new application's underlying Iface traffic
|
// New entries are added for new application's underlying Iface traffic
|
||||||
assertContains(delta, underlyingIface, 10120, SET_DEFAULT, TAG_NONE, METERED_NO,
|
assertContains(delta, underlyingIface, 10120, SET_DEFAULT, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO, 72667L, 197L, 43123L, 227L, 0L);
|
ROAMING_NO, DEFAULT_NETWORK_NO, 72667L, 197L, 43123L, 227L, 0L);
|
||||||
assertContains(delta, underlyingIface, 10120, SET_FOREGROUND, TAG_NONE, METERED_NO,
|
assertContains(delta, underlyingIface, 10120, SET_FOREGROUND, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO, 9297L, 17L, 4054, 19L, 0L);
|
ROAMING_NO, DEFAULT_NETWORK_NO, 9297L, 17L, 4054, 19L, 0L);
|
||||||
assertContains(delta, underlyingIface, 10120, SET_DEFAULT, testTag1, METERED_NO,
|
assertContains(delta, underlyingIface, 10120, SET_DEFAULT, testTag1, METERED_NO,
|
||||||
ROAMING_NO, 21691L, 41L, 13572L, 48L, 0L);
|
ROAMING_NO, DEFAULT_NETWORK_NO, 21691L, 41L, 13572L, 48L, 0L);
|
||||||
assertContains(delta, underlyingIface, 10120, SET_FOREGROUND, testTag1, METERED_NO,
|
assertContains(delta, underlyingIface, 10120, SET_FOREGROUND, testTag1, METERED_NO,
|
||||||
ROAMING_NO, 1281L, 2L, 653L, 1L, 0L);
|
ROAMING_NO, DEFAULT_NETWORK_NO, 1281L, 2L, 653L, 1L, 0L);
|
||||||
|
|
||||||
// New entries are added for debug purpose
|
// New entries are added for debug purpose
|
||||||
assertContains(delta, underlyingIface, 10100, SET_DBG_VPN_IN, TAG_NONE, METERED_NO,
|
assertContains(delta, underlyingIface, 10100, SET_DBG_VPN_IN, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO, 39605L, 46L, 12039, 51, 0);
|
ROAMING_NO, DEFAULT_NETWORK_NO, 39605L, 46L, 12039, 51, 0);
|
||||||
assertContains(delta, underlyingIface, 10120, SET_DBG_VPN_IN, TAG_NONE, METERED_NO,
|
assertContains(delta, underlyingIface, 10120, SET_DBG_VPN_IN, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO, 81964, 214, 47177, 246, 0);
|
ROAMING_NO, DEFAULT_NETWORK_NO, 81964, 214, 47177, 246, 0);
|
||||||
assertContains(delta, underlyingIface, tunUid, SET_DBG_VPN_OUT, TAG_NONE, METERED_ALL,
|
assertContains(delta, underlyingIface, tunUid, SET_DBG_VPN_OUT, TAG_NONE, METERED_ALL,
|
||||||
ROAMING_ALL, 121569, 260, 59216, 297, 0);
|
ROAMING_ALL, DEFAULT_NETWORK_ALL, 121569, 260, 59216, 297, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -587,79 +594,80 @@ public class NetworkStatsTest {
|
|||||||
final String underlyingIface = "wlan0";
|
final String underlyingIface = "wlan0";
|
||||||
NetworkStats delta = new NetworkStats(TEST_START, 9)
|
NetworkStats delta = new NetworkStats(TEST_START, 9)
|
||||||
// 2 different apps sent/receive data via tun0.
|
// 2 different apps sent/receive data via tun0.
|
||||||
.addValues(tunIface, 10100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 50000L, 25L,
|
.addValues(tunIface, 10100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
100000L, 50L, 0L)
|
DEFAULT_NETWORK_NO, 50000L, 25L, 100000L, 50L, 0L)
|
||||||
.addValues(tunIface, 20100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 500L, 2L,
|
.addValues(tunIface, 20100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
200L, 5L, 0L)
|
DEFAULT_NETWORK_NO, 500L, 2L, 200L, 5L, 0L)
|
||||||
// VPN package resends data through the tunnel (with exaggerated overhead)
|
// VPN package resends data through the tunnel (with exaggerated overhead)
|
||||||
.addValues(tunIface, tunUid, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 240000,
|
.addValues(tunIface, tunUid, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
100L, 120000L, 60L, 0L)
|
DEFAULT_NETWORK_NO, 240000, 100L, 120000L, 60L, 0L)
|
||||||
// 1 app already has some traffic on the underlying interface, the other doesn't yet
|
// 1 app already has some traffic on the underlying interface, the other doesn't yet
|
||||||
.addValues(underlyingIface, 10100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 1000L,
|
.addValues(underlyingIface, 10100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
10L, 2000L, 20L, 0L)
|
DEFAULT_NETWORK_NO, 1000L, 10L, 2000L, 20L, 0L)
|
||||||
// Traffic through the underlying interface via the vpn app.
|
// Traffic through the underlying interface via the vpn app.
|
||||||
// This test should redistribute this data correctly.
|
// This test should redistribute this data correctly.
|
||||||
.addValues(underlyingIface, tunUid, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
.addValues(underlyingIface, tunUid, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
75500L, 37L, 130000L, 70L, 0L);
|
DEFAULT_NETWORK_NO, 75500L, 37L, 130000L, 70L, 0L);
|
||||||
|
|
||||||
assertTrue(delta.migrateTun(tunUid, tunIface, underlyingIface));
|
assertTrue(delta.migrateTun(tunUid, tunIface, underlyingIface));
|
||||||
assertEquals(9, delta.size());
|
assertEquals(9, delta.size());
|
||||||
|
|
||||||
// tunIface entries should not be changed.
|
// tunIface entries should not be changed.
|
||||||
assertValues(delta, 0, tunIface, 10100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(delta, 0, tunIface, 10100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
50000L, 25L, 100000L, 50L, 0L);
|
DEFAULT_NETWORK_NO, 50000L, 25L, 100000L, 50L, 0L);
|
||||||
assertValues(delta, 1, tunIface, 20100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(delta, 1, tunIface, 20100, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
500L, 2L, 200L, 5L, 0L);
|
DEFAULT_NETWORK_NO, 500L, 2L, 200L, 5L, 0L);
|
||||||
assertValues(delta, 2, tunIface, tunUid, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(delta, 2, tunIface, tunUid, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
240000L, 100L, 120000L, 60L, 0L);
|
DEFAULT_NETWORK_NO, 240000L, 100L, 120000L, 60L, 0L);
|
||||||
|
|
||||||
// Existing underlying Iface entries are updated
|
// Existing underlying Iface entries are updated
|
||||||
assertValues(delta, 3, underlyingIface, 10100, SET_DEFAULT, TAG_NONE, METERED_NO,
|
assertValues(delta, 3, underlyingIface, 10100, SET_DEFAULT, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO, 51000L, 35L, 102000L, 70L, 0L);
|
ROAMING_NO, DEFAULT_NETWORK_NO, 51000L, 35L, 102000L, 70L, 0L);
|
||||||
|
|
||||||
// VPN underlying Iface entries are updated
|
// VPN underlying Iface entries are updated
|
||||||
assertValues(delta, 4, underlyingIface, tunUid, SET_DEFAULT, TAG_NONE, METERED_NO,
|
assertValues(delta, 4, underlyingIface, tunUid, SET_DEFAULT, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO, 25000L, 10L, 29800L, 15L, 0L);
|
ROAMING_NO, DEFAULT_NETWORK_NO, 25000L, 10L, 29800L, 15L, 0L);
|
||||||
|
|
||||||
// New entries are added for new application's underlying Iface traffic
|
// New entries are added for new application's underlying Iface traffic
|
||||||
assertContains(delta, underlyingIface, 20100, SET_DEFAULT, TAG_NONE, METERED_NO,
|
assertContains(delta, underlyingIface, 20100, SET_DEFAULT, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO, 500L, 2L, 200L, 5L, 0L);
|
ROAMING_NO, DEFAULT_NETWORK_NO, 500L, 2L, 200L, 5L, 0L);
|
||||||
|
|
||||||
// New entries are added for debug purpose
|
// New entries are added for debug purpose
|
||||||
assertContains(delta, underlyingIface, 10100, SET_DBG_VPN_IN, TAG_NONE, METERED_NO,
|
assertContains(delta, underlyingIface, 10100, SET_DBG_VPN_IN, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO, 50000L, 25L, 100000L, 50L, 0L);
|
ROAMING_NO, DEFAULT_NETWORK_NO, 50000L, 25L, 100000L, 50L, 0L);
|
||||||
assertContains(delta, underlyingIface, 20100, SET_DBG_VPN_IN, TAG_NONE, METERED_NO,
|
assertContains(delta, underlyingIface, 20100, SET_DBG_VPN_IN, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO, 500, 2L, 200L, 5L, 0L);
|
ROAMING_NO, DEFAULT_NETWORK_NO, 500, 2L, 200L, 5L, 0L);
|
||||||
assertContains(delta, underlyingIface, tunUid, SET_DBG_VPN_OUT, TAG_NONE, METERED_ALL,
|
assertContains(delta, underlyingIface, tunUid, SET_DBG_VPN_OUT, TAG_NONE, METERED_ALL,
|
||||||
ROAMING_ALL, 50500L, 27L, 100200L, 55, 0);
|
ROAMING_ALL, DEFAULT_NETWORK_ALL, 50500L, 27L, 100200L, 55, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void assertContains(NetworkStats stats, String iface, int uid, int set,
|
private static void assertContains(NetworkStats stats, String iface, int uid, int set,
|
||||||
int tag, int metered, int roaming, long rxBytes, long rxPackets, long txBytes,
|
int tag, int metered, int roaming, int defaultNetwork, long rxBytes, long rxPackets,
|
||||||
long txPackets, long operations) {
|
long txBytes, long txPackets, long operations) {
|
||||||
int index = stats.findIndex(iface, uid, set, tag, metered, roaming);
|
int index = stats.findIndex(iface, uid, set, tag, metered, roaming, defaultNetwork);
|
||||||
assertTrue(index != -1);
|
assertTrue(index != -1);
|
||||||
assertValues(stats, index, iface, uid, set, tag, metered, roaming,
|
assertValues(stats, index, iface, uid, set, tag, metered, roaming, defaultNetwork,
|
||||||
rxBytes, rxPackets, txBytes, txPackets, operations);
|
rxBytes, rxPackets, txBytes, txPackets, operations);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void assertValues(NetworkStats stats, int index, String iface, int uid, int set,
|
private static void assertValues(NetworkStats stats, int index, String iface, int uid, int set,
|
||||||
int tag, int metered, int roaming, long rxBytes, long rxPackets, long txBytes,
|
int tag, int metered, int roaming, int defaultNetwork, long rxBytes, long rxPackets,
|
||||||
long txPackets, long operations) {
|
long txBytes, long txPackets, long operations) {
|
||||||
final NetworkStats.Entry entry = stats.getValues(index, null);
|
final NetworkStats.Entry entry = stats.getValues(index, null);
|
||||||
assertValues(entry, iface, uid, set, tag, metered, roaming);
|
assertValues(entry, iface, uid, set, tag, metered, roaming, defaultNetwork);
|
||||||
assertValues(entry, rxBytes, rxPackets, txBytes, txPackets, operations);
|
assertValues(entry, rxBytes, rxPackets, txBytes, txPackets, operations);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void assertValues(
|
private static void assertValues(
|
||||||
NetworkStats.Entry entry, String iface, int uid, int set, int tag, int metered,
|
NetworkStats.Entry entry, String iface, int uid, int set, int tag, int metered,
|
||||||
int roaming) {
|
int roaming, int defaultNetwork) {
|
||||||
assertEquals(iface, entry.iface);
|
assertEquals(iface, entry.iface);
|
||||||
assertEquals(uid, entry.uid);
|
assertEquals(uid, entry.uid);
|
||||||
assertEquals(set, entry.set);
|
assertEquals(set, entry.set);
|
||||||
assertEquals(tag, entry.tag);
|
assertEquals(tag, entry.tag);
|
||||||
assertEquals(metered, entry.metered);
|
assertEquals(metered, entry.metered);
|
||||||
assertEquals(roaming, entry.roaming);
|
assertEquals(roaming, entry.roaming);
|
||||||
|
assertEquals(defaultNetwork, entry.defaultNetwork);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void assertValues(NetworkStats.Entry entry, long rxBytes, long rxPackets,
|
private static void assertValues(NetworkStats.Entry entry, long rxBytes, long rxPackets,
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.internal.net;
|
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.METERED_NO;
|
||||||
import static android.net.NetworkStats.ROAMING_NO;
|
import static android.net.NetworkStats.ROAMING_NO;
|
||||||
import static android.net.NetworkStats.SET_ALL;
|
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,
|
private static void assertStatsEntry(NetworkStats stats, String iface, int uid, int set,
|
||||||
int tag, long rxBytes, long txBytes) {
|
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) {
|
if (i < 0) {
|
||||||
fail(String.format("no NetworkStats for (iface: %s, uid: %d, set: %d, tag: %d)",
|
fail(String.format("no NetworkStats for (iface: %s, uid: %d, set: %d, tag: %d)",
|
||||||
iface, uid, set, tag));
|
iface, uid, set, tag));
|
||||||
@@ -252,7 +254,8 @@ public class NetworkStatsFactoryTest {
|
|||||||
|
|
||||||
private static void assertStatsEntry(NetworkStats stats, String iface, int uid, int set,
|
private static void assertStatsEntry(NetworkStats stats, String iface, int uid, int set,
|
||||||
int tag, long rxBytes, long rxPackets, long txBytes, long txPackets) {
|
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) {
|
if (i < 0) {
|
||||||
fail(String.format("no NetworkStats for (iface: %s, uid: %d, set: %d, tag: %d)",
|
fail(String.format("no NetworkStats for (iface: %s, uid: %d, set: %d, tag: %d)",
|
||||||
iface, uid, set, tag));
|
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_MOBILE;
|
||||||
import static android.net.ConnectivityManager.TYPE_WIFI;
|
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.METERED_NO;
|
||||||
import static android.net.NetworkStats.ROAMING_NO;
|
import static android.net.NetworkStats.ROAMING_NO;
|
||||||
import static android.net.NetworkStats.SET_DEFAULT;
|
import static android.net.NetworkStats.SET_DEFAULT;
|
||||||
@@ -344,7 +346,7 @@ public class NetworkStatsObserversTest {
|
|||||||
NetworkStats xtSnapshot = null;
|
NetworkStats xtSnapshot = null;
|
||||||
NetworkStats uidSnapshot = new NetworkStats(TEST_START, 2 /* initialSize */)
|
NetworkStats uidSnapshot = new NetworkStats(TEST_START, 2 /* initialSize */)
|
||||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
.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(
|
mStatsObservers.updateStats(
|
||||||
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
||||||
VPN_INFO, TEST_START);
|
VPN_INFO, TEST_START);
|
||||||
@@ -352,7 +354,8 @@ public class NetworkStatsObserversTest {
|
|||||||
// Delta
|
// Delta
|
||||||
uidSnapshot = new NetworkStats(TEST_START + 2 * MINUTE_IN_MILLIS, 2 /* initialSize */)
|
uidSnapshot = new NetworkStats(TEST_START + 2 * MINUTE_IN_MILLIS, 2 /* initialSize */)
|
||||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
.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(
|
mStatsObservers.updateStats(
|
||||||
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
||||||
VPN_INFO, TEST_START);
|
VPN_INFO, TEST_START);
|
||||||
@@ -381,7 +384,7 @@ public class NetworkStatsObserversTest {
|
|||||||
NetworkStats xtSnapshot = null;
|
NetworkStats xtSnapshot = null;
|
||||||
NetworkStats uidSnapshot = new NetworkStats(TEST_START, 2 /* initialSize */)
|
NetworkStats uidSnapshot = new NetworkStats(TEST_START, 2 /* initialSize */)
|
||||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
.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(
|
mStatsObservers.updateStats(
|
||||||
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
||||||
VPN_INFO, TEST_START);
|
VPN_INFO, TEST_START);
|
||||||
@@ -389,7 +392,8 @@ public class NetworkStatsObserversTest {
|
|||||||
// Delta
|
// Delta
|
||||||
uidSnapshot = new NetworkStats(TEST_START + 2 * MINUTE_IN_MILLIS, 2 /* initialSize */)
|
uidSnapshot = new NetworkStats(TEST_START + 2 * MINUTE_IN_MILLIS, 2 /* initialSize */)
|
||||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
.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(
|
mStatsObservers.updateStats(
|
||||||
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
||||||
VPN_INFO, TEST_START);
|
VPN_INFO, TEST_START);
|
||||||
@@ -417,7 +421,7 @@ public class NetworkStatsObserversTest {
|
|||||||
NetworkStats xtSnapshot = null;
|
NetworkStats xtSnapshot = null;
|
||||||
NetworkStats uidSnapshot = new NetworkStats(TEST_START, 2 /* initialSize */)
|
NetworkStats uidSnapshot = new NetworkStats(TEST_START, 2 /* initialSize */)
|
||||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
.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(
|
mStatsObservers.updateStats(
|
||||||
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
||||||
VPN_INFO, TEST_START);
|
VPN_INFO, TEST_START);
|
||||||
@@ -425,7 +429,8 @@ public class NetworkStatsObserversTest {
|
|||||||
// Delta
|
// Delta
|
||||||
uidSnapshot = new NetworkStats(TEST_START + 2 * MINUTE_IN_MILLIS, 2 /* initialSize */)
|
uidSnapshot = new NetworkStats(TEST_START + 2 * MINUTE_IN_MILLIS, 2 /* initialSize */)
|
||||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
.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(
|
mStatsObservers.updateStats(
|
||||||
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
||||||
VPN_INFO, TEST_START);
|
VPN_INFO, TEST_START);
|
||||||
@@ -454,7 +459,7 @@ public class NetworkStatsObserversTest {
|
|||||||
NetworkStats xtSnapshot = null;
|
NetworkStats xtSnapshot = null;
|
||||||
NetworkStats uidSnapshot = new NetworkStats(TEST_START, 2 /* initialSize */)
|
NetworkStats uidSnapshot = new NetworkStats(TEST_START, 2 /* initialSize */)
|
||||||
.addValues(TEST_IFACE, UID_ANOTHER_USER, SET_DEFAULT, TAG_NONE, METERED_NO,
|
.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(
|
mStatsObservers.updateStats(
|
||||||
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
||||||
VPN_INFO, TEST_START);
|
VPN_INFO, TEST_START);
|
||||||
@@ -462,8 +467,8 @@ public class NetworkStatsObserversTest {
|
|||||||
// Delta
|
// Delta
|
||||||
uidSnapshot = new NetworkStats(TEST_START + 2 * MINUTE_IN_MILLIS, 2 /* initialSize */)
|
uidSnapshot = new NetworkStats(TEST_START + 2 * MINUTE_IN_MILLIS, 2 /* initialSize */)
|
||||||
.addValues(TEST_IFACE, UID_ANOTHER_USER, SET_DEFAULT, TAG_NONE, METERED_NO,
|
.addValues(TEST_IFACE, UID_ANOTHER_USER, SET_DEFAULT, TAG_NONE, METERED_NO,
|
||||||
ROAMING_NO, BASE_BYTES + THRESHOLD_BYTES, 2L, BASE_BYTES + THRESHOLD_BYTES,
|
ROAMING_NO, DEFAULT_NETWORK_NO, BASE_BYTES + THRESHOLD_BYTES, 2L,
|
||||||
2L, 0L);
|
BASE_BYTES + THRESHOLD_BYTES, 2L, 0L);
|
||||||
mStatsObservers.updateStats(
|
mStatsObservers.updateStats(
|
||||||
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
xtSnapshot, uidSnapshot, mActiveIfaces, mActiveUidIfaces,
|
||||||
VPN_INFO, TEST_START);
|
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_MOBILE;
|
||||||
import static android.net.ConnectivityManager.TYPE_WIFI;
|
import static android.net.ConnectivityManager.TYPE_WIFI;
|
||||||
import static android.net.ConnectivityManager.TYPE_WIMAX;
|
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.IFACE_ALL;
|
||||||
import static android.net.NetworkStats.METERED_ALL;
|
import static android.net.NetworkStats.METERED_ALL;
|
||||||
import static android.net.NetworkStats.METERED_NO;
|
import static android.net.NetworkStats.METERED_NO;
|
||||||
@@ -313,10 +316,10 @@ public class NetworkStatsServiceTest {
|
|||||||
// verify service recorded history
|
// verify service recorded history
|
||||||
assertNetworkTotal(sTemplateWifi, 1024L, 8L, 2048L, 16L, 0);
|
assertNetworkTotal(sTemplateWifi, 1024L, 8L, 2048L, 16L, 0);
|
||||||
assertUidTotal(sTemplateWifi, UID_RED, 1024L, 8L, 512L, 4L, 10);
|
assertUidTotal(sTemplateWifi, UID_RED, 1024L, 8L, 512L, 4L, 10);
|
||||||
assertUidTotal(sTemplateWifi, UID_RED, SET_DEFAULT, METERED_NO, ROAMING_NO, 512L, 4L, 256L,
|
assertUidTotal(sTemplateWifi, UID_RED, SET_DEFAULT, METERED_NO, ROAMING_NO,
|
||||||
2L, 4);
|
DEFAULT_NETWORK_YES, 512L, 4L, 256L, 2L, 4);
|
||||||
assertUidTotal(sTemplateWifi, UID_RED, SET_FOREGROUND, METERED_NO, ROAMING_NO, 512L, 4L,
|
assertUidTotal(sTemplateWifi, UID_RED, SET_FOREGROUND, METERED_NO, ROAMING_NO,
|
||||||
256L, 2L, 6);
|
DEFAULT_NETWORK_YES, 512L, 4L, 256L, 2L, 6);
|
||||||
assertUidTotal(sTemplateWifi, UID_BLUE, 128L, 1L, 128L, 1L, 0);
|
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
|
// after systemReady(), we should have historical stats loaded again
|
||||||
assertNetworkTotal(sTemplateWifi, 1024L, 8L, 2048L, 16L, 0);
|
assertNetworkTotal(sTemplateWifi, 1024L, 8L, 2048L, 16L, 0);
|
||||||
assertUidTotal(sTemplateWifi, UID_RED, 1024L, 8L, 512L, 4L, 10);
|
assertUidTotal(sTemplateWifi, UID_RED, 1024L, 8L, 512L, 4L, 10);
|
||||||
assertUidTotal(sTemplateWifi, UID_RED, SET_DEFAULT, METERED_NO, ROAMING_NO, 512L, 4L, 256L,
|
assertUidTotal(sTemplateWifi, UID_RED, SET_DEFAULT, METERED_NO, ROAMING_NO,
|
||||||
2L, 4);
|
DEFAULT_NETWORK_YES, 512L, 4L, 256L, 2L, 4);
|
||||||
assertUidTotal(sTemplateWifi, UID_RED, SET_FOREGROUND, METERED_NO, ROAMING_NO, 512L, 4L,
|
assertUidTotal(sTemplateWifi, UID_RED, SET_FOREGROUND, METERED_NO, ROAMING_NO,
|
||||||
256L, 2L, 6);
|
DEFAULT_NETWORK_YES, 512L, 4L, 256L, 2L, 6);
|
||||||
assertUidTotal(sTemplateWifi, UID_BLUE, 128L, 1L, 128L, 1L, 0);
|
assertUidTotal(sTemplateWifi, UID_BLUE, 128L, 1L, 128L, 1L, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -648,12 +651,12 @@ public class NetworkStatsServiceTest {
|
|||||||
NetworkStats stats = mSession.getSummaryForAllUid(
|
NetworkStats stats = mSession.getSummaryForAllUid(
|
||||||
sTemplateWifi, Long.MIN_VALUE, Long.MAX_VALUE, true);
|
sTemplateWifi, Long.MIN_VALUE, Long.MAX_VALUE, true);
|
||||||
assertEquals(3, stats.size());
|
assertEquals(3, stats.size());
|
||||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 50L,
|
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
5L, 50L, 5L, 1);
|
DEFAULT_NETWORK_YES, 50L, 5L, 50L, 5L, 1);
|
||||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO, 10L,
|
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO,
|
||||||
1L, 10L, 1L, 1);
|
DEFAULT_NETWORK_YES, 10L, 1L, 10L, 1L, 1);
|
||||||
assertValues(stats, IFACE_ALL, UID_BLUE, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
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
|
// now verify that recent history only contains one uid
|
||||||
final long currentTime = currentTimeMillis();
|
final long currentTime = currentTimeMillis();
|
||||||
@@ -661,7 +664,7 @@ public class NetworkStatsServiceTest {
|
|||||||
sTemplateWifi, currentTime - HOUR_IN_MILLIS, currentTime, true);
|
sTemplateWifi, currentTime - HOUR_IN_MILLIS, currentTime, true);
|
||||||
assertEquals(1, stats.size());
|
assertEquals(1, stats.size());
|
||||||
assertValues(stats, IFACE_ALL, UID_BLUE, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
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
|
@Test
|
||||||
@@ -715,14 +718,14 @@ public class NetworkStatsServiceTest {
|
|||||||
final NetworkStats stats = mSession.getSummaryForAllUid(
|
final NetworkStats stats = mSession.getSummaryForAllUid(
|
||||||
sTemplateWifi, Long.MIN_VALUE, Long.MAX_VALUE, true);
|
sTemplateWifi, Long.MIN_VALUE, Long.MAX_VALUE, true);
|
||||||
assertEquals(4, stats.size());
|
assertEquals(4, stats.size());
|
||||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 128L,
|
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
2L, 128L, 2L, 1);
|
DEFAULT_NETWORK_YES, 128L, 2L, 128L, 2L, 1);
|
||||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO, 64L,
|
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO,
|
||||||
1L, 64L, 1L, 1);
|
DEFAULT_NETWORK_YES, 64L, 1L, 64L, 1L, 1);
|
||||||
assertValues(stats, IFACE_ALL, UID_RED, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
assertValues(stats, IFACE_ALL, UID_RED, SET_FOREGROUND, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
32L, 2L, 32L, 2L, 1);
|
DEFAULT_NETWORK_YES, 32L, 2L, 32L, 2L, 1);
|
||||||
assertValues(stats, IFACE_ALL, UID_RED, SET_FOREGROUND, 0xFAAD, METERED_NO, ROAMING_NO, 1L,
|
assertValues(stats, IFACE_ALL, UID_RED, SET_FOREGROUND, 0xFAAD, METERED_NO, ROAMING_NO,
|
||||||
1L, 1L, 1L, 1);
|
DEFAULT_NETWORK_YES, 1L, 1L, 1L, 1L, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -743,14 +746,14 @@ public class NetworkStatsServiceTest {
|
|||||||
expectCurrentTime();
|
expectCurrentTime();
|
||||||
expectDefaultSettings();
|
expectDefaultSettings();
|
||||||
expectNetworkStatsSummary(buildEmptyStats());
|
expectNetworkStatsSummary(buildEmptyStats());
|
||||||
// Note that all traffic from NetworkManagementService is tagged as METERED_NO and
|
// Note that all traffic from NetworkManagementService is tagged as METERED_NO, ROAMING_NO
|
||||||
// ROAMING_NO, because metered and roaming isn't tracked at that layer. We layer it
|
// and DEFAULT_NETWORK_YES, because these three properties aren't tracked at that layer.
|
||||||
// on top by inspecting the iface properties.
|
// We layer them on top by inspecting the iface properties.
|
||||||
expectNetworkStatsUidDetail(new NetworkStats(getElapsedRealtime(), 1)
|
expectNetworkStatsUidDetail(new NetworkStats(getElapsedRealtime(), 1)
|
||||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO, 128L,
|
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_NO, ROAMING_NO,
|
||||||
2L, 128L, 2L, 0L)
|
DEFAULT_NETWORK_YES, 128L, 2L, 128L, 2L, 0L)
|
||||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO, 64L,
|
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, 0xF00D, METERED_NO, ROAMING_NO,
|
||||||
1L, 64L, 1L, 0L));
|
DEFAULT_NETWORK_YES, 64L, 1L, 64L, 1L, 0L));
|
||||||
mService.incrementOperationCount(UID_RED, 0xF00D, 1);
|
mService.incrementOperationCount(UID_RED, 0xF00D, 1);
|
||||||
|
|
||||||
forcePollAndWaitForIdle();
|
forcePollAndWaitForIdle();
|
||||||
@@ -762,9 +765,9 @@ public class NetworkStatsServiceTest {
|
|||||||
sTemplateWifi, Long.MIN_VALUE, Long.MAX_VALUE, true);
|
sTemplateWifi, Long.MIN_VALUE, Long.MAX_VALUE, true);
|
||||||
assertEquals(2, stats.size());
|
assertEquals(2, stats.size());
|
||||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO,
|
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, TAG_NONE, METERED_YES, ROAMING_NO,
|
||||||
128L, 2L, 128L, 2L, 1);
|
DEFAULT_NETWORK_YES, 128L, 2L, 128L, 2L, 1);
|
||||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, 0xF00D, METERED_YES, ROAMING_NO, 64L,
|
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, 0xF00D, METERED_YES, ROAMING_NO,
|
||||||
1L, 64L, 1L, 1);
|
DEFAULT_NETWORK_YES, 64L, 1L, 64L, 1L, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -790,9 +793,9 @@ public class NetworkStatsServiceTest {
|
|||||||
// on top by inspecting the iface properties.
|
// on top by inspecting the iface properties.
|
||||||
expectNetworkStatsUidDetail(new NetworkStats(getElapsedRealtime(), 1)
|
expectNetworkStatsUidDetail(new NetworkStats(getElapsedRealtime(), 1)
|
||||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_ALL, ROAMING_NO,
|
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, METERED_ALL, ROAMING_NO,
|
||||||
128L, 2L, 128L, 2L, 0L)
|
DEFAULT_NETWORK_YES, 128L, 2L, 128L, 2L, 0L)
|
||||||
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, 0xF00D, METERED_ALL, ROAMING_NO, 64L,
|
.addValues(TEST_IFACE, UID_RED, SET_DEFAULT, 0xF00D, METERED_ALL, ROAMING_NO,
|
||||||
1L, 64L, 1L, 0L));
|
DEFAULT_NETWORK_YES, 64L, 1L, 64L, 1L, 0L));
|
||||||
forcePollAndWaitForIdle();
|
forcePollAndWaitForIdle();
|
||||||
|
|
||||||
// verify service recorded history
|
// verify service recorded history
|
||||||
@@ -803,9 +806,9 @@ public class NetworkStatsServiceTest {
|
|||||||
sTemplateImsi1, Long.MIN_VALUE, Long.MAX_VALUE, true);
|
sTemplateImsi1, Long.MIN_VALUE, Long.MAX_VALUE, true);
|
||||||
assertEquals(2, stats.size());
|
assertEquals(2, stats.size());
|
||||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, TAG_NONE, METERED_ALL, ROAMING_YES,
|
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, TAG_NONE, METERED_ALL, ROAMING_YES,
|
||||||
128L, 2L, 128L, 2L, 0);
|
DEFAULT_NETWORK_YES, 128L, 2L, 128L, 2L, 0);
|
||||||
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, 0xF00D, METERED_ALL, ROAMING_YES, 64L,
|
assertValues(stats, IFACE_ALL, UID_RED, SET_DEFAULT, 0xF00D, METERED_ALL, ROAMING_YES,
|
||||||
1L, 64L, 1L, 0);
|
DEFAULT_NETWORK_YES, 64L, 1L, 64L, 1L, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -984,18 +987,18 @@ public class NetworkStatsServiceTest {
|
|||||||
// verify summary API
|
// verify summary API
|
||||||
final NetworkStats stats = mSession.getSummaryForNetwork(template, start, end);
|
final NetworkStats stats = mSession.getSummaryForNetwork(template, start, end);
|
||||||
assertValues(stats, IFACE_ALL, UID_ALL, SET_ALL, TAG_NONE, METERED_ALL, ROAMING_ALL,
|
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,
|
private void assertUidTotal(NetworkTemplate template, int uid, long rxBytes, long rxPackets,
|
||||||
long txBytes, long txPackets, int operations) throws Exception {
|
long txBytes, long txPackets, int operations) throws Exception {
|
||||||
assertUidTotal(template, uid, SET_ALL, METERED_ALL, ROAMING_ALL, rxBytes, rxPackets,
|
assertUidTotal(template, uid, SET_ALL, METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL,
|
||||||
txBytes, txPackets, operations);
|
rxBytes, rxPackets, txBytes, txPackets, operations);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void assertUidTotal(NetworkTemplate template, int uid, int set, int metered,
|
private void assertUidTotal(NetworkTemplate template, int uid, int set, int metered,
|
||||||
int roaming, long rxBytes, long rxPackets, long txBytes, long txPackets, int operations)
|
int roaming, int defaultNetwork, long rxBytes, long rxPackets, long txBytes,
|
||||||
throws Exception {
|
long txPackets, int operations) throws Exception {
|
||||||
// verify history API
|
// verify history API
|
||||||
final NetworkStatsHistory history = mSession.getHistoryForUid(
|
final NetworkStatsHistory history = mSession.getHistoryForUid(
|
||||||
template, uid, set, TAG_NONE, FIELD_ALL);
|
template, uid, set, TAG_NONE, FIELD_ALL);
|
||||||
@@ -1005,8 +1008,8 @@ public class NetworkStatsServiceTest {
|
|||||||
// verify summary API
|
// verify summary API
|
||||||
final NetworkStats stats = mSession.getSummaryForAllUid(
|
final NetworkStats stats = mSession.getSummaryForAllUid(
|
||||||
template, Long.MIN_VALUE, Long.MAX_VALUE, false);
|
template, Long.MIN_VALUE, Long.MAX_VALUE, false);
|
||||||
assertValues(stats, IFACE_ALL, uid, set, TAG_NONE, metered, roaming, rxBytes, rxPackets,
|
assertValues(stats, IFACE_ALL, uid, set, TAG_NONE, metered, roaming, defaultNetwork,
|
||||||
txBytes, txPackets, operations);
|
rxBytes, rxPackets, txBytes, txPackets, operations);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void expectSystemReady() throws Exception {
|
private void expectSystemReady() throws Exception {
|
||||||
@@ -1104,8 +1107,8 @@ public class NetworkStatsServiceTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void assertValues(NetworkStats stats, String iface, int uid, int set,
|
private static void assertValues(NetworkStats stats, String iface, int uid, int set,
|
||||||
int tag, int metered, int roaming, long rxBytes, long rxPackets, long txBytes,
|
int tag, int metered, int roaming, int defaultNetwork, long rxBytes, long rxPackets,
|
||||||
long txPackets, int operations) {
|
long txBytes, long txPackets, int operations) {
|
||||||
final NetworkStats.Entry entry = new NetworkStats.Entry();
|
final NetworkStats.Entry entry = new NetworkStats.Entry();
|
||||||
final int[] sets;
|
final int[] sets;
|
||||||
if (set == SET_ALL) {
|
if (set == SET_ALL) {
|
||||||
@@ -1128,16 +1131,26 @@ public class NetworkStatsServiceTest {
|
|||||||
meterings = new int[] { metered };
|
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 s : sets) {
|
||||||
for (int r : roamings) {
|
for (int r : roamings) {
|
||||||
for (int m : meterings) {
|
for (int m : meterings) {
|
||||||
final int i = stats.findIndex(iface, uid, s, tag, m, r);
|
for (int d : defaultNetworks) {
|
||||||
|
final int i = stats.findIndex(iface, uid, s, tag, m, r, d);
|
||||||
if (i != -1) {
|
if (i != -1) {
|
||||||
entry.add(stats.getValues(i, null));
|
entry.add(stats.getValues(i, null));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
assertEquals("unexpected rxBytes", rxBytes, entry.rxBytes);
|
assertEquals("unexpected rxBytes", rxBytes, entry.rxBytes);
|
||||||
assertEquals("unexpected rxPackets", rxPackets, entry.rxPackets);
|
assertEquals("unexpected rxPackets", rxPackets, entry.rxPackets);
|
||||||
|
|||||||
Reference in New Issue
Block a user