Add a performance test for filteredClone.

atest ConnectivityCoverageTests:android.net.connectivity.android.net.NetworkStatsTest#testFilteredPerformance -- --auto-collect DEVICE_TRACE

Flag: TEST_ONLY
Change-Id: Id47edc05bb39ce334da819129d4ee13b0796cbb5
This commit is contained in:
Richard Uhler 2025-05-09 11:32:48 -07:00 • committed by Lorenzo Colitti
commit bcd9653ed3

View file

@ -42,6 +42,7 @@ import static org.junit.Assert.assertTrue;
import android.os.Build;
import android.os.Process;
import android.os.Trace;
import android.util.ArrayMap;
import androidx.test.filters.SmallTest;
@ -876,6 +877,34 @@ public class NetworkStatsTest {
assertEquals(entry3, filtered.getValues(1, null));
}
@Test
public void testFilteredPerformance() {
final int size = 100000;
NetworkStats stats = new NetworkStats(TEST_START, size);
for (int i = 0; i < size; ++i) {
NetworkStats.Entry entry = new NetworkStats.Entry(
"test", 10100 + i % 100, SET_DEFAULT, i % 2, METERED_NO, ROAMING_NO,
DEFAULT_NETWORK_NO, 50000L, 25L, 100000L, 50L, 0L);
stats.insertEntry(entry);
}
final int iterations = 1000;
final int filterTag = 0;
final int filterUid = 10100;
Trace.beginSection("MajorityFilter");
for (int i = 0; i < iterations; ++i) {
stats.filteredClone(UID_ALL, INTERFACES_ALL, filterTag);
}
Trace.endSection();
Trace.beginSection("MinorityFilter");
for (int i = 0; i < iterations; ++i) {
stats.filteredClone(filterUid, INTERFACES_ALL, TAG_ALL);
}
Trace.endSection();
}
@Test
public void testFilter_InterfaceFilter() {
final String testIf1 = "testif1";