Move sealed test to java 17 test module
Change-Id: Ic09d1242ce26511c0989915389bec91633d8de45
diff --git a/src/test/examplesJava17/sealed/Helper.java b/src/test/examplesJava17/sealed/Helper.java
new file mode 100644
index 0000000..eacda06
--- /dev/null
+++ b/src/test/examplesJava17/sealed/Helper.java
@@ -0,0 +1,11 @@
+package sealed;
+
+import com.google.common.collect.ImmutableList;
+import java.util.List;
+
+public class Helper {
+
+ public static List<Class<?>> getSealedClasses() {
+ return ImmutableList.of(Compiler.class, D8Compiler.class, R8Compiler.class, Main.class);
+ }
+}
diff --git a/src/test/java/com/android/tools/r8/desugar/sealed/SealedClassesClasspathTest.java b/src/test/examplesJava17/sealed/SealedClassesClasspathTest.java
similarity index 75%
rename from src/test/java/com/android/tools/r8/desugar/sealed/SealedClassesClasspathTest.java
rename to src/test/examplesJava17/sealed/SealedClassesClasspathTest.java
index 663c241..c1d8e26 100644
--- a/src/test/java/com/android/tools/r8/desugar/sealed/SealedClassesClasspathTest.java
+++ b/src/test/examplesJava17/sealed/SealedClassesClasspathTest.java
@@ -1,14 +1,13 @@
-// Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
+package sealed; // 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.desugar.sealed;
-
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestCompilerBuilder;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.examples.jdk17.Sealed;
+import com.android.tools.r8.TestRuntime.CfVm;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -23,13 +22,17 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
- return getTestParameters().withAllRuntimesAndApiLevels().build();
+ return getTestParameters()
+ .withCfRuntimesStartingFromIncluding(CfVm.JDK17)
+ .withDexRuntimes()
+ .withAllApiLevelsAlsoForCf()
+ .build();
}
private void runTest(TestCompilerBuilder<?, ?, ?, ?, ?> builder) throws Exception {
builder
- .addClasspathFiles(Sealed.jar())
- .addInnerClasses(getClass())
+ .addClasspathClasses(Helper.getSealedClasses())
+ .addInnerClassesAndStrippedOuter(getClass())
.setMinApi(parameters)
.run(parameters.getRuntime(), TestRunner.class)
.assertSuccessWithOutputLines("Hello, world!");
@@ -43,6 +46,7 @@
@Test
public void testR8() throws Exception {
+ parameters.assumeR8TestParameters();
runTest(testForR8(parameters.getBackend()).addKeepMainRule(TestRunner.class));
}
diff --git a/src/test/java/com/android/tools/r8/desugar/sealed/SealedClassesJdk17CompiledTest.java b/src/test/examplesJava17/sealed/SealedClassesJdk17CompiledTest.java
similarity index 79%
rename from src/test/java/com/android/tools/r8/desugar/sealed/SealedClassesJdk17CompiledTest.java
rename to src/test/examplesJava17/sealed/SealedClassesJdk17CompiledTest.java
index c51bb03..6dfc18f 100644
--- a/src/test/java/com/android/tools/r8/desugar/sealed/SealedClassesJdk17CompiledTest.java
+++ b/src/test/examplesJava17/sealed/SealedClassesJdk17CompiledTest.java
@@ -1,9 +1,8 @@
-// Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
+package sealed; // Copyright (c) 2020, 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.desugar.sealed;
-
import static com.android.tools.r8.utils.codeinspector.Matchers.isPresentAndRenamed;
import static junit.framework.Assert.assertEquals;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -14,7 +13,6 @@
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestRuntime.CfVm;
import com.android.tools.r8.TestShrinkerBuilder;
-import com.android.tools.r8.examples.jdk17.Sealed;
import com.android.tools.r8.utils.BooleanUtils;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
@@ -51,8 +49,8 @@
assumeTrue(keepPermittedSubclassesAttribute);
assumeTrue(parameters.asCfRuntime().isNewerThanOrEqual(CfVm.JDK17));
testForJvm(parameters)
- .addRunClasspathFiles(Sealed.jar())
- .run(parameters.getRuntime(), Sealed.Main.typeName())
+ .addProgramClassesAndInnerClasses(Helper.getSealedClasses())
+ .run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutput(EXPECTED);
}
@@ -60,8 +58,8 @@
public void testDesugaring() throws Exception {
assumeTrue(keepPermittedSubclassesAttribute);
testForDesugaring(parameters)
- .addProgramFiles(Sealed.jar())
- .run(parameters.getRuntime(), Sealed.Main.typeName())
+ .addProgramClassesAndInnerClasses(Helper.getSealedClasses())
+ .run(parameters.getRuntime(), Main.class)
.applyIf(
c ->
DesugarTestConfiguration.isNotJavac(c)
@@ -71,10 +69,10 @@
}
private void inspect(CodeInspector inspector) {
- ClassSubject clazz = inspector.clazz(Sealed.Compiler.typeName());
+ ClassSubject clazz = inspector.clazz(Compiler.class);
assertThat(clazz, isPresentAndRenamed());
- ClassSubject sub1 = inspector.clazz(Sealed.R8Compiler.typeName());
- ClassSubject sub2 = inspector.clazz(Sealed.D8Compiler.typeName());
+ ClassSubject sub1 = inspector.clazz(R8Compiler.class);
+ ClassSubject sub2 = inspector.clazz(D8Compiler.class);
assertThat(sub1, isPresentAndRenamed());
assertThat(sub2, isPresentAndRenamed());
assertEquals(
@@ -88,17 +86,17 @@
public void testR8() throws Exception {
parameters.assumeR8TestParameters();
testForR8(parameters.getBackend())
- .addProgramFiles(Sealed.jar())
+ .addProgramClassesAndInnerClasses(Helper.getSealedClasses())
.setMinApi(parameters)
.applyIf(
keepPermittedSubclassesAttribute,
TestShrinkerBuilder::addKeepAttributePermittedSubclasses)
- .addKeepPermittedSubclasses(Sealed.Compiler.typeName())
- .addKeepRules("-keep,allowobfuscation class * extends " + Sealed.Compiler.typeName())
- .addKeepMainRule(Sealed.Main.typeName())
+ .addKeepPermittedSubclasses(Compiler.class)
+ .addKeepRules("-keep,allowobfuscation class * extends sealed.Compiler")
+ .addKeepMainRule(Main.class)
.compile()
.inspect(this::inspect)
- .run(parameters.getRuntime(), Sealed.Main.typeName())
+ .run(parameters.getRuntime(), Main.class)
.applyIf(
parameters.isDexRuntime() || parameters.asCfRuntime().isNewerThanOrEqual(CfVm.JDK17),
r -> r.assertSuccessWithOutput(EXPECTED),
diff --git a/src/test/java/com/android/tools/r8/desugar/sealed/SealedClassesLibraryTest.java b/src/test/examplesJava17/sealed/SealedClassesLibraryTest.java
similarity index 75%
rename from src/test/java/com/android/tools/r8/desugar/sealed/SealedClassesLibraryTest.java
rename to src/test/examplesJava17/sealed/SealedClassesLibraryTest.java
index e94bcec..617ea4e 100644
--- a/src/test/java/com/android/tools/r8/desugar/sealed/SealedClassesLibraryTest.java
+++ b/src/test/examplesJava17/sealed/SealedClassesLibraryTest.java
@@ -1,14 +1,13 @@
-// Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
+package sealed; // 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.desugar.sealed;
-
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestCompilerBuilder;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.examples.jdk17.Sealed;
+import com.android.tools.r8.TestRuntime.CfVm;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -23,14 +22,18 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
- return getTestParameters().withAllRuntimesAndApiLevels().build();
+ return getTestParameters()
+ .withCfRuntimesStartingFromIncluding(CfVm.JDK17)
+ .withDexRuntimes()
+ .withAllApiLevelsAlsoForCf()
+ .build();
}
private void runTest(TestCompilerBuilder<?, ?, ?, ?, ?> builder) throws Exception {
builder
.addDefaultRuntimeLibrary(parameters)
- .addLibraryFiles(Sealed.jar())
- .addInnerClasses(getClass())
+ .addLibraryClasses(Helper.getSealedClasses())
+ .addInnerClassesAndStrippedOuter(getClass())
.setMinApi(parameters)
.run(parameters.getRuntime(), TestRunner.class)
.assertSuccessWithOutputLines("Hello, world!");
@@ -44,6 +47,7 @@
@Test
public void testR8() throws Exception {
+ parameters.assumeR8TestParameters();
runTest(testForR8(parameters.getBackend()).addKeepMainRule(TestRunner.class));
}
diff --git a/src/test/java/com/android/tools/r8/examples/jdk17/Sealed.java b/src/test/java/com/android/tools/r8/examples/jdk17/Sealed.java
deleted file mode 100644
index 8858316..0000000
--- a/src/test/java/com/android/tools/r8/examples/jdk17/Sealed.java
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (c) 2020, 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.jdk17;
-
-import com.android.tools.r8.examples.JavaExampleClassProxy;
-import java.nio.file.Path;
-
-public class Sealed {
-
- private static final String EXAMPLE_FILE = "examplesJava17/sealed";
-
- public static final JavaExampleClassProxy Compiler =
- new JavaExampleClassProxy(EXAMPLE_FILE, "sealed/Compiler");
- public static final JavaExampleClassProxy R8Compiler =
- new JavaExampleClassProxy(EXAMPLE_FILE, "sealed/R8Compiler");
- public static final JavaExampleClassProxy D8Compiler =
- new JavaExampleClassProxy(EXAMPLE_FILE, "sealed/D8Compiler");
- public static final JavaExampleClassProxy Main =
- new JavaExampleClassProxy(EXAMPLE_FILE, "sealed/Main");
-
- public static Path jar() {
- return JavaExampleClassProxy.examplesJar(EXAMPLE_FILE);
- }
-}