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);
- }
-}