Parse perf logs to detect tests with real server
Bug: 259248789
Test: atest CollectorsHelperAospTest:com.android.helpers.SelectAdsLatencyHelperTest
Change-Id: I8d4e0bb83b4de5622aa90587210622f6b54e787a
diff --git a/libraries/collectors-helper/adservices/src/com/android/helpers/SelectAdsLatencyHelper.java b/libraries/collectors-helper/adservices/src/com/android/helpers/SelectAdsLatencyHelper.java
index 884acc5..c89bd2d 100644
--- a/libraries/collectors-helper/adservices/src/com/android/helpers/SelectAdsLatencyHelper.java
+++ b/libraries/collectors-helper/adservices/src/com/android/helpers/SelectAdsLatencyHelper.java
@@ -43,12 +43,6 @@
private static class SelectAdsProcessInputForLatencyMetrics
implements LatencyHelper.ProcessInputForLatencyMetrics {
- private static final String LOG_LABEL_P50_5G = "SELECT_ADS_LATENCY_P50_5G";
- private static final String LOG_LABEL_P50_4GPLUS = "SELECT_ADS_LATENCY_P50_4GPLUS";
- private static final String LOG_LABEL_P50_4G = "SELECT_ADS_LATENCY_P50_4G";
- private static final String LOG_LABEL_P90_5G = "SELECT_ADS_LATENCY_P90_5G";
- private static final String LOG_LABEL_P90_4GPLUS = "SELECT_ADS_LATENCY_P90_4GPLUS";
- private static final String LOG_LABEL_P90_4G = "SELECT_ADS_LATENCY_P90_4G";
@Override
public String getTestLabel() {
@@ -58,8 +52,10 @@
@Override
public Map<String, Long> processInput(InputStream inputStream) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
+ // TODO(b/260319962): Update log lines of latency benchmark tests to reflect the
+ // format SELECT_ADS_LATENCY_testClass#testName
Pattern latencyMetricPattern =
- Pattern.compile(getTestLabel() + ": \\((.*): (\\d+) ms\\)");
+ Pattern.compile(getTestLabel() + ": \\((SELECT_ADS_LATENCY_.*): (\\d+) ms\\)");
String line = "";
Map<String, Long> output = new HashMap<String, Long>();
@@ -68,30 +64,13 @@
while (matcher.find()) {
/**
* The lines from Logcat will look like: 06-13 18:09:24.058 20765 20781 D
- * SelectAds: (SELECT_ADS_LATENCY_P50_5G: 1900 ms)
+ * SelectAds: (SELECT_ADS_LATENCY_SelectAdsLatency#selectAds_p50_5G: 1900 ms)
+ *
+ * <p>Where the format is SELECT_ADS_LATENCY_className#testName
*/
String metric = matcher.group(1);
long latency = Long.parseLong(matcher.group(2));
- switch (metric) {
- case LOG_LABEL_P50_5G:
- output.put(LOG_LABEL_P50_5G, latency);
- break;
- case LOG_LABEL_P50_4GPLUS:
- output.put(LOG_LABEL_P50_4GPLUS, latency);
- break;
- case LOG_LABEL_P50_4G:
- output.put(LOG_LABEL_P50_4G, latency);
- break;
- case LOG_LABEL_P90_5G:
- output.put(LOG_LABEL_P90_5G, latency);
- break;
- case LOG_LABEL_P90_4GPLUS:
- output.put(LOG_LABEL_P90_4GPLUS, latency);
- break;
- case LOG_LABEL_P90_4G:
- output.put(LOG_LABEL_P90_4G, latency);
- break;
- }
+ output.put(metric, latency);
}
}
return output;
diff --git a/libraries/collectors-helper/adservices/test/src/com/android/helpers/SelectAdsLatencyHelperTest.java b/libraries/collectors-helper/adservices/test/src/com/android/helpers/SelectAdsLatencyHelperTest.java
index be09f1b..0eab767 100644
--- a/libraries/collectors-helper/adservices/test/src/com/android/helpers/SelectAdsLatencyHelperTest.java
+++ b/libraries/collectors-helper/adservices/test/src/com/android/helpers/SelectAdsLatencyHelperTest.java
@@ -34,12 +34,21 @@
public class SelectAdsLatencyHelperTest {
private static final String TEST_FILTER_LABEL = "SelectAds";
- private static final String LOG_LABEL_P50_5G = "SELECT_ADS_LATENCY_P50_5G";
- private static final String LOG_LABEL_P50_4GPLUS = "SELECT_ADS_LATENCY_P50_4GPLUS";
- private static final String LOG_LABEL_P50_4G = "SELECT_ADS_LATENCY_P50_4G";
- private static final String LOG_LABEL_P90_5G = "SELECT_ADS_LATENCY_P90_5G";
- private static final String LOG_LABEL_P90_4GPLUS = "SELECT_ADS_LATENCY_P90_4GPLUS";
- private static final String LOG_LABEL_P90_4G = "SELECT_ADS_LATENCY_P90_4G";
+ private static final String LOG_LABEL_P50_5G =
+ "SELECT_ADS_LATENCY_SelectAdsLatency#selectAds_p50_5G";
+ private static final String LOG_LABEL_P50_4GPLUS =
+ "SELECT_ADS_LATENCY_SelectAdsLatency#selectAds_p50_4GPLUS";
+ private static final String LOG_LABEL_P50_4G =
+ "SELECT_ADS_LATENCY_SelectAdsLatency#selectAds_p50_4G";
+ private static final String LOG_LABEL_P90_5G =
+ "SELECT_ADS_LATENCY_SelectAdsLatency#selectAds_p90_5G";
+ private static final String LOG_LABEL_P90_4GPLUS =
+ "SELECT_ADS_LATENCY_SelectAdsLatency#selectAds_p90_4GPLUS";
+ private static final String LOG_LABEL_P90_4G =
+ "SELECT_ADS_LATENCY_SelectAdsLatency#selectAds_p90_4G";
+ private static final String LOG_LABEL_REAL_SERVER_P50 =
+ "SELECT_ADS_LATENCY_SelectAdsTestServerLatency#selectAds_oneBuyer_realServer";
+
@Mock private LatencyHelper.InputStreamFilter mInputStreamFilter;
@Mock private Clock mClock;
@@ -59,14 +68,26 @@
@Test
public void testInitTimeInLogcat() throws IOException {
String logcatOutput =
- "06-13 18:09:24.022 20765 D SelectAds: (SELECT_ADS_LATENCY_P50_5G: 102 ms)\n"
- + "06-29 02:47:32.030 31075 D SelectAds: (SELECT_ADS_LATENCY_P50_4GPLUS: 1"
- + " ms)\n"
- + "06-13 18:09:24.058 20765 D SelectAds: (SELECT_ADS_LATENCY_P50_4G: 43 ms)\n"
- + "06-13 18:09:24.058 31075 D SelectAds: (SELECT_ADS_LATENCY_P90_5G: 23 ms)\n"
- + "06-13 18:09:24.129 20765 D SelectAds: (SELECT_ADS_LATENCY_P90_4GPLUS: 45"
- + " ms)\n"
- + "06-13 18:09:24.130 31075 D SelectAds: (SELECT_ADS_LATENCY_P90_4G: 1 ms)";
+ "06-13 18:09:24.022 20765 D SelectAds: "
+ + "(SELECT_ADS_LATENCY_SelectAdsLatency#selectAds_p50_5G: 102 ms)\n"
+ + "06-29 02:47:32.030 31075 D SelectAds: "
+ + "(SELECT_ADS_LATENCY_SelectAdsLatency#selectAds_p50_4GPLUS: 1"
+ + " ms)\n"
+ + "06-13 18:09:24.058 20765 D SelectAds: "
+ + "(SELECT_ADS_LATENCY_SelectAdsLatency#selectAds_p50_4G: 43 "
+ + "ms)\n"
+ + "06-13 18:09:24.058 31075 D SelectAds: "
+ + "(SELECT_ADS_LATENCY_SelectAdsLatency#selectAds_p90_5G: 23 "
+ + "ms)\n"
+ + "06-13 18:09:24.129 20765 D SelectAds: "
+ + "(SELECT_ADS_LATENCY_SelectAdsLatency#selectAds_p90_4GPLUS: 45"
+ + " ms)\n"
+ + "06-13 18:09:24.130 31075 D SelectAds: "
+ + "(SELECT_ADS_LATENCY_SelectAdsLatency#selectAds_p90_4G: 1 "
+ + "ms)\n"
+ + "06-13 18:09:25.058 20765 D SelectAds: "
+ + "(SELECT_ADS_LATENCY_SelectAdsTestServerLatency"
+ + "#selectAds_oneBuyer_realServer: 117 ms)\n";
when(mInputStreamFilter.getStream(TEST_FILTER_LABEL, mInstant))
.thenReturn(new ByteArrayInputStream(logcatOutput.getBytes()));
@@ -78,6 +99,17 @@
assertThat(actual.get(LOG_LABEL_P90_5G)).isEqualTo(23);
assertThat(actual.get(LOG_LABEL_P90_4GPLUS)).isEqualTo(45);
assertThat(actual.get(LOG_LABEL_P90_4G)).isEqualTo(1);
+ assertThat(actual.get(LOG_LABEL_REAL_SERVER_P50)).isEqualTo(117);
+ }
+
+ @Test
+ public void testWithNonMatchingInput() throws IOException {
+ String logcatOutput = "Some random string";
+ when(mInputStreamFilter.getStream(TEST_FILTER_LABEL, mInstant))
+ .thenReturn(new ByteArrayInputStream(logcatOutput.getBytes()));
+ Map<String, Long> actual = mSelectAdsLatencyHelper.getMetrics();
+
+ assertThat(actual.size()).isEqualTo(0);
}
@Test
@@ -85,9 +117,7 @@
when(mInputStreamFilter.getStream(TEST_FILTER_LABEL, mInstant))
.thenReturn(new ByteArrayInputStream("".getBytes()));
Map<String, Long> actual = mSelectAdsLatencyHelper.getMetrics();
- for (Long val : actual.values()) {
- assertThat(val).isEqualTo(0);
- }
+ assertThat(actual.size()).isEqualTo(0);
}
@Test