Enable CF on Regress65432240 test.

Change-Id: I6bc61d59971ec8f8d4d91dc000452f077aefeec1
diff --git a/src/test/java/com/android/tools/r8/jasmin/Regress65432240.java b/src/test/java/com/android/tools/r8/jasmin/Regress65432240.java
index 6290e20..b97cd7e 100644
--- a/src/test/java/com/android/tools/r8/jasmin/Regress65432240.java
+++ b/src/test/java/com/android/tools/r8/jasmin/Regress65432240.java
@@ -6,18 +6,39 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
+import com.android.tools.r8.R8Command;
 import com.android.tools.r8.ToolHelper;
-import com.android.tools.r8.code.IfNez;
-import com.android.tools.r8.graph.DexCode;
-import com.android.tools.r8.graph.DexEncodedMethod;
 import com.android.tools.r8.jasmin.JasminBuilder.ClassFileVersion;
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
 import com.android.tools.r8.utils.AndroidApp;
+import com.android.tools.r8.utils.codeinspector.CfInstructionSubject;
+import com.android.tools.r8.utils.codeinspector.ClassSubject;
+import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.codeinspector.InstructionSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import com.google.common.collect.ImmutableList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
+@RunWith(Parameterized.class)
 public class Regress65432240 extends JasminTestBase {
 
+  private Backend backend;
+
+  @Parameterized.Parameters(name = "Backend: {0}")
+  public static Collection<Backend> data() {
+    return Arrays.asList(Backend.values());
+  }
+
+  public Regress65432240(Backend backend) {
+    this.backend = backend;
+  }
+
   @Test
   public void testConstantNotIntoEntryBlock() throws Exception {
     JasminBuilder builder = new JasminBuilder(ClassFileVersion.JDK_1_4);
@@ -58,13 +79,38 @@
     String expected = runOnJava(builder, clazz.name);
 
     AndroidApp originalApplication = builder.build();
-    AndroidApp processedApplication = ToolHelper.runR8(originalApplication);
+    AndroidApp processedApplication =
+        ToolHelper.runR8(
+            R8Command.builder(originalApplication)
+                .setProgramConsumer(emptyConsumer(backend))
+                .addLibraryFiles(runtimeJar(backend))
+                .build());
 
-    DexEncodedMethod method = getMethod(processedApplication, clazz.name, signature);
-    DexCode code = method.getCode().asDexCode();
-    assertTrue(code.instructions[0] instanceof IfNez);
+    CodeInspector inspector =
+        new CodeInspector(processedApplication, o -> o.enableCfFrontend = true);
+    ClassSubject inspectedClass = inspector.clazz(clazz.name);
+    MethodSubject method = inspectedClass.method(signature);
+    assertTrue(method.isPresent());
+    Iterator<InstructionSubject> iterator = method.iterateInstructions();
+    InstructionSubject instruction = null;
+    boolean found = false;
+    while (iterator.hasNext()) {
+      instruction = iterator.next();
+      if (!(instruction instanceof CfInstructionSubject)
+          || !((CfInstructionSubject) instruction).isLoad()) {
+        found = true;
+        break;
+      }
+    }
+    assertTrue(found && instruction.isIfNez());
 
-    String artResult = runOnArtR8(builder, clazz.name);
-    assertEquals(expected, artResult);
+    String result;
+    if (backend == Backend.DEX) {
+      result = runOnArt(processedApplication, clazz.name);
+    } else {
+      assert backend == Backend.CF;
+      result = runOnJava(processedApplication, clazz.name, Collections.emptyList());
+    }
+    assertEquals(expected, result);
   }
 }
diff --git a/src/test/java/com/android/tools/r8/utils/codeinspector/CfInstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/CfInstructionSubject.java
index 6aa54df..f639e87 100644
--- a/src/test/java/com/android/tools/r8/utils/codeinspector/CfInstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/CfInstructionSubject.java
@@ -13,6 +13,7 @@
 import com.android.tools.r8.cf.code.CfInvoke;
 import com.android.tools.r8.cf.code.CfInvokeDynamic;
 import com.android.tools.r8.cf.code.CfLabel;
+import com.android.tools.r8.cf.code.CfLoad;
 import com.android.tools.r8.cf.code.CfNew;
 import com.android.tools.r8.cf.code.CfNop;
 import com.android.tools.r8.cf.code.CfPosition;
@@ -155,4 +156,8 @@
   public boolean isIfNull() {
     return instruction instanceof CfIf && ((CfIf) instruction).getOpcode() == Opcodes.IFNULL;
   }
+
+  public boolean isLoad() {
+    return instruction instanceof CfLoad;
+  }
 }