Merge "Make operation counts monotonically increase." into ics-mr1

This commit is contained in:
Jeff Sharkey
2011-11-08 23:43:38 -08:00
committed by Android (Google) Code Review
3 changed files with 28 additions and 2 deletions

View File

@ -165,6 +165,17 @@ public class NetworkStats implements Parcelable {
dest.writeLongArray(operations); dest.writeLongArray(operations);
} }
@Override
public NetworkStats clone() {
final NetworkStats clone = new NetworkStats(elapsedRealtime, size);
NetworkStats.Entry entry = null;
for (int i = 0; i < size; i++) {
entry = getValues(i, entry);
clone.addValues(entry);
}
return clone;
}
// @VisibleForTesting // @VisibleForTesting
public NetworkStats addIfaceValues( public NetworkStats addIfaceValues(
String iface, long rxBytes, long rxPackets, long txBytes, long txPackets) { String iface, long rxBytes, long rxPackets, long txBytes, long txPackets) {

View File

@ -294,6 +294,22 @@ public class NetworkStatsTest extends TestCase {
assertValues(after, 1, TEST_IFACE, 101, SET_DEFAULT, 0xF00D, 128L, 8L, 0L, 0L, 0L); assertValues(after, 1, TEST_IFACE, 101, SET_DEFAULT, 0xF00D, 128L, 8L, 0L, 0L, 0L);
} }
public void testClone() throws Exception {
final NetworkStats original = new NetworkStats(TEST_START, 5)
.addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 128L, 8L, 0L, 2L, 20L)
.addValues(TEST_IFACE2, 100, SET_DEFAULT, TAG_NONE, 512L, 32L, 0L, 0L, 0L);
// make clone and mutate original
final NetworkStats clone = original.clone();
original.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 128L, 8L, 0L, 0L, 0L);
assertEquals(3, original.size());
assertEquals(2, clone.size());
assertEquals(128L + 512L + 128L, original.getTotalBytes());
assertEquals(128L + 512L, clone.getTotalBytes());
}
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, long rxBytes, long rxPackets, long txBytes, long txPackets, long operations) { int tag, long rxBytes, long rxPackets, long txBytes, long txPackets, long operations) {
final NetworkStats.Entry entry = stats.getValues(index, null); final NetworkStats.Entry entry = stats.getValues(index, null);

View File

@ -971,8 +971,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
} }
mLastPollUidSnapshot = uidSnapshot; mLastPollUidSnapshot = uidSnapshot;
mLastPollOperationsSnapshot = mOperations; mLastPollOperationsSnapshot = mOperations.clone();
mOperations = new NetworkStats(0L, 10);
} }
/** /**