Merge "DefaultNetworkEvent metrics: rehaul" am: addecd1491 am: d025358166

am: 83e05af631

Change-Id: Ia5c19bfbdf9eea553f4517f312295c14c2f02046
This commit is contained in:
Hugo Benichi
2017-11-06 07:41:53 +00:00
committed by android-build-merger
4 changed files with 130 additions and 146 deletions

View File

@@ -198,37 +198,33 @@ public class IpConnectivityEventBuilderTest {
@Test
public void testDefaultNetworkEventSerialization() {
DefaultNetworkEvent ev = new DefaultNetworkEvent();
DefaultNetworkEvent ev = new DefaultNetworkEvent(1001);
ev.netId = 102;
ev.prevNetId = 101;
ev.transportTypes = new int[]{1, 2, 3};
ev.prevIPv4 = true;
ev.prevIPv6 = true;
ev.transports = 2;
ev.previousTransports = 4;
ev.ipv4 = true;
ev.initialScore = 20;
ev.finalScore = 60;
ev.durationMs = 54;
ev.validatedMs = 27;
String want = String.join("\n",
"dropped_events: 0",
"events <",
" if_name: \"\"",
" link_layer: 0",
" link_layer: 4",
" network_id: 102",
" time_ms: 0",
" transports: 0",
" transports: 2",
" default_network_event <",
" default_network_duration_ms: 0",
" final_score: 0",
" initial_score: 0",
" ip_support: 0",
" network_id <",
" network_id: 102",
" >",
" default_network_duration_ms: 54",
" final_score: 60",
" initial_score: 20",
" ip_support: 1",
" no_default_network_duration_ms: 0",
" previous_network_id <",
" network_id: 101",
" >",
" previous_network_ip_support: 3",
" transport_types: 1",
" transport_types: 2",
" transport_types: 3",
" previous_default_network_link_layer: 1",
" previous_network_ip_support: 0",
" validation_duration_ms: 27",
" >",
">",
"version: 2\n");

View File

@@ -188,119 +188,99 @@ public class IpConnectivityMetricsTest {
{makeNai(102, 50, true, true, cell), makeNai(103, 20, true, false, wifi)},
};
long timeMs = mService.mDefaultNetworkMetrics.creationTimeMs;
long durationMs = 1001;
for (NetworkAgentInfo[] pair : defaultNetworks) {
mService.mDefaultNetworkMetrics.logDefaultNetworkEvent(pair[1], pair[0]);
timeMs += durationMs;
durationMs += durationMs;
mService.mDefaultNetworkMetrics.logDefaultNetworkEvent(timeMs, pair[1], pair[0]);
}
String want = String.join("\n",
"dropped_events: 0",
"events <",
" if_name: \"\"",
" link_layer: 0",
" network_id: 100",
" time_ms: 0",
" transports: 0",
" default_network_event <",
" default_network_duration_ms: 0",
" final_score: 0",
" initial_score: 0",
" ip_support: 0",
" network_id <",
" network_id: 100",
" >",
" no_default_network_duration_ms: 0",
" previous_network_id <",
" network_id: 0",
" >",
" previous_network_ip_support: 0",
" transport_types: 0",
" >",
">",
"events <",
" if_name: \"\"",
" link_layer: 0",
" network_id: 101",
" time_ms: 0",
" transports: 0",
" default_network_event <",
" default_network_duration_ms: 0",
" final_score: 0",
" initial_score: 0",
" ip_support: 0",
" network_id <",
" network_id: 101",
" >",
" no_default_network_duration_ms: 0",
" previous_network_id <",
" network_id: 100",
" >",
" previous_network_ip_support: 3",
" transport_types: 1",
" >",
">",
"events <",
" if_name: \"\"",
" link_layer: 0",
" link_layer: 5",
" network_id: 0",
" time_ms: 0",
" transports: 0",
" default_network_event <",
" default_network_duration_ms: 0",
" default_network_duration_ms: 1001",
" final_score: 0",
" initial_score: 0",
" ip_support: 0",
" network_id <",
" network_id: 0",
" >",
" no_default_network_duration_ms: 0",
" previous_network_id <",
" network_id: 101",
" >",
" previous_network_ip_support: 1",
" previous_default_network_link_layer: 0",
" previous_network_ip_support: 0",
" validation_duration_ms: 0",
" >",
">",
"events <",
" if_name: \"\"",
" link_layer: 0",
" link_layer: 2",
" network_id: 100",
" time_ms: 0",
" transports: 1",
" default_network_event <",
" default_network_duration_ms: 2002",
" final_score: 50",
" initial_score: 10",
" ip_support: 3",
" no_default_network_duration_ms: 0",
" previous_default_network_link_layer: 0",
" previous_network_ip_support: 0",
" validation_duration_ms: 2002",
" >",
">",
"events <",
" if_name: \"\"",
" link_layer: 4",
" network_id: 101",
" time_ms: 0",
" transports: 2",
" default_network_event <",
" default_network_duration_ms: 4004",
" final_score: 60",
" initial_score: 20",
" ip_support: 1",
" no_default_network_duration_ms: 0",
" previous_default_network_link_layer: 2",
" previous_network_ip_support: 0",
" validation_duration_ms: 4004",
" >",
">",
"events <",
" if_name: \"\"",
" link_layer: 5",
" network_id: 0",
" time_ms: 0",
" transports: 0",
" default_network_event <",
" default_network_duration_ms: 8008",
" final_score: 0",
" initial_score: 0",
" ip_support: 0",
" no_default_network_duration_ms: 0",
" previous_default_network_link_layer: 4",
" previous_network_ip_support: 0",
" validation_duration_ms: 0",
" >",
">",
"events <",
" if_name: \"\"",
" link_layer: 2",
" network_id: 102",
" time_ms: 0",
" transports: 0",
" transports: 1",
" default_network_event <",
" default_network_duration_ms: 0",
" final_score: 0",
" initial_score: 0",
" ip_support: 0",
" network_id <",
" network_id: 102",
" >",
" default_network_duration_ms: 16016",
" final_score: 50",
" initial_score: 10",
" ip_support: 3",
" no_default_network_duration_ms: 0",
" previous_network_id <",
" network_id: 0",
" >",
" previous_default_network_link_layer: 4",
" previous_network_ip_support: 0",
" transport_types: 0",
" >",
">",
"events <",
" if_name: \"\"",
" link_layer: 0",
" network_id: 103",
" time_ms: 0",
" transports: 0",
" default_network_event <",
" default_network_duration_ms: 0",
" final_score: 0",
" initial_score: 0",
" ip_support: 0",
" network_id <",
" network_id: 103",
" >",
" no_default_network_duration_ms: 0",
" previous_network_id <",
" network_id: 102",
" >",
" previous_network_ip_support: 3",
" transport_types: 1",
" validation_duration_ms: 16016",
" >",
">",
"version: 2\n");
@@ -379,12 +359,13 @@ public class IpConnectivityMetricsTest {
wakeupEvent("wlan0", 10008);
wakeupEvent("rmnet0", 1000);
long timeMs = mService.mDefaultNetworkMetrics.creationTimeMs;
final long cell = BitUtils.packBits(new int[]{NetworkCapabilities.TRANSPORT_CELLULAR});
final long wifi = BitUtils.packBits(new int[]{NetworkCapabilities.TRANSPORT_WIFI});
NetworkAgentInfo cellNai = makeNai(100, 50, false, true, cell);
NetworkAgentInfo wifiNai = makeNai(101, 60, true, false, wifi);
mService.mDefaultNetworkMetrics.logDefaultNetworkEvent(cellNai, null);
mService.mDefaultNetworkMetrics.logDefaultNetworkEvent(wifiNai, cellNai);
mService.mDefaultNetworkMetrics.logDefaultNetworkEvent(timeMs + 200, cellNai, null);
mService.mDefaultNetworkMetrics.logDefaultNetworkEvent(timeMs + 300, wifiNai, cellNai);
String want = String.join("\n",
"dropped_events: 0",
@@ -473,46 +454,36 @@ public class IpConnectivityMetricsTest {
">",
"events <",
" if_name: \"\"",
" link_layer: 0",
" network_id: 100",
" link_layer: 5",
" network_id: 0",
" time_ms: 0",
" transports: 0",
" default_network_event <",
" default_network_duration_ms: 0",
" default_network_duration_ms: 200",
" final_score: 0",
" initial_score: 0",
" ip_support: 0",
" network_id <",
" network_id: 100",
" >",
" no_default_network_duration_ms: 0",
" previous_network_id <",
" network_id: 0",
" >",
" previous_default_network_link_layer: 0",
" previous_network_ip_support: 0",
" transport_types: 0",
" validation_duration_ms: 0",
" >",
">",
"events <",
" if_name: \"\"",
" link_layer: 0",
" network_id: 101",
" link_layer: 2",
" network_id: 100",
" time_ms: 0",
" transports: 0",
" transports: 1",
" default_network_event <",
" default_network_duration_ms: 0",
" final_score: 0",
" initial_score: 0",
" ip_support: 0",
" network_id <",
" network_id: 101",
" >",
" default_network_duration_ms: 100",
" final_score: 50",
" initial_score: 50",
" ip_support: 2",
" no_default_network_duration_ms: 0",
" previous_network_id <",
" network_id: 100",
" >",
" previous_network_ip_support: 2",
" transport_types: 1",
" previous_default_network_link_layer: 0",
" previous_network_ip_support: 0",
" validation_duration_ms: 100",
" >",
">",
"events <",

View File

@@ -82,9 +82,8 @@ public class NetdEventListenerServiceTest {
public void testWakeupEventLogging() throws Exception {
final int BUFFER_LENGTH = NetdEventListenerService.WAKEUP_EVENT_BUFFER_LENGTH;
// Assert no events
String[] events1 = listNetdEvent();
assertEquals(new String[]{""}, events1);
// Baseline without any event
String[] baseline = listNetdEvent();
long now = System.currentTimeMillis();
String prefix = "iface:wlan0";
@@ -93,7 +92,7 @@ public class NetdEventListenerServiceTest {
mNetdEventListenerService.onWakeupEvent(prefix, uid, uid, now);
}
String[] events2 = listNetdEvent();
String[] events2 = remove(listNetdEvent(), baseline);
int expectedLength2 = uids.length + 1; // +1 for the WakeupStats line
assertEquals(expectedLength2, events2.length);
assertContains(events2[0], "WakeupStats");
@@ -111,7 +110,7 @@ public class NetdEventListenerServiceTest {
mNetdEventListenerService.onWakeupEvent(prefix, uid, uid, ts);
}
String[] events3 = listNetdEvent();
String[] events3 = remove(listNetdEvent(), baseline);
int expectedLength3 = BUFFER_LENGTH + 1; // +1 for the WakeupStats line
assertEquals(expectedLength3, events3.length);
assertContains(events2[0], "WakeupStats");
@@ -126,7 +125,7 @@ public class NetdEventListenerServiceTest {
uid = 45678;
mNetdEventListenerService.onWakeupEvent(prefix, uid, uid, now);
String[] events4 = listNetdEvent();
String[] events4 = remove(listNetdEvent(), baseline);
String lastEvent = events4[events4.length - 1];
assertContains(lastEvent, "WakeupEvent");
assertContains(lastEvent, "wlan0");
@@ -423,7 +422,7 @@ public class NetdEventListenerServiceTest {
final PrintWriter pw = new PrintWriter(new FileOutputStream("/dev/null"));
new Thread(() -> {
while (System.currentTimeMillis() < stop) {
mNetdEventListenerService.dump(pw);
mNetdEventListenerService.list(pw);
}
}).start();
}
@@ -461,4 +460,16 @@ public class NetdEventListenerServiceTest {
static void assertContains(String got, String want) {
assertTrue(got + " did not contain \"" + want + "\"", got.contains(want));
}
static <T> T[] remove(T[] array, T[] filtered) {
List<T> c = Arrays.asList(filtered);
int next = 0;
for (int i = 0; i < array.length; i++) {
if (c.contains(array[i])) {
continue;
}
array[next++] = array[i];
}
return Arrays.copyOf(array, next);
}
}