Fix test expectation for RedundantConstNumberRemovalTest

For Version < 5 we do not perform this optimization due to an art bug.

Bug: 138917494
Change-Id: I56fb3d33a1c63c2a1c4e3cc5465d5144881c022e
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/RedundantConstNumberRemovalTest.java b/src/test/java/com/android/tools/r8/ir/optimize/RedundantConstNumberRemovalTest.java
index f9df2a6..08756f5 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/RedundantConstNumberRemovalTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/RedundantConstNumberRemovalTest.java
@@ -13,7 +13,9 @@
 import com.android.tools.r8.NeverInline;
 import com.android.tools.r8.R8TestRunResult;
 import com.android.tools.r8.TestBase;
-import com.android.tools.r8.ToolHelper;
+import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.ToolHelper.DexVm.Version;
 import com.android.tools.r8.ir.code.BasicBlock;
 import com.android.tools.r8.ir.code.IRCode;
 import com.android.tools.r8.ir.code.Instruction;
@@ -30,15 +32,18 @@
 @RunWith(Parameterized.class)
 public class RedundantConstNumberRemovalTest extends TestBase {
 
-  private final Backend backend;
+  private final TestParameters parameters;
 
-  @Parameters(name = "Backend: {0}")
-  public static Backend[] data() {
-    return ToolHelper.getBackends();
+  @Parameters(name = "{0}")
+  public static TestParametersCollection data() {
+    return getTestParameters()
+        .withCfRuntimes()
+        .withDexRuntimesStartingFromExcluding(Version.V4_4_4)
+        .build();
   }
 
-  public RedundantConstNumberRemovalTest(Backend backend) {
-    this.backend = backend;
+  public RedundantConstNumberRemovalTest(TestParameters parameters) {
+    this.parameters = parameters;
   }
 
   @Test
@@ -48,17 +53,18 @@
             "true", "true", "true", "true", "true", "true", "true", "true", "true", "true", "true",
             "true", "true", "true", "true", "true");
 
-    if (backend == Backend.CF) {
+    if (parameters.getBackend() == Backend.CF) {
       testForJvm().addTestClasspath().run(TestClass.class).assertSuccessWithOutput(expectedOutput);
     }
 
     R8TestRunResult result =
-        testForR8(backend)
+        testForR8(parameters.getBackend())
             .addInnerClasses(RedundantConstNumberRemovalTest.class)
             .addKeepClassAndMembersRules(TestClass.class)
             .enableInliningAnnotations()
             .addOptionsModification(
                 internalOptions -> internalOptions.enableRedundantConstNumberOptimization = true)
+            .setMinApi(parameters.getRuntime())
             .run(TestClass.class)
             .assertSuccessWithOutput(expectedOutput);
 
@@ -77,21 +83,23 @@
   private void verifyBooleanCheckTest(MethodSubject methodSubject) {
     assertThat(methodSubject, isPresent());
 
-    if (backend == Backend.DEX) {
+    if (parameters.getBackend() == Backend.DEX) {
       // Check that the generated code for booleanCheckTest() only has a return instruction.
       assertEquals(1, methodSubject.streamInstructions().count());
       assertTrue(methodSubject.iterateInstructions().next().isReturn());
     } else {
-      assert backend == Backend.CF;
+      assert parameters.getBackend() == Backend.CF;
       // Check that the generated code for booleanCheckTest() only has return instructions that
       // return the argument.
       // TODO(christofferqa): CF backend does not share identical prefix of successors.
-      IRCode code = methodSubject.buildIR();
-      assertTrue(
-          Streams.stream(code.instructionIterator())
-              .filter(Instruction::isReturn)
-              .allMatch(
-                  instruction -> instruction.asReturn().returnValue().definition.isArgument()));
+      // TODO(mkroghj): Redundant ConstNumber has also been disabled on CF, by
+      //   canHaveDalvikIntUsedAsNonIntPrimitiveTypeBug() that checks for CF.
+      // IRCode code = methodSubject.buildIR();
+      // assertTrue(
+      //     Streams.stream(code.instructionIterator())
+      //         .filter(Instruction::isReturn)
+      //         .allMatch(
+      //             instruction -> instruction.asReturn().returnValue().definition.isArgument()));
     }
   }
 
@@ -99,7 +107,7 @@
     assertThat(methodSubject, isPresent());
     IRCode code = methodSubject.buildIR();
 
-    if (backend == Backend.DEX) {
+    if (parameters.getBackend() == Backend.DEX) {
       // Only a single basic block.
       assertEquals(1, code.blocks.size());
       // The block only has three instructions.
@@ -121,11 +129,13 @@
       // Check that the generated code for intCheckTest() only has return instructions that
       // return the argument.
       // TODO(christofferqa): CF backend does not share identical prefix of successors.
-      assertTrue(
-          Streams.stream(code.instructionIterator())
-              .filter(Instruction::isReturn)
-              .allMatch(
-                  instruction -> instruction.asReturn().returnValue().definition.isArgument()));
+      // TODO(mkroghj): Redundant ConstNumber has also been disabled on CF, by
+      //   canHaveDalvikIntUsedAsNonIntPrimitiveTypeBug() that checks for CF.
+      // assertTrue(
+      //     Streams.stream(code.instructionIterator())
+      //         .filter(Instruction::isReturn)
+      //         .allMatch(
+      //             instruction -> instruction.asReturn().returnValue().definition.isArgument()));
     }
   }