1eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey/* 2eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey * Copyright (C) 2011 The Android Open Source Project 3eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey * 4eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey * Licensed under the Apache License, Version 2.0 (the "License"); 5eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey * you may not use this file except in compliance with the License. 6eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey * You may obtain a copy of the License at 7eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey * 8eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey * http://www.apache.org/licenses/LICENSE-2.0 9eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey * 10eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey * Unless required by applicable law or agreed to in writing, software 11eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey * distributed under the License is distributed on an "AS IS" BASIS, 12eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey * See the License for the specific language governing permissions and 14eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey * limitations under the License. 15eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey */ 16eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 17eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkeypackage android.net; 18eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 19b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkeyimport static android.net.NetworkStats.SET_DEFAULT; 208e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkeyimport static android.net.NetworkStats.SET_FOREGROUND; 21905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkeyimport static android.net.NetworkStats.SET_ALL; 22905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkeyimport static android.net.NetworkStats.IFACE_ALL; 231b5a2a96f793211bfbd39aa29cc41031dfa23950Jeff Sharkeyimport static android.net.NetworkStats.TAG_NONE; 248e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkeyimport static android.net.NetworkStats.UID_ALL; 251b5a2a96f793211bfbd39aa29cc41031dfa23950Jeff Sharkey 26eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkeyimport android.test.suitebuilder.annotation.SmallTest; 27eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 281059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkeyimport com.google.android.collect.Sets; 291059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey 30eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkeyimport junit.framework.TestCase; 31eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 321059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkeyimport java.util.HashSet; 331059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey 34eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey@SmallTest 35eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkeypublic class NetworkStatsTest extends TestCase { 36eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 37eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey private static final String TEST_IFACE = "test0"; 388e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey private static final String TEST_IFACE2 = "test2"; 394a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey private static final int TEST_UID = 1001; 404a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey private static final long TEST_START = 1194220800000L; 41eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 42eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey public void testFindIndex() throws Exception { 434a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey final NetworkStats stats = new NetworkStats(TEST_START, 3) 44b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey .addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 1024L, 8L, 0L, 0L, 10) 45b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 0L, 0L, 1024L, 8L, 11) 46b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey .addValues(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, 1024L, 8L, 1024L, 8L, 12); 47b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey 48b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertEquals(2, stats.findIndex(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE)); 49b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertEquals(2, stats.findIndex(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE)); 50b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertEquals(0, stats.findIndex(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE)); 51b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertEquals(-1, stats.findIndex(TEST_IFACE, 6, SET_DEFAULT, TAG_NONE)); 52eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey } 53eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 54163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey public void testFindIndexHinted() { 55163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey final NetworkStats stats = new NetworkStats(TEST_START, 3) 56163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey .addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 1024L, 8L, 0L, 0L, 10) 57163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 0L, 0L, 1024L, 8L, 11) 58163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey .addValues(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, 1024L, 8L, 1024L, 8L, 12) 59163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey .addValues(TEST_IFACE2, 100, SET_FOREGROUND, TAG_NONE, 1024L, 8L, 0L, 0L, 10) 60163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey .addValues(TEST_IFACE2, 101, SET_DEFAULT, 0xF00D, 0L, 0L, 1024L, 8L, 11) 61163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey .addValues(TEST_IFACE2, 102, SET_DEFAULT, TAG_NONE, 1024L, 8L, 1024L, 8L, 12); 62163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey 63163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey // verify that we correctly find across regardless of hinting 64163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey for (int hint = 0; hint < stats.size(); hint++) { 65163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey assertEquals(0, stats.findIndexHinted(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, hint)); 66163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey assertEquals(1, stats.findIndexHinted(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, hint)); 67163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey assertEquals(2, stats.findIndexHinted(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, hint)); 68163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey assertEquals(3, stats.findIndexHinted(TEST_IFACE2, 100, SET_FOREGROUND, TAG_NONE, hint)); 69163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey assertEquals(4, stats.findIndexHinted(TEST_IFACE2, 101, SET_DEFAULT, 0xF00D, hint)); 70163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey assertEquals(5, stats.findIndexHinted(TEST_IFACE2, 102, SET_DEFAULT, TAG_NONE, hint)); 71163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey assertEquals(-1, stats.findIndexHinted(TEST_IFACE, 6, SET_DEFAULT, TAG_NONE, hint)); 72163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey } 73163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey } 74163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey 754a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey public void testAddEntryGrow() throws Exception { 764a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey final NetworkStats stats = new NetworkStats(TEST_START, 2); 774a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey 78fd8be3e5e7420f3cca591daeec8a44487f5f65aaJeff Sharkey assertEquals(0, stats.size()); 79d37948f6ed1667d077e0e3a38808f42f981ddcc2Jeff Sharkey assertEquals(2, stats.internalSize()); 804a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey 81b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, 1L, 1L, 2L, 2L, 3); 82b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, 2L, 2L, 2L, 2L, 4); 834a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey 84fd8be3e5e7420f3cca591daeec8a44487f5f65aaJeff Sharkey assertEquals(2, stats.size()); 85d37948f6ed1667d077e0e3a38808f42f981ddcc2Jeff Sharkey assertEquals(2, stats.internalSize()); 864a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey 87b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, 3L, 30L, 4L, 40L, 7); 88b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, 4L, 40L, 4L, 40L, 8); 89b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey stats.addValues(TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, 5L, 50L, 5L, 50L, 10); 904a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey 91fd8be3e5e7420f3cca591daeec8a44487f5f65aaJeff Sharkey assertEquals(5, stats.size()); 92d37948f6ed1667d077e0e3a38808f42f981ddcc2Jeff Sharkey assertTrue(stats.internalSize() >= 5); 934a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey 94b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertValues(stats, 0, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, 1L, 1L, 2L, 2L, 3); 95b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertValues(stats, 1, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, 2L, 2L, 2L, 2L, 4); 96b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertValues(stats, 2, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, 3L, 30L, 4L, 40L, 7); 97b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertValues(stats, 3, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, 4L, 40L, 4L, 40L, 8); 98b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertValues(stats, 4, TEST_IFACE, TEST_UID, SET_DEFAULT, TAG_NONE, 5L, 50L, 5L, 50L, 10); 994a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey } 1004a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey 1011b5a2a96f793211bfbd39aa29cc41031dfa23950Jeff Sharkey public void testCombineExisting() throws Exception { 1021b5a2a96f793211bfbd39aa29cc41031dfa23950Jeff Sharkey final NetworkStats stats = new NetworkStats(TEST_START, 10); 1031b5a2a96f793211bfbd39aa29cc41031dfa23950Jeff Sharkey 104b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey stats.addValues(TEST_IFACE, 1001, SET_DEFAULT, TAG_NONE, 512L, 4L, 256L, 2L, 10); 105b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey stats.addValues(TEST_IFACE, 1001, SET_DEFAULT, 0xff, 128L, 1L, 128L, 1L, 2); 106b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey stats.combineValues(TEST_IFACE, 1001, SET_DEFAULT, TAG_NONE, -128L, -1L, -128L, -1L, -1); 1071b5a2a96f793211bfbd39aa29cc41031dfa23950Jeff Sharkey 108b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertValues(stats, 0, TEST_IFACE, 1001, SET_DEFAULT, TAG_NONE, 384L, 3L, 128L, 1L, 9); 109b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertValues(stats, 1, TEST_IFACE, 1001, SET_DEFAULT, 0xff, 128L, 1L, 128L, 1L, 2); 1101b5a2a96f793211bfbd39aa29cc41031dfa23950Jeff Sharkey 1111b5a2a96f793211bfbd39aa29cc41031dfa23950Jeff Sharkey // now try combining that should create row 112b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey stats.combineValues(TEST_IFACE, 5005, SET_DEFAULT, TAG_NONE, 128L, 1L, 128L, 1L, 3); 113b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertValues(stats, 2, TEST_IFACE, 5005, SET_DEFAULT, TAG_NONE, 128L, 1L, 128L, 1L, 3); 114b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey stats.combineValues(TEST_IFACE, 5005, SET_DEFAULT, TAG_NONE, 128L, 1L, 128L, 1L, 3); 115b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertValues(stats, 2, TEST_IFACE, 5005, SET_DEFAULT, TAG_NONE, 256L, 2L, 256L, 2L, 6); 1161b5a2a96f793211bfbd39aa29cc41031dfa23950Jeff Sharkey } 1171b5a2a96f793211bfbd39aa29cc41031dfa23950Jeff Sharkey 118eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey public void testSubtractIdenticalData() throws Exception { 1194a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey final NetworkStats before = new NetworkStats(TEST_START, 2) 120b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey .addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 1024L, 8L, 0L, 0L, 11) 121b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 0L, 0L, 1024L, 8L, 12); 122eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 1234a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey final NetworkStats after = new NetworkStats(TEST_START, 2) 124b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey .addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 1024L, 8L, 0L, 0L, 11) 125b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 0L, 0L, 1024L, 8L, 12); 126eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 1273f3913550c10792edb8aecf66cc83c3db5c8b311Jeff Sharkey final NetworkStats result = after.subtract(before); 128eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 12975279904202357565cf5a1cb11148d01f42b4569Jeff Sharkey // identical data should result in zero delta 130b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertValues(result, 0, TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 0L, 0L, 0L, 0L, 0); 131b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertValues(result, 1, TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 0L, 0L, 0L, 0L, 0); 132eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey } 133eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 134eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey public void testSubtractIdenticalRows() throws Exception { 1354a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey final NetworkStats before = new NetworkStats(TEST_START, 2) 136b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey .addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 1024L, 8L, 0L, 0L, 11) 137b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 0L, 0L, 1024L, 8L, 12); 138eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 1394a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey final NetworkStats after = new NetworkStats(TEST_START, 2) 140b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey .addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 1025L, 9L, 2L, 1L, 15) 141b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 3L, 1L, 1028L, 9L, 20); 142eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 1433f3913550c10792edb8aecf66cc83c3db5c8b311Jeff Sharkey final NetworkStats result = after.subtract(before); 144eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 145eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey // expect delta between measurements 146b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertValues(result, 0, TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 1L, 1L, 2L, 1L, 4); 147b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertValues(result, 1, TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 3L, 1L, 4L, 1L, 8); 148eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey } 149eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 150eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey public void testSubtractNewRows() throws Exception { 1514a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey final NetworkStats before = new NetworkStats(TEST_START, 2) 152b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey .addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 1024L, 8L, 0L, 0L, 11) 153b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 0L, 0L, 1024L, 8L, 12); 154eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 1554a97122ebf4d92a3f94402041729d77905e6c0c0Jeff Sharkey final NetworkStats after = new NetworkStats(TEST_START, 3) 156b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey .addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 1024L, 8L, 0L, 0L, 11) 157b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 0L, 0L, 1024L, 8L, 12) 158b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey .addValues(TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, 1024L, 8L, 1024L, 8L, 20); 159eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 1603f3913550c10792edb8aecf66cc83c3db5c8b311Jeff Sharkey final NetworkStats result = after.subtract(before); 161eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 162eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey // its okay to have new rows 163b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertValues(result, 0, TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 0L, 0L, 0L, 0L, 0); 164b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertValues(result, 1, TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 0L, 0L, 0L, 0L, 0); 165b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertValues(result, 2, TEST_IFACE, 102, SET_DEFAULT, TAG_NONE, 1024L, 8L, 1024L, 8L, 20); 166eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey } 167eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 1688e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey public void testSubtractMissingRows() throws Exception { 1698e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey final NetworkStats before = new NetworkStats(TEST_START, 2) 1708e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey .addValues(TEST_IFACE, UID_ALL, SET_DEFAULT, TAG_NONE, 1024L, 0L, 0L, 0L, 0) 1718e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey .addValues(TEST_IFACE2, UID_ALL, SET_DEFAULT, TAG_NONE, 2048L, 0L, 0L, 0L, 0); 1728e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey 1738e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey final NetworkStats after = new NetworkStats(TEST_START, 1) 1748e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey .addValues(TEST_IFACE2, UID_ALL, SET_DEFAULT, TAG_NONE, 2049L, 2L, 3L, 4L, 0); 1758e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey 1768e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey final NetworkStats result = after.subtract(before); 1778e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey 1788e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey // should silently drop omitted rows 1798e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey assertEquals(1, result.size()); 1808e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey assertValues(result, 0, TEST_IFACE2, UID_ALL, SET_DEFAULT, TAG_NONE, 1L, 2L, 3L, 4L, 0); 1818e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey assertEquals(4L, result.getTotalBytes()); 1828e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey } 1838e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey 1848e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey public void testTotalBytes() throws Exception { 1858e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey final NetworkStats iface = new NetworkStats(TEST_START, 2) 1868e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey .addValues(TEST_IFACE, UID_ALL, SET_DEFAULT, TAG_NONE, 128L, 0L, 0L, 0L, 0L) 1878e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey .addValues(TEST_IFACE2, UID_ALL, SET_DEFAULT, TAG_NONE, 256L, 0L, 0L, 0L, 0L); 1888e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey assertEquals(384L, iface.getTotalBytes()); 1898e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey 1908e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey final NetworkStats uidSet = new NetworkStats(TEST_START, 3) 1918e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey .addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 32L, 0L, 0L, 0L, 0L) 1928e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 32L, 0L, 0L, 0L, 0L) 1938e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey .addValues(TEST_IFACE, 101, SET_FOREGROUND, TAG_NONE, 32L, 0L, 0L, 0L, 0L); 1948e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey assertEquals(96L, uidSet.getTotalBytes()); 1958e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey 1968e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey final NetworkStats uidTag = new NetworkStats(TEST_START, 3) 1978e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey .addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 16L, 0L, 0L, 0L, 0L) 1988e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey .addValues(TEST_IFACE2, 100, SET_DEFAULT, TAG_NONE, 16L, 0L, 0L, 0L, 0L) 1998e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey .addValues(TEST_IFACE2, 100, SET_DEFAULT, 0xF00D, 8L, 0L, 0L, 0L, 0L) 2008e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey .addValues(TEST_IFACE2, 100, SET_FOREGROUND, TAG_NONE, 16L, 0L, 0L, 0L, 0L) 2018e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 16L, 0L, 0L, 0L, 0L) 2028e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, 0xF00D, 8L, 0L, 0L, 0L, 0L); 2038e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey assertEquals(64L, uidTag.getTotalBytes()); 2048e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey } 2058e9992ae5053a3ac52d28a5a892aed0a0798c7abJeff Sharkey 206905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey public void testGroupedByIfaceEmpty() throws Exception { 207905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey final NetworkStats uidStats = new NetworkStats(TEST_START, 3); 208905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey final NetworkStats grouped = uidStats.groupedByIface(); 209905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey 210905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey assertEquals(0, uidStats.size()); 211905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey assertEquals(0, grouped.size()); 212905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey } 213905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey 214905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey public void testGroupedByIfaceAll() throws Exception { 215905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey final NetworkStats uidStats = new NetworkStats(TEST_START, 3) 216905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey .addValues(IFACE_ALL, 100, SET_ALL, TAG_NONE, 128L, 8L, 0L, 2L, 20L) 217905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey .addValues(IFACE_ALL, 101, SET_FOREGROUND, TAG_NONE, 128L, 8L, 0L, 2L, 20L); 218905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey final NetworkStats grouped = uidStats.groupedByIface(); 219905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey 220905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey assertEquals(2, uidStats.size()); 221905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey assertEquals(1, grouped.size()); 222905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey 223905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey assertValues(grouped, 0, IFACE_ALL, UID_ALL, SET_ALL, TAG_NONE, 256L, 16L, 0L, 4L, 0L); 224905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey } 225905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey 226905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey public void testGroupedByIface() throws Exception { 227905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey final NetworkStats uidStats = new NetworkStats(TEST_START, 3) 228905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey .addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 128L, 8L, 0L, 2L, 20L) 229905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey .addValues(TEST_IFACE2, 100, SET_DEFAULT, TAG_NONE, 512L, 32L, 0L, 0L, 0L) 230905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey .addValues(TEST_IFACE2, 100, SET_DEFAULT, 0xF00D, 64L, 4L, 0L, 0L, 0L) 231905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey .addValues(TEST_IFACE2, 100, SET_FOREGROUND, TAG_NONE, 512L, 32L, 0L, 0L, 0L) 232905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 128L, 8L, 0L, 0L, 0L) 233905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, 0xF00D, 128L, 8L, 0L, 0L, 0L); 234905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey 235905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey final NetworkStats grouped = uidStats.groupedByIface(); 236905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey 237905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey assertEquals(6, uidStats.size()); 238905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey 239905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey assertEquals(2, grouped.size()); 240905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey assertValues(grouped, 0, TEST_IFACE, UID_ALL, SET_ALL, TAG_NONE, 256L, 16L, 0L, 2L, 0L); 241905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey assertValues(grouped, 1, TEST_IFACE2, UID_ALL, SET_ALL, TAG_NONE, 1024L, 64L, 0L, 0L, 0L); 242905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey } 243905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey 244905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey public void testAddAllValues() { 245905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey final NetworkStats first = new NetworkStats(TEST_START, 5) 246905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey .addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 32L, 0L, 0L, 0L, 0L) 247905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey .addValues(TEST_IFACE, 100, SET_FOREGROUND, TAG_NONE, 32L, 0L, 0L, 0L, 0L); 248905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey 249905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey final NetworkStats second = new NetworkStats(TEST_START, 2) 250905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey .addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 32L, 0L, 0L, 0L, 0L) 251905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey .addValues(TEST_IFACE2, UID_ALL, SET_DEFAULT, TAG_NONE, 32L, 0L, 0L, 0L, 0L); 252905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey 253905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey first.combineAllValues(second); 254905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey 255905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey assertEquals(3, first.size()); 256905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey assertValues(first, 0, TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 64L, 0L, 0L, 0L, 0L); 257905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey assertValues(first, 1, TEST_IFACE, 100, SET_FOREGROUND, TAG_NONE, 32L, 0L, 0L, 0L, 0L); 258905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey assertValues(first, 2, TEST_IFACE2, UID_ALL, SET_DEFAULT, TAG_NONE, 32L, 0L, 0L, 0L, 0L); 259905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey } 260905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey 2611059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey public void testGetTotal() { 2621059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey final NetworkStats stats = new NetworkStats(TEST_START, 3) 2631059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey .addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 128L, 8L, 0L, 2L, 20L) 2641059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey .addValues(TEST_IFACE2, 100, SET_DEFAULT, TAG_NONE, 512L, 32L, 0L, 0L, 0L) 2651059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey .addValues(TEST_IFACE2, 100, SET_DEFAULT, 0xF00D, 64L, 4L, 0L, 0L, 0L) 2661059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey .addValues(TEST_IFACE2, 100, SET_FOREGROUND, TAG_NONE, 512L, 32L, 0L, 0L, 0L) 2671059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 128L, 8L, 0L, 0L, 0L) 2681059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, 0xF00D, 128L, 8L, 0L, 0L, 0L); 2691059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey 2701059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey assertValues(stats.getTotal(null), 1280L, 80L, 0L, 2L, 20L); 2711059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey assertValues(stats.getTotal(null, 100), 1152L, 72L, 0L, 2L, 20L); 2721059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey assertValues(stats.getTotal(null, 101), 128L, 8L, 0L, 0L, 0L); 2731059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey 2741059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey final HashSet<String> ifaces = Sets.newHashSet(); 2751059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey assertValues(stats.getTotal(null, ifaces), 0L, 0L, 0L, 0L, 0L); 2761059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey 2771059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey ifaces.add(TEST_IFACE2); 2781059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey assertValues(stats.getTotal(null, ifaces), 1024L, 64L, 0L, 0L, 0L); 2791059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey } 2801059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey 281163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey public void testWithoutUid() throws Exception { 282163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey final NetworkStats before = new NetworkStats(TEST_START, 3) 283163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey .addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 128L, 8L, 0L, 2L, 20L) 284163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey .addValues(TEST_IFACE2, 100, SET_DEFAULT, TAG_NONE, 512L, 32L, 0L, 0L, 0L) 285163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey .addValues(TEST_IFACE2, 100, SET_DEFAULT, 0xF00D, 64L, 4L, 0L, 0L, 0L) 286163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey .addValues(TEST_IFACE2, 100, SET_FOREGROUND, TAG_NONE, 512L, 32L, 0L, 0L, 0L) 287163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 128L, 8L, 0L, 0L, 0L) 288163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey .addValues(TEST_IFACE, 101, SET_DEFAULT, 0xF00D, 128L, 8L, 0L, 0L, 0L); 289163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey 290daa57e8d1866fe4579c280c41604f3660db7cd01Jeff Sharkey final NetworkStats after = before.withoutUids(new int[] { 100 }); 291163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey assertEquals(6, before.size()); 292163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey assertEquals(2, after.size()); 293163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey assertValues(after, 0, TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 128L, 8L, 0L, 0L, 0L); 294163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey assertValues(after, 1, TEST_IFACE, 101, SET_DEFAULT, 0xF00D, 128L, 8L, 0L, 0L, 0L); 295163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey } 296163e6443f27884a9bfcb9a48ef606dc635852c23Jeff Sharkey 2974abb1b8ef64dc4cd71966b59dc5d72a15055bf13Jeff Sharkey public void testClone() throws Exception { 2984abb1b8ef64dc4cd71966b59dc5d72a15055bf13Jeff Sharkey final NetworkStats original = new NetworkStats(TEST_START, 5) 2994abb1b8ef64dc4cd71966b59dc5d72a15055bf13Jeff Sharkey .addValues(TEST_IFACE, 100, SET_DEFAULT, TAG_NONE, 128L, 8L, 0L, 2L, 20L) 3004abb1b8ef64dc4cd71966b59dc5d72a15055bf13Jeff Sharkey .addValues(TEST_IFACE2, 100, SET_DEFAULT, TAG_NONE, 512L, 32L, 0L, 0L, 0L); 3014abb1b8ef64dc4cd71966b59dc5d72a15055bf13Jeff Sharkey 3024abb1b8ef64dc4cd71966b59dc5d72a15055bf13Jeff Sharkey // make clone and mutate original 3034abb1b8ef64dc4cd71966b59dc5d72a15055bf13Jeff Sharkey final NetworkStats clone = original.clone(); 3044abb1b8ef64dc4cd71966b59dc5d72a15055bf13Jeff Sharkey original.addValues(TEST_IFACE, 101, SET_DEFAULT, TAG_NONE, 128L, 8L, 0L, 0L, 0L); 3054abb1b8ef64dc4cd71966b59dc5d72a15055bf13Jeff Sharkey 3064abb1b8ef64dc4cd71966b59dc5d72a15055bf13Jeff Sharkey assertEquals(3, original.size()); 3074abb1b8ef64dc4cd71966b59dc5d72a15055bf13Jeff Sharkey assertEquals(2, clone.size()); 3084abb1b8ef64dc4cd71966b59dc5d72a15055bf13Jeff Sharkey 3094abb1b8ef64dc4cd71966b59dc5d72a15055bf13Jeff Sharkey assertEquals(128L + 512L + 128L, original.getTotalBytes()); 3104abb1b8ef64dc4cd71966b59dc5d72a15055bf13Jeff Sharkey assertEquals(128L + 512L, clone.getTotalBytes()); 3114abb1b8ef64dc4cd71966b59dc5d72a15055bf13Jeff Sharkey } 3124abb1b8ef64dc4cd71966b59dc5d72a15055bf13Jeff Sharkey 313b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey private static void assertValues(NetworkStats stats, int index, String iface, int uid, int set, 314905b5891d2aa802f447ac2ce5d77b6c5ba06277aJeff Sharkey int tag, long rxBytes, long rxPackets, long txBytes, long txPackets, long operations) { 315d37948f6ed1667d077e0e3a38808f42f981ddcc2Jeff Sharkey final NetworkStats.Entry entry = stats.getValues(index, null); 3161059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey assertValues(entry, iface, uid, set, tag); 3171059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey assertValues(entry, rxBytes, rxPackets, txBytes, txPackets, operations); 3181059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey } 3191059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey 3201059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey private static void assertValues( 3211059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey NetworkStats.Entry entry, String iface, int uid, int set, int tag) { 322d37948f6ed1667d077e0e3a38808f42f981ddcc2Jeff Sharkey assertEquals(iface, entry.iface); 323d37948f6ed1667d077e0e3a38808f42f981ddcc2Jeff Sharkey assertEquals(uid, entry.uid); 324b5d55e302d2253e4bfb233ea705caf258cdc4cb9Jeff Sharkey assertEquals(set, entry.set); 325d37948f6ed1667d077e0e3a38808f42f981ddcc2Jeff Sharkey assertEquals(tag, entry.tag); 3261059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey } 3271059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey 3281059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey private static void assertValues(NetworkStats.Entry entry, long rxBytes, long rxPackets, 3291059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey long txBytes, long txPackets, long operations) { 330d37948f6ed1667d077e0e3a38808f42f981ddcc2Jeff Sharkey assertEquals(rxBytes, entry.rxBytes); 331d37948f6ed1667d077e0e3a38808f42f981ddcc2Jeff Sharkey assertEquals(rxPackets, entry.rxPackets); 332d37948f6ed1667d077e0e3a38808f42f981ddcc2Jeff Sharkey assertEquals(txBytes, entry.txBytes); 333d37948f6ed1667d077e0e3a38808f42f981ddcc2Jeff Sharkey assertEquals(txPackets, entry.txPackets); 334a63ba59260cd1bb3f5c16e395ace45a61f1d4461Jeff Sharkey assertEquals(operations, entry.operations); 3351b5a2a96f793211bfbd39aa29cc41031dfa23950Jeff Sharkey } 3361b5a2a96f793211bfbd39aa29cc41031dfa23950Jeff Sharkey 337eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey} 338