NetworkStatsTest.java revision 75279904202357565cf5a1cb11148d01f42b4569
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 19eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkeyimport android.os.SystemClock; 20eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkeyimport android.test.suitebuilder.annotation.SmallTest; 21eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 22eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkeyimport junit.framework.TestCase; 23eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 24eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey@SmallTest 25eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkeypublic class NetworkStatsTest extends TestCase { 26eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 27eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey private static final String TEST_IFACE = "test0"; 28eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 29eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey public void testFindIndex() throws Exception { 30eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey final NetworkStats stats = new NetworkStats.Builder(SystemClock.elapsedRealtime(), 3) 31eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey .addEntry(TEST_IFACE, 100, 1024, 0) 32eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey .addEntry(TEST_IFACE, 101, 0, 1024) 33eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey .addEntry(TEST_IFACE, 102, 1024, 1024).build(); 34eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 35eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(2, stats.findIndex(TEST_IFACE, 102)); 36eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(2, stats.findIndex(TEST_IFACE, 102)); 37eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(0, stats.findIndex(TEST_IFACE, 100)); 38eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(-1, stats.findIndex(TEST_IFACE, 6)); 39eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey } 40eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 41eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey public void testSubtractIdenticalData() throws Exception { 42eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey final NetworkStats before = new NetworkStats.Builder(SystemClock.elapsedRealtime(), 2) 43eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey .addEntry(TEST_IFACE, 100, 1024, 0) 44eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey .addEntry(TEST_IFACE, 101, 0, 1024).build(); 45eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 46eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey final NetworkStats after = new NetworkStats.Builder(SystemClock.elapsedRealtime(), 2) 47eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey .addEntry(TEST_IFACE, 100, 1024, 0) 48eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey .addEntry(TEST_IFACE, 101, 0, 1024).build(); 49eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 5075279904202357565cf5a1cb11148d01f42b4569Jeff Sharkey final NetworkStats result = after.subtract(before, true); 51eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 5275279904202357565cf5a1cb11148d01f42b4569Jeff Sharkey // identical data should result in zero delta 53eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(0, result.rx[0]); 54eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(0, result.tx[0]); 55eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(0, result.rx[1]); 56eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(0, result.tx[1]); 57eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey } 58eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 59eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey public void testSubtractIdenticalRows() throws Exception { 60eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey final NetworkStats before = new NetworkStats.Builder(SystemClock.elapsedRealtime(), 2) 61eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey .addEntry(TEST_IFACE, 100, 1024, 0) 62eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey .addEntry(TEST_IFACE, 101, 0, 1024).build(); 63eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 64eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey final NetworkStats after = new NetworkStats.Builder(SystemClock.elapsedRealtime(), 2) 65eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey .addEntry(TEST_IFACE, 100, 1025, 2) 66eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey .addEntry(TEST_IFACE, 101, 3, 1028).build(); 67eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 6875279904202357565cf5a1cb11148d01f42b4569Jeff Sharkey final NetworkStats result = after.subtract(before, true); 69eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 70eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey // expect delta between measurements 71eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(1, result.rx[0]); 72eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(2, result.tx[0]); 73eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(3, result.rx[1]); 74eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(4, result.tx[1]); 75eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey } 76eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 77eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey public void testSubtractNewRows() throws Exception { 78eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey final NetworkStats before = new NetworkStats.Builder(SystemClock.elapsedRealtime(), 2) 79eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey .addEntry(TEST_IFACE, 100, 1024, 0) 80eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey .addEntry(TEST_IFACE, 101, 0, 1024).build(); 81eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 82eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey final NetworkStats after = new NetworkStats.Builder(SystemClock.elapsedRealtime(), 3) 83eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey .addEntry(TEST_IFACE, 100, 1024, 0) 84eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey .addEntry(TEST_IFACE, 101, 0, 1024) 85eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey .addEntry(TEST_IFACE, 102, 1024, 1024).build(); 86eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 8775279904202357565cf5a1cb11148d01f42b4569Jeff Sharkey final NetworkStats result = after.subtract(before, true); 88eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 89eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey // its okay to have new rows 90eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(0, result.rx[0]); 91eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(0, result.tx[0]); 92eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(0, result.rx[1]); 93eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(0, result.tx[1]); 94eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(1024, result.rx[2]); 95eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey assertEquals(1024, result.tx[2]); 96eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey } 97eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey 98eedcb9525ba5befee2ba6ebb7a9ee3f13395c2a3Jeff Sharkey} 99