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