Update test to check for number of outline call site informations

Bug: b/293630963
Bug: b/294904638
Change-Id: Ia6a4d0062af7d4d7e3a3b4d3acbdc4ede237642c
diff --git a/src/main/java/com/android/tools/r8/utils/StringUtils.java b/src/main/java/com/android/tools/r8/utils/StringUtils.java
index 1cbcad2..75f4a2e 100644
--- a/src/main/java/com/android/tools/r8/utils/StringUtils.java
+++ b/src/main/java/com/android/tools/r8/utils/StringUtils.java
@@ -501,4 +501,14 @@
   public static String toUpperCase(String s) {
     return s.toUpperCase(Locale.ROOT);
   }
+
+  public static int occurrences(String largerString, String subString) {
+    int lastIndex = largerString.indexOf(subString);
+    int count = 0;
+    while (lastIndex > -1) {
+      count += 1;
+      lastIndex = largerString.indexOf(subString, lastIndex + 1);
+    }
+    return count;
+  }
 }
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/outliner/OutlineMappingInformationTest.java b/src/test/java/com/android/tools/r8/ir/optimize/outliner/OutlineMappingInformationTest.java
index 6fb199c..362ac40 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/outliner/OutlineMappingInformationTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/outliner/OutlineMappingInformationTest.java
@@ -7,10 +7,12 @@
 
 import com.android.tools.r8.NeverInline;
 import com.android.tools.r8.NoHorizontalClassMerging;
+import com.android.tools.r8.R8TestCompileResult;
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.naming.retrace.StackTrace;
 import com.android.tools.r8.utils.BooleanUtils;
+import com.android.tools.r8.utils.StringUtils;
 import com.android.tools.r8.utils.codeinspector.HorizontallyMergedClassesInspector;
 import java.util.List;
 import org.junit.Before;
@@ -58,23 +60,25 @@
 
   @Test
   public void test() throws Exception {
-    testForR8(parameters.getBackend())
-        .addProgramClasses(TestClass.class, TestClass2.class, Greeter.class)
-        .addKeepMainRule(TestClass.class)
-        .addOptionsModification(
-            options -> {
-              options.outline.threshold = 2;
-              options.outline.minSize = 2;
-            })
-        .addKeepAttributeLineNumberTable()
-        .addKeepAttributeSourceFile()
-        .enableNoHorizontalClassMergingAnnotations()
-        .noHorizontalClassMergingOfSynthetics()
-        .addHorizontallyMergedClassesInspector(
-            HorizontallyMergedClassesInspector::assertNoClassesMerged)
-        .enableInliningAnnotations()
-        .setMinApi(parameters)
-        .compile()
+    R8TestCompileResult compileResult =
+        testForR8(parameters.getBackend())
+            .addProgramClasses(TestClass.class, TestClass2.class, Greeter.class)
+            .addKeepMainRule(TestClass.class)
+            .addOptionsModification(
+                options -> {
+                  options.outline.threshold = 2;
+                  options.outline.minSize = 2;
+                })
+            .addKeepAttributeLineNumberTable()
+            .addKeepAttributeSourceFile()
+            .enableNoHorizontalClassMergingAnnotations()
+            .noHorizontalClassMergingOfSynthetics()
+            .addHorizontallyMergedClassesInspector(
+                HorizontallyMergedClassesInspector::assertNoClassesMerged)
+            .enableInliningAnnotations()
+            .setMinApi(parameters)
+            .compile();
+    compileResult
         .run(
             parameters.getRuntime(),
             TestClass.class,
@@ -91,6 +95,15 @@
               assertEquals(5, inspector.allClasses().size());
               assertEquals(expectedStackTrace, stackTrace);
             });
+    String proguardMap = compileResult.getProguardMap();
+
+    if (parameters.isDexRuntime()) {
+      // TODO(b/263357015, b/293630963): Outline information is duplicated for pc encoding.
+      assertEquals(
+          20, StringUtils.occurrences(proguardMap, "com.android.tools.r8.outlineCallsite"));
+    } else {
+      assertEquals(4, StringUtils.occurrences(proguardMap, "com.android.tools.r8.outlineCallsite"));
+    }
   }
 
   @NoHorizontalClassMerging