[KeepAnno] Update "same method" test

This test shows issues in conditionals with backrefs.

Bug: b/322114141
Change-Id: I17fde23ec51c49b8248bbd85b2669ea3b08c015a
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepSameMethodTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepSameMethodTest.java
index 59f6d6f..aebeeb2 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepSameMethodTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepSameMethodTest.java
@@ -7,9 +7,6 @@
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static org.hamcrest.MatcherAssert.assertThat;
 
-import com.android.tools.r8.TestBase;
-import com.android.tools.r8.TestParameters;
-import com.android.tools.r8.TestParametersCollection;
 import com.android.tools.r8.keepanno.annotations.KeepBinding;
 import com.android.tools.r8.keepanno.annotations.KeepCondition;
 import com.android.tools.r8.keepanno.annotations.KeepEdge;
@@ -23,43 +20,35 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameter;
 
 @RunWith(Parameterized.class)
-public class KeepSameMethodTest extends TestBase {
+public class KeepSameMethodTest extends KeepAnnoTestBase {
 
   static final String EXPECTED = StringUtils.lines("foo");
 
-  private final TestParameters parameters;
+  // TODO(b/265893433): The use of backreferences does not work in PG.
+  static final String UNEXPECTED_PG = StringUtils.lines("main");
+
+  @Parameter public KeepAnnoParameters parameters;
 
   @Parameterized.Parameters(name = "{0}")
-  public static TestParametersCollection data() {
-    return getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build();
-  }
-
-  public KeepSameMethodTest(TestParameters parameters) {
-    this.parameters = parameters;
+  public static List<KeepAnnoParameters> data() {
+    return createParameters(
+        getTestParameters().withDefaultRuntimes().withApiLevel(AndroidApiLevel.B).build());
   }
 
   @Test
-  public void testReference() throws Exception {
-    testForRuntime(parameters)
-        .addProgramClasses(getInputClasses())
-        .run(parameters.getRuntime(), TestClass.class)
-        .assertSuccessWithOutput(EXPECTED);
-  }
-
-  @Test
-  public void testWithRuleExtraction() throws Exception {
-    testForR8(parameters.getBackend())
-        .enableExperimentalKeepAnnotations()
+  public void test() throws Exception {
+    testForKeepAnno(parameters)
         .addProgramClasses(getInputClasses())
         .addKeepMainRule(TestClass.class)
-        .setMinApi(parameters)
+        .setExcludedOuterClass(getClass())
         // The "all members" target will create an unused "all fields" rule.
         .allowUnusedProguardConfigurationRules()
-        .run(parameters.getRuntime(), TestClass.class)
-        .assertSuccessWithOutput(EXPECTED)
-        .inspect(this::checkOutput);
+        .run(TestClass.class)
+        .assertSuccessWithOutput(parameters.isPG() ? UNEXPECTED_PG : EXPECTED)
+        .applyIf(parameters.isR8(), r -> r.inspect(this::checkOutput));
   }
 
   public List<Class<?>> getInputClasses() {