Move Jdk8272564 test to java 21 package

Change-Id: Ia5f8980422b75c24c95f971d1a2cdb78080873e5
diff --git a/src/test/java/com/android/tools/r8/desugar/jdk8272564/Jdk8272564InvalidCode.java b/src/test/examplesJava21/jdk8272564/Jdk8272564InvalidCode.java
similarity index 94%
rename from src/test/java/com/android/tools/r8/desugar/jdk8272564/Jdk8272564InvalidCode.java
rename to src/test/examplesJava21/jdk8272564/Jdk8272564InvalidCode.java
index 26339fb..8800345 100644
--- a/src/test/java/com/android/tools/r8/desugar/jdk8272564/Jdk8272564InvalidCode.java
+++ b/src/test/examplesJava21/jdk8272564/Jdk8272564InvalidCode.java
@@ -2,13 +2,14 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.desugar.jdk8272564;
+package jdk8272564;
 
 import static org.junit.Assume.assumeTrue;
 
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.TestRuntime.CfVm;
 import com.android.tools.r8.ToolHelper.DexVm.Version;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.DescriptorUtils;
@@ -25,7 +26,7 @@
   @Parameters(name = "{0}")
   public static TestParametersCollection data() {
     return getTestParameters()
-        .withCfRuntimes()
+        .withCfRuntimesStartingFromIncluding(CfVm.JDK21)
         .withDexRuntimes()
         .withAllApiLevelsAlsoForCf()
         .build();
@@ -52,6 +53,7 @@
   public void testDesugaring() throws Exception {
     assumeTrue(parameters.isDexRuntime() || isDefaultCfParameters());
     testForDesugaring(parameters)
+        .addStrippedOuter(getClass())
         .addProgramClasses(I.class)
         .addProgramClassFileData(getTransformedClass())
         .run(parameters.getRuntime(), A.class)
@@ -67,6 +69,7 @@
     parameters.assumeR8TestParameters();
     // The R8 lens code rewriter rewrites to the code prior to fixing JDK-8272564.
     testForR8(parameters.getBackend())
+        .addStrippedOuter(getClass())
         .addProgramClasses(I.class)
         .addProgramClassFileData(getTransformedClass())
         .setMinApi(parameters)
diff --git a/src/test/java/com/android/tools/r8/desugar/jdk8272564/Jdk8272564Test.java b/src/test/examplesJava21/jdk8272564/Jdk8272564Test.java
similarity index 81%
rename from src/test/java/com/android/tools/r8/desugar/jdk8272564/Jdk8272564Test.java
rename to src/test/examplesJava21/jdk8272564/Jdk8272564Test.java
index 52809ee..d5a932a 100644
--- a/src/test/java/com/android/tools/r8/desugar/jdk8272564/Jdk8272564Test.java
+++ b/src/test/examplesJava21/jdk8272564/Jdk8272564Test.java
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-package com.android.tools.r8.desugar.jdk8272564;
+package jdk8272564;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -12,10 +12,13 @@
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
 import com.android.tools.r8.TestRuntime.CfVm;
-import com.android.tools.r8.examples.jdk18.jdk8272564.Jdk8272564;
+import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.utils.AndroidApiLevel;
+import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.codeinspector.CodeInspector;
 import com.android.tools.r8.utils.codeinspector.InstructionSubject;
+import com.google.common.collect.ImmutableList;
+import java.util.List;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -41,13 +44,13 @@
   private void assertJdk8272564FixedCode(CodeInspector inspector) {
     assertTrue(
         inspector
-            .clazz(Jdk8272564.Main.typeName())
+            .clazz(Main.class)
             .uniqueMethodWithOriginalName("f")
             .streamInstructions()
             .noneMatch(InstructionSubject::isInvokeVirtual));
     assertTrue(
         inspector
-            .clazz(Jdk8272564.Main.typeName())
+            .clazz(Main.class)
             .uniqueMethodWithOriginalName("g")
             .streamInstructions()
             .noneMatch(InstructionSubject::isInvokeVirtual));
@@ -59,7 +62,7 @@
     assertEquals(
         1,
         inspector
-            .clazz(Jdk8272564.Main.typeName())
+            .clazz(Main.class)
             .uniqueMethodWithOriginalName("f")
             .streamInstructions()
             .filter(InstructionSubject::isInvokeInterface)
@@ -67,7 +70,7 @@
     assertEquals(
         2,
         inspector
-            .clazz(Jdk8272564.Main.typeName())
+            .clazz(Main.class)
             .uniqueMethodWithOriginalName("f")
             .streamInstructions()
             .filter(InstructionSubject::isInvokeVirtual)
@@ -75,7 +78,7 @@
     assertEquals(
         2,
         inspector
-            .clazz(Jdk8272564.Main.typeName())
+            .clazz(Main.class)
             .uniqueMethodWithOriginalName("g")
             .streamInstructions()
             .filter(InstructionSubject::isInvokeInterface)
@@ -83,7 +86,7 @@
     assertEquals(
         2,
         inspector
-            .clazz(Jdk8272564.Main.typeName())
+            .clazz(Main.class)
             .uniqueMethodWithOriginalName("g")
             .streamInstructions()
             .filter(InstructionSubject::isInvokeInterface)
@@ -91,7 +94,7 @@
     assertEquals(
         invokeVirtualCount,
         inspector
-            .clazz(Jdk8272564.Main.typeName())
+            .clazz(Main.class)
             .uniqueMethodWithOriginalName("g")
             .streamInstructions()
             .filter(InstructionSubject::isInvokeVirtual)
@@ -99,7 +102,7 @@
     assertEquals(
         getClassCount,
         inspector
-            .clazz(Jdk8272564.Main.typeName())
+            .clazz(Main.class)
             .uniqueMethodWithOriginalName("g")
             .streamInstructions()
             .filter(InstructionSubject::isInvoke)
@@ -123,24 +126,32 @@
   // See https://bugs.openjdk.java.net/browse/JDK-8272564.
   public void testJdk8272564Compiler() throws Exception {
     assumeTrue(isDefaultCfParameters());
+    AndroidApp build =
+        AndroidApp.builder()
+            .addProgramFiles(ToolHelper.getClassFileForTestClass(Main.class))
+            .build();
     // Ensure that the test is running with CF input from fixing JDK-8272564.
-    assertJdk8272564FixedCode(new CodeInspector(Jdk8272564.jar()));
+    assertJdk8272564FixedCode(new CodeInspector(build));
+  }
+
+  private static List<Class<?>> getInput() {
+    return ImmutableList.of(A.class, B.class, C.class, I.class, J.class, K.class, Main.class);
   }
 
   @Test
   public void testJvm() throws Exception {
     assumeTrue(isDefaultCfParameters());
     testForJvm(parameters)
-        .addRunClasspathFiles(Jdk8272564.jar())
-        .run(parameters.getRuntime(), Jdk8272564.Main.typeName())
+        .addProgramClasses(getInput())
+        .run(parameters.getRuntime(), Main.class)
         .assertSuccess();
   }
 
   @Test
   public void testD8() throws Exception {
     testForDesugaring(parameters)
-        .addProgramFiles(Jdk8272564.jar())
-        .run(parameters.getRuntime(), Jdk8272564.Main.typeName())
+        .addProgramClasses(getInput())
+        .run(parameters.getRuntime(), Main.class)
         .applyIf(
             parameters.isDexRuntime() && parameters.getApiLevel().isLessThan(AndroidApiLevel.U),
             b -> b.inspect(this::assertJdk8272564NotFixedCode),
@@ -153,11 +164,11 @@
     parameters.assumeR8TestParameters();
     // The R8 lens code rewriter rewrites to the code prior to fixing JDK-8272564.
     testForR8(parameters.getBackend())
-        .addProgramFiles(Jdk8272564.jar())
+        .addProgramClasses(getInput())
         .setMinApi(parameters)
         .addDontShrink()
-        .addKeepClassAndMembersRules(Jdk8272564.Main.typeName())
-        .run(parameters.getRuntime(), Jdk8272564.Main.typeName())
+        .addKeepClassAndMembersRules(Main.class)
+        .run(parameters.getRuntime(), Main.class)
         .inspect(this::assertJdk8272564NotFixedCodeR8)
         .assertSuccess();
   }
diff --git a/src/test/java/com/android/tools/r8/examples/jdk18/jdk8272564/Jdk8272564.java b/src/test/java/com/android/tools/r8/examples/jdk18/jdk8272564/Jdk8272564.java
deleted file mode 100644
index efcb017..0000000
--- a/src/test/java/com/android/tools/r8/examples/jdk18/jdk8272564/Jdk8272564.java
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package com.android.tools.r8.examples.jdk18.jdk8272564;
-
-import com.android.tools.r8.examples.JavaExampleClassProxy;
-import java.nio.file.Path;
-
-public class Jdk8272564 {
-
-  private static final String EXAMPLE_FILE = "examplesJava21/jdk8272564";
-
-  public static final JavaExampleClassProxy A =
-      new JavaExampleClassProxy(EXAMPLE_FILE, "jdk8272564/A");
-  public static final JavaExampleClassProxy B =
-      new JavaExampleClassProxy(EXAMPLE_FILE, "jdk8272564/B");
-  public static final JavaExampleClassProxy C =
-      new JavaExampleClassProxy(EXAMPLE_FILE, "jdk8272564/C");
-  public static final JavaExampleClassProxy I =
-      new JavaExampleClassProxy(EXAMPLE_FILE, "jdk8272564/I");
-  public static final JavaExampleClassProxy J =
-      new JavaExampleClassProxy(EXAMPLE_FILE, "jdk8272564/J");
-  public static final JavaExampleClassProxy K =
-      new JavaExampleClassProxy(EXAMPLE_FILE, "jdk8272564/K");
-  public static final JavaExampleClassProxy Main =
-      new JavaExampleClassProxy(EXAMPLE_FILE, "jdk8272564/Main");
-
-  public static Path jar() {
-    return JavaExampleClassProxy.examplesJar(EXAMPLE_FILE);
-  }
-}