Update test assume messages on CF runtimes.
Change-Id: If783915d9b10a453e077e327b3dd026a53b69213
diff --git a/src/test/java/com/android/tools/r8/accessrelaxation/AccessRelaxationTestBase.java b/src/test/java/com/android/tools/r8/accessrelaxation/AccessRelaxationTestBase.java
index 11d1ed2..ce40a93 100644
--- a/src/test/java/com/android/tools/r8/accessrelaxation/AccessRelaxationTestBase.java
+++ b/src/test/java/com/android/tools/r8/accessrelaxation/AccessRelaxationTestBase.java
@@ -6,9 +6,10 @@
import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
import static com.android.tools.r8.utils.codeinspector.Matchers.isPublic;
import static org.hamcrest.CoreMatchers.not;
-import static org.junit.Assert.assertThat;
+import static org.hamcrest.MatcherAssert.assertThat;
import com.android.tools.r8.TestBase;
+import com.android.tools.r8.TestParameters;
import com.android.tools.r8.naming.MemberNaming.MethodSignature;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -16,10 +17,10 @@
abstract class AccessRelaxationTestBase extends TestBase {
- final Backend backend;
+ final TestParameters parameters;
- AccessRelaxationTestBase(Backend backend) {
- this.backend = backend;
+ AccessRelaxationTestBase(TestParameters parameters) {
+ this.parameters = parameters;
}
static void assertPublic(CodeInspector codeInspector, Class clazz, MethodSignature signature) {
diff --git a/src/test/java/com/android/tools/r8/accessrelaxation/ConstructorRelaxationTest.java b/src/test/java/com/android/tools/r8/accessrelaxation/ConstructorRelaxationTest.java
index beb9235..4772b91 100644
--- a/src/test/java/com/android/tools/r8/accessrelaxation/ConstructorRelaxationTest.java
+++ b/src/test/java/com/android/tools/r8/accessrelaxation/ConstructorRelaxationTest.java
@@ -4,12 +4,13 @@
package com.android.tools.r8.accessrelaxation;
import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
+import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import com.android.tools.r8.R8TestRunResult;
-import com.android.tools.r8.ToolHelper;
+import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestParametersCollection;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -160,12 +161,12 @@
};
@Parameterized.Parameters(name = "Backend: {0}")
- public static Backend[] data() {
- return ToolHelper.getBackends();
+ public static TestParametersCollection data() {
+ return getTestParameters().withAllRuntimes().build();
}
- public ConstructorRelaxationTest(Backend backend) {
- super(backend);
+ public ConstructorRelaxationTest(TestParameters parameters) {
+ super(parameters);
}
@Test
@@ -180,7 +181,7 @@
Class mainClass = CtorTestMain.class;
R8TestRunResult result =
- testForR8(backend)
+ testForR8(parameters.getBackend())
.addProgramClasses(mainClass)
.addProgramClasses(CLASSES)
.addOptionsModification(o -> {
@@ -188,17 +189,18 @@
o.enableVerticalClassMerging = false;
})
.noMinification()
- .addKeepRules(
- "-keep class " + mainClass.getCanonicalName() + "{",
- " public static void main(java.lang.String[]);",
- "}",
- "",
- "-keep class *.L* {",
- " <init>(...);",
- "}",
- "",
- "-allowaccessmodification")
- .run(mainClass);
+ .addKeepRules(
+ "-keep class " + mainClass.getCanonicalName() + "{",
+ " public static void main(java.lang.String[]);",
+ "}",
+ "",
+ "-keep class *.L* {",
+ " <init>(...);",
+ "}",
+ "",
+ "-allowaccessmodification")
+ .setMinApi(parameters.getRuntime())
+ .run(parameters.getRuntime(), mainClass);
assertEquals(
expectedOutput,
diff --git a/src/test/java/com/android/tools/r8/accessrelaxation/NoRelaxationForSerializableTest.java b/src/test/java/com/android/tools/r8/accessrelaxation/NoRelaxationForSerializableTest.java
index 08b378d..ca4d1c4 100644
--- a/src/test/java/com/android/tools/r8/accessrelaxation/NoRelaxationForSerializableTest.java
+++ b/src/test/java/com/android/tools/r8/accessrelaxation/NoRelaxationForSerializableTest.java
@@ -10,7 +10,7 @@
import com.android.tools.r8.NeverInline;
import com.android.tools.r8.NeverMerge;
import com.android.tools.r8.R8TestCompileResult;
-import com.android.tools.r8.ToolHelper;
+import com.android.tools.r8.TestParameters;
import com.android.tools.r8.naming.MemberNaming.MethodSignature;
import com.android.tools.r8.utils.BooleanUtils;
import com.android.tools.r8.utils.FileUtils;
@@ -99,13 +99,13 @@
private final boolean accessModification;
private Path configuration;
- @Parameterized.Parameters(name = "Backend: {0}, access-modification: {1}")
+ @Parameterized.Parameters(name = "{0}, access-modification: {1}")
public static List<Object[]> data() {
- return buildParameters(ToolHelper.getBackends(), BooleanUtils.values());
+ return buildParameters(getTestParameters().withAllRuntimes().build(), BooleanUtils.values());
}
- public NoRelaxationForSerializableTest(Backend backend, boolean accessModification) {
- super(backend);
+ public NoRelaxationForSerializableTest(TestParameters parameters, boolean accessModification) {
+ super(parameters);
this.accessModification = accessModification;
}
@@ -120,36 +120,39 @@
@Test
public void testProguard_withKeepRules() throws Exception {
- assumeTrue(backend == Backend.CF);
+ assumeTrue(parameters.isCfRuntime());
testForProguard()
.addProgramClasses(CLASSES)
.addKeepRuleFiles(configuration)
.addKeepRules(KEEPMEMBER_RULES)
.compile()
- .run(MAIN)
+ .run(parameters.getRuntime(), MAIN)
.assertSuccessWithOutput(EXPECTED_OUTPUT)
.inspect(this::inspect);
}
@Test
public void testR8_withKeepRules() throws Exception {
- R8TestCompileResult result = testForR8(backend)
+ R8TestCompileResult result = testForR8(parameters.getBackend())
.addProgramClasses(CLASSES)
.enableClassInliningAnnotations()
.enableInliningAnnotations()
.addKeepRuleFiles(configuration)
.addKeepRules(KEEPMEMBER_RULES)
+ .setMinApi(parameters.getRuntime())
.compile()
.inspect(this::inspect);
// TODO(b/117302947): Need to update ART binary.
- if (backend == Backend.CF) {
- result.run(MAIN).assertSuccessWithOutput(EXPECTED_OUTPUT);
+ if (parameters.isCfRuntime()) {
+ result
+ .run(parameters.getRuntime(), MAIN)
+ .assertSuccessWithOutput(EXPECTED_OUTPUT);
}
}
@Test
public void testProguard_withoutKeepRules() throws Exception {
- assumeTrue(backend == Backend.CF);
+ assumeTrue(parameters.isCfRuntime());
testForProguard()
.addProgramClasses(CLASSES)
.addKeepRuleFiles(configuration)
@@ -160,15 +163,18 @@
@Test
public void testR8_withoutKeepRules() throws Exception {
- R8TestCompileResult result = testForR8(backend)
+ R8TestCompileResult result = testForR8(parameters.getBackend())
.addProgramClasses(CLASSES)
.enableClassInliningAnnotations()
.enableInliningAnnotations()
.addKeepRuleFiles(configuration)
+ .setMinApi(parameters.getRuntime())
.compile();
// TODO(b/117302947): Need to update ART binary.
- if (backend == Backend.CF) {
- result.run(MAIN).assertFailureWithErrorThatMatches(containsString("Could not deserialize"));
+ if (parameters.isCfRuntime()) {
+ result
+ .run(parameters.getRuntime(), MAIN)
+ .assertFailureWithErrorThatMatches(containsString("Could not deserialize"));
}
}
diff --git a/src/test/java/com/android/tools/r8/accessrelaxation/NonConstructorRelaxationTest.java b/src/test/java/com/android/tools/r8/accessrelaxation/NonConstructorRelaxationTest.java
index 0c64040..b780877 100644
--- a/src/test/java/com/android/tools/r8/accessrelaxation/NonConstructorRelaxationTest.java
+++ b/src/test/java/com/android/tools/r8/accessrelaxation/NonConstructorRelaxationTest.java
@@ -7,6 +7,7 @@
import static org.junit.Assert.assertEquals;
import com.android.tools.r8.R8TestRunResult;
+import com.android.tools.r8.TestParameters;
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.accessrelaxation.privateinstance.Base;
import com.android.tools.r8.accessrelaxation.privateinstance.Sub1;
@@ -33,13 +34,13 @@
private boolean enableArgumentRemoval;
- @Parameterized.Parameters(name = "Backend: {0}, argument removal: {1}")
+ @Parameterized.Parameters(name = "{0}, argument removal: {1}")
public static List<Object[]> data() {
- return buildParameters(ToolHelper.getBackends(), BooleanUtils.values());
+ return buildParameters(getTestParameters().withAllRuntimes().build(), BooleanUtils.values());
}
- public NonConstructorRelaxationTest(Backend backend, boolean enableArgumentRemoval) {
- super(backend);
+ public NonConstructorRelaxationTest(TestParameters parameters, boolean enableArgumentRemoval) {
+ super(parameters);
this.enableArgumentRemoval = enableArgumentRemoval;
}
@@ -65,13 +66,16 @@
"B::foo()A::foo()A::baz()A::bar()A::bar(int)",
"C::blah(int)");
Class<?> mainClass = C.class;
- if (backend == Backend.CF) {
- // Only run JVM reference once (for CF backend)
- testForJvm().addTestClasspath().run(mainClass).assertSuccessWithOutput(expectedOutput);
+ if (parameters.isCfRuntime()) {
+ // Only run JVM reference on CF runtimes.
+ testForJvm()
+ .addTestClasspath()
+ .run(parameters.getRuntime(), mainClass)
+ .assertSuccessWithOutput(expectedOutput);
}
R8TestRunResult result =
- testForR8(backend)
+ testForR8(parameters.getBackend())
.addProgramFiles(ToolHelper.getClassFilesForTestPackage(mainClass.getPackage()))
.enableInliningAnnotations()
.enableMemberValuePropagationAnnotations()
@@ -101,7 +105,8 @@
"}",
"",
"-allowaccessmodification")
- .run(mainClass);
+ .setMinApi(parameters.getRuntime())
+ .run(parameters.getRuntime(), mainClass);
assertEquals(
expectedOutput,
@@ -145,13 +150,16 @@
"Itf2::foo2(0) >> Sub2::foo2()",
"Sub2::bar2(0)");
Class<?> mainClass = TestMain.class;
- if (backend == Backend.CF) {
- // Only run JVM reference once (for CF backend)
- testForJvm().addTestClasspath().run(mainClass).assertSuccessWithOutput(expectedOutput);
+ if (parameters.isCfRuntime()) {
+ // Only run JVM reference on CF runtimes.
+ testForJvm()
+ .addTestClasspath()
+ .run(parameters.getRuntime(), mainClass)
+ .assertSuccessWithOutput(expectedOutput);
}
R8TestRunResult result =
- testForR8(backend)
+ testForR8(parameters.getBackend())
.addProgramFiles(ToolHelper.getClassFilesForTestPackage(mainClass.getPackage()))
.addOptionsModification(o -> o.enableVerticalClassMerging = enableVerticalClassMerging)
.enableInliningAnnotations()
@@ -175,7 +183,8 @@
"}",
"",
"-allowaccessmodification")
- .run(mainClass);
+ .setMinApi(parameters.getRuntime())
+ .run(parameters.getRuntime(), mainClass);
assertEquals(
expectedOutput,
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/AlwaysThrowNullTest.java b/src/test/java/com/android/tools/r8/ir/optimize/AlwaysThrowNullTest.java
index cc5893c..ec441a0 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/AlwaysThrowNullTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/AlwaysThrowNullTest.java
@@ -178,7 +178,7 @@
@Test
public void testJvmOutput() throws Exception {
- assumeTrue("Only run JVM reference once (for CF backend)", parameters.isCfRuntime());
+ assumeTrue("Only run JVM reference on CF runtimes", parameters.isCfRuntime());
testForJvm()
.addTestClasspath()
.run(parameters.getRuntime(), MAIN)
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/ConstClassCanonicalizationTest.java b/src/test/java/com/android/tools/r8/ir/optimize/ConstClassCanonicalizationTest.java
index 08d4273..f0ba71e 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/ConstClassCanonicalizationTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/ConstClassCanonicalizationTest.java
@@ -107,7 +107,7 @@
@Test
public void testJVMOutput() throws Exception {
- assumeTrue("Only run JVM reference once (for CF backend)", parameters.isCfRuntime());
+ assumeTrue("Only run JVM reference on CF runtimes", parameters.isCfRuntime());
testForJvm()
.addTestClasspath()
.run(parameters.getRuntime(), MAIN)
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/IdempotentFunctionCallCanonicalizationTest.java b/src/test/java/com/android/tools/r8/ir/optimize/IdempotentFunctionCallCanonicalizationTest.java
index 65336aa..1cc0288 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/IdempotentFunctionCallCanonicalizationTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/IdempotentFunctionCallCanonicalizationTest.java
@@ -108,7 +108,7 @@
@Test
public void testJVMOutput() throws Exception {
- assumeTrue("Only run JVM reference once (for CF backend)", parameters.isCfRuntime());
+ assumeTrue("Only run JVM reference on CF runtimes", parameters.isCfRuntime());
testForJvm()
.addTestClasspath()
.run(parameters.getRuntime(), MAIN)
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/ObjectsRequireNonNullTest.java b/src/test/java/com/android/tools/r8/ir/optimize/ObjectsRequireNonNullTest.java
index df4598f..7cd6dc0 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/ObjectsRequireNonNullTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/ObjectsRequireNonNullTest.java
@@ -120,7 +120,7 @@
@Test
public void testJvmOutput() throws Exception {
- assumeTrue("Only run JVM reference once (for CF backend)", parameters.isCfRuntime());
+ assumeTrue("Only run JVM reference on CF runtimes", parameters.isCfRuntime());
testForJvm()
.addTestClasspath()
.run(parameters.getRuntime(), MAIN)
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetClassTest.java b/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetClassTest.java
index d1bd6c0..2fab599 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetClassTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetClassTest.java
@@ -137,7 +137,7 @@
@Test
public void testJVMOutput() throws Exception {
- assumeTrue("Only run JVM reference once (for CF backend)", parameters.isCfRuntime());
+ assumeTrue("Only run JVM reference on CF runtimes", parameters.isCfRuntime());
testForJvm()
.addTestClasspath()
.run(parameters.getRuntime(), MAIN)
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetNameInClassInitializerTest.java b/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetNameInClassInitializerTest.java
index 8ebc848..5e11c17 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetNameInClassInitializerTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetNameInClassInitializerTest.java
@@ -52,7 +52,7 @@
@Test
public void testJVMOutput() throws Exception {
assumeTrue(
- "Only run JVM reference once (for CF backend)",
+ "Only run JVM reference on CF runtimes",
parameters.isCfRuntime() && !enableMinification);
testForJvm()
.addTestClasspath()
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetNameTest.java b/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetNameTest.java
index 6c21b28..2095584 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetNameTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetNameTest.java
@@ -218,7 +218,7 @@
@Test
public void testJVMOutput() throws Exception {
assumeTrue(
- "Only run JVM reference once (for CF backend)",
+ "Only run JVM reference on CF runtimes",
parameters.isCfRuntime() && !enableMinification);
testForJvm()
.addTestClasspath()
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetSimpleNameTest.java b/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetSimpleNameTest.java
index 0d9c034..710e592 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetSimpleNameTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/reflection/GetSimpleNameTest.java
@@ -164,7 +164,7 @@
@Test
public void testJVMOutput() throws Exception {
assumeTrue(
- "Only run JVM reference once (for CF backend)",
+ "Only run JVM reference on CF runtimes",
parameters.isCfRuntime() && !enableMinification);
testForJvm()
.addTestClasspath()
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/string/NameThenLengthTest.java b/src/test/java/com/android/tools/r8/ir/optimize/string/NameThenLengthTest.java
index e030780..8f227e3 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/string/NameThenLengthTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/string/NameThenLengthTest.java
@@ -81,7 +81,7 @@
@Test
public void testJVMOutput() throws Exception {
- assumeTrue("Only run JVM reference once (for CF backend)", parameters.isCfRuntime());
+ assumeTrue("Only run JVM reference on CF runtimes", parameters.isCfRuntime());
testForJvm()
.addTestClasspath()
.run(parameters.getRuntime(), MAIN)
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/string/StringConcatenationTest.java b/src/test/java/com/android/tools/r8/ir/optimize/string/StringConcatenationTest.java
index af13cb9..b0c07a7 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/string/StringConcatenationTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/string/StringConcatenationTest.java
@@ -52,7 +52,7 @@
@Test
public void testJVMOutput() throws Exception {
- assumeTrue("Only run JVM reference once (for CF backend)", parameters.isCfRuntime());
+ assumeTrue("Only run JVM reference on CF runtimes", parameters.isCfRuntime());
testForJvm()
.addTestClasspath()
.run(parameters.getRuntime(), MAIN)
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/string/StringContentCheckTest.java b/src/test/java/com/android/tools/r8/ir/optimize/string/StringContentCheckTest.java
index 153e6b0..f0e5bae 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/string/StringContentCheckTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/string/StringContentCheckTest.java
@@ -187,7 +187,7 @@
@Test
public void testJVMOutput() throws Exception {
- assumeTrue("Only run JVM reference once (for CF backend)", parameters.isCfRuntime());
+ assumeTrue("Only run JVM reference on CF runtimes", parameters.isCfRuntime());
testForJvm()
.addTestClasspath()
.run(parameters.getRuntime(), MAIN)
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/string/StringInMonitorTest.java b/src/test/java/com/android/tools/r8/ir/optimize/string/StringInMonitorTest.java
index c4ec59a..a8dfd4c 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/string/StringInMonitorTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/string/StringInMonitorTest.java
@@ -95,7 +95,7 @@
@Test
public void testJVMOutput() throws Exception {
- assumeTrue("Only run JVM reference once (for CF backend)", parameters.isCfRuntime());
+ assumeTrue("Only run JVM reference on CF runtimes", parameters.isCfRuntime());
testForJvm()
.addTestClasspath()
.run(parameters.getRuntime(), MAIN)
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/string/StringIsEmptyTest.java b/src/test/java/com/android/tools/r8/ir/optimize/string/StringIsEmptyTest.java
index ffa3966..7ee2bb6 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/string/StringIsEmptyTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/string/StringIsEmptyTest.java
@@ -74,7 +74,7 @@
@Test
public void testJVMOutput() throws Exception {
- assumeTrue("Only run JVM reference once (for CF backend)", parameters.isCfRuntime());
+ assumeTrue("Only run JVM reference on CF runtimes", parameters.isCfRuntime());
testForJvm()
.addTestClasspath()
.run(parameters.getRuntime(), MAIN)
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/string/StringLengthTest.java b/src/test/java/com/android/tools/r8/ir/optimize/string/StringLengthTest.java
index 735645c..667abaa 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/string/StringLengthTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/string/StringLengthTest.java
@@ -105,7 +105,7 @@
@Test
public void testJVMOutput() throws Exception {
- assumeTrue("Only run JVM reference once (for CF backend)", parameters.isCfRuntime());
+ assumeTrue("Only run JVM reference on CF runtimes", parameters.isCfRuntime());
// TODO(b/119097175)
if (!ToolHelper.isWindows()) {
testForJvm()
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/string/StringToStringTest.java b/src/test/java/com/android/tools/r8/ir/optimize/string/StringToStringTest.java
index d6af1d2..d4ab8e1 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/string/StringToStringTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/string/StringToStringTest.java
@@ -72,7 +72,7 @@
@Test
public void testJVMOutput() throws Exception {
- assumeTrue("Only run JVM reference once (for CF backend)", parameters.isCfRuntime());
+ assumeTrue("Only run JVM reference on CF runtimes", parameters.isCfRuntime());
testForJvm()
.addTestClasspath()
.run(parameters.getRuntime(), MAIN)
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/string/StringValueOfTest.java b/src/test/java/com/android/tools/r8/ir/optimize/string/StringValueOfTest.java
index 91ffa3d..c75d6e4 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/string/StringValueOfTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/string/StringValueOfTest.java
@@ -151,7 +151,7 @@
@Test
public void testJVMOutput() throws Exception {
- assumeTrue("Only run JVM reference once (for CF backend)", parameters.isCfRuntime());
+ assumeTrue("Only run JVM reference on CF runtimes", parameters.isCfRuntime());
testForJvm()
.addTestClasspath()
.run(parameters.getRuntime(), MAIN)
diff --git a/src/test/java/com/android/tools/r8/shaking/annotations/ReflectiveAnnotationUseTest.java b/src/test/java/com/android/tools/r8/shaking/annotations/ReflectiveAnnotationUseTest.java
index e08e8f7..74f4321 100644
--- a/src/test/java/com/android/tools/r8/shaking/annotations/ReflectiveAnnotationUseTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/annotations/ReflectiveAnnotationUseTest.java
@@ -7,12 +7,12 @@
import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
import static org.junit.Assume.assumeTrue;
import com.android.tools.r8.KotlinTestBase;
-import com.android.tools.r8.ToolHelper;
+import com.android.tools.r8.TestParameters;
import com.android.tools.r8.ToolHelper.KotlinTargetVersion;
import com.android.tools.r8.graph.DexAnnotationElement;
import com.android.tools.r8.utils.AndroidApp;
@@ -56,24 +56,27 @@
"f4", "field4]"
);
- private final Backend backend;
+ private final TestParameters parameters;
private final boolean minify;
- @Parameterized.Parameters(name = "Backend: {0} target: {1} minify: {2}")
+ @Parameterized.Parameters(name = "{0} target: {1} minify: {2}")
public static Collection<Object[]> data() {
- return buildParameters(ToolHelper.getBackends(), KotlinTargetVersion.values(), BooleanUtils.values());
+ return buildParameters(
+ getTestParameters().withAllRuntimes().build(),
+ KotlinTargetVersion.values(),
+ BooleanUtils.values());
}
public ReflectiveAnnotationUseTest(
- Backend backend, KotlinTargetVersion targetVersion, boolean minify) {
+ TestParameters parameters, KotlinTargetVersion targetVersion, boolean minify) {
super(targetVersion);
- this.backend = backend;
+ this.parameters = parameters;
this.minify = minify;
}
@Test
- public void b120951621_JVMoutput() throws Exception {
- assumeTrue("Only run JVM reference once (for CF backend)", backend == Backend.CF);
+ public void b120951621_JVMOutput() throws Exception {
+ assumeTrue("Only run JVM reference on CF runtimes", parameters.isCfRuntime());
AndroidApp app = AndroidApp.builder()
.addProgramFile(getKotlinJarFile(FOLDER))
.addProgramFile(getJavaJarFile(FOLDER))
@@ -84,7 +87,7 @@
@Test
public void b120951621_keepAll() throws Exception {
- CodeInspector inspector = testForR8(backend)
+ CodeInspector inspector = testForR8(parameters.getBackend())
.addProgramFiles(getKotlinJarFile(FOLDER))
.addProgramFiles(getJavaJarFile(FOLDER))
.addKeepMainRule(MAIN_CLASS_NAME)
@@ -95,7 +98,8 @@
"}"
)
.minification(minify)
- .run(MAIN_CLASS_NAME)
+ .setMinApi(parameters.getRuntime())
+ .run(parameters.getRuntime(), MAIN_CLASS_NAME)
.assertSuccessWithOutput(JAVA_OUTPUT).inspector();
ClassSubject clazz = inspector.clazz(ANNOTATION_NAME);
assertThat(clazz, isPresent());
@@ -122,7 +126,7 @@
@Test
public void b120951621_partiallyKeep() throws Exception {
- CodeInspector inspector = testForR8(backend)
+ CodeInspector inspector = testForR8(parameters.getBackend())
.addProgramFiles(getKotlinJarFile(FOLDER))
.addProgramFiles(getJavaJarFile(FOLDER))
.addKeepMainRule(MAIN_CLASS_NAME)
@@ -133,7 +137,8 @@
"}"
)
.minification(minify)
- .run(MAIN_CLASS_NAME)
+ .setMinApi(parameters.getRuntime())
+ .run(parameters.getRuntime(), MAIN_CLASS_NAME)
.assertSuccessWithOutput(JAVA_OUTPUT).inspector();
ClassSubject clazz = inspector.clazz(ANNOTATION_NAME);
assertThat(clazz, isPresent());
@@ -158,13 +163,14 @@
@Test
public void b120951621_keepAnnotation() throws Exception {
- CodeInspector inspector = testForR8(backend)
+ CodeInspector inspector = testForR8(parameters.getBackend())
.addProgramFiles(getKotlinJarFile(FOLDER))
.addProgramFiles(getJavaJarFile(FOLDER))
.addKeepMainRule(MAIN_CLASS_NAME)
.addKeepRules(KEEP_ANNOTATIONS)
.minification(minify)
- .run(MAIN_CLASS_NAME)
+ .setMinApi(parameters.getRuntime())
+ .run(parameters.getRuntime(), MAIN_CLASS_NAME)
.assertSuccessWithOutput(JAVA_OUTPUT).inspector();
ClassSubject clazz = inspector.clazz(ANNOTATION_NAME);
assertThat(clazz, isPresent());
@@ -189,12 +195,13 @@
@Test
public void b120951621_noKeep() throws Exception {
- CodeInspector inspector = testForR8(backend)
+ CodeInspector inspector = testForR8(parameters.getBackend())
.addProgramFiles(getKotlinJarFile(FOLDER))
.addProgramFiles(getJavaJarFile(FOLDER))
.addKeepMainRule(MAIN_CLASS_NAME)
.minification(minify)
- .run(MAIN_CLASS_NAME)
+ .setMinApi(parameters.getRuntime())
+ .run(parameters.getRuntime(), MAIN_CLASS_NAME)
.assertSuccessWithOutput(OUTPUT_WITHOUT_ANNOTATION).inspector();
ClassSubject clazz = inspector.clazz(ANNOTATION_NAME);
assertThat(clazz, isPresent());