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