Use main compiler entry points in jasmin tests.

Instead of using writeApplication to write a jasmin test with the DEX
backend, this now invokes D8 proper. Tests that explicitly used R8
before, now go through the full R8 toolchain.

Bug:
Change-Id: I5e5435830d40ee27f0234b9f2dd3450338469159
diff --git a/src/test/java/com/android/tools/r8/jasmin/BooleanByteConfusion.java b/src/test/java/com/android/tools/r8/jasmin/BooleanByteConfusion.java
index 8857e2c..c475888 100644
--- a/src/test/java/com/android/tools/r8/jasmin/BooleanByteConfusion.java
+++ b/src/test/java/com/android/tools/r8/jasmin/BooleanByteConfusion.java
@@ -12,7 +12,7 @@
 
   private void runTest(JasminBuilder builder, String main) throws Exception {
     String javaResult = runOnJava(builder, main);
-    String artResult = runOnArt(builder, main);
+    String artResult = runOnArtD8(builder, main);
     assertEquals(javaResult, artResult);
     String dxArtResult = runOnArtDx(builder, main);
     assertEquals(javaResult, dxArtResult);
diff --git a/src/test/java/com/android/tools/r8/jasmin/FillBooleanArrayTruncation.java b/src/test/java/com/android/tools/r8/jasmin/FillBooleanArrayTruncation.java
index c8b7803..a648381 100644
--- a/src/test/java/com/android/tools/r8/jasmin/FillBooleanArrayTruncation.java
+++ b/src/test/java/com/android/tools/r8/jasmin/FillBooleanArrayTruncation.java
@@ -14,7 +14,7 @@
 
   private void runOnDalvikCheckVerifyError(JasminBuilder builder, String main) throws Exception {
     try {
-      runOnArt(builder, main);
+      runOnArtD8(builder, main);
     } catch (AssertionError e) {
       assert e.toString().contains("VerifyError");
     }
@@ -35,7 +35,7 @@
       runOnDalvikCheckVerifyError(builder, main);
       runOnDalvikDxCheckVerifyError(builder, main);
     } else {
-      String artResult = runOnArt(builder, main);
+      String artResult = runOnArtD8(builder, main);
       assertEquals(javaResult, artResult);
       String dxArtResult = runOnArtDx(builder, main);
       assertEquals(javaResult, dxArtResult);
diff --git a/src/test/java/com/android/tools/r8/jasmin/InvalidClassNames.java b/src/test/java/com/android/tools/r8/jasmin/InvalidClassNames.java
index c5566fc..6e9efa6 100644
--- a/src/test/java/com/android/tools/r8/jasmin/InvalidClassNames.java
+++ b/src/test/java/com/android/tools/r8/jasmin/InvalidClassNames.java
@@ -3,15 +3,14 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.jasmin;
 
-import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
 
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.errors.CompilationError;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.concurrent.ExecutionException;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -35,13 +34,10 @@
     }
     String artResult = null;
     try {
-      artResult = runOnArt(builder, main);
+      artResult = runOnArtD8(builder, main);
       fail();
-    } catch (ExecutionException t) {
-      if (!(t.getCause() instanceof CompilationError)) {
-        t.printStackTrace(System.out);
-        fail("Invalid dex class names should be compilation errors.");
-      }
+    } catch (CompilationError t) {
+      // Intentionally left empty.
     } catch (Throwable t) {
       t.printStackTrace(System.out);
       fail("Invalid dex class names should be compilation errors.");
@@ -51,21 +47,21 @@
 
   @Parameters
   public static Collection<Object[]> data() {
-    return Arrays.asList(new Object[][] {
-        { "\u00a0", !ToolHelper.isJava9Runtime()},
-        { "\u2000", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
-        { "\u200f", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
-        { "\u2028", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
-        { "\u202f", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
-        { "\ud800", false},
-        { "\udfff", false},
-        { "\ufff0", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
-        { "\uffff", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
-        { "a/b/c/a/D/", true },
-        { "a<b", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
-        { "a>b", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
-        { "<a>b", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
-        { "<a>", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()}
+    return Arrays.asList(new Object[][]{
+        {"\u00a0", !ToolHelper.isJava9Runtime()},
+        {"\u2000", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
+        {"\u200f", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
+        {"\u2028", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
+        {"\u202f", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
+        {"\ud800", false},
+        {"\udfff", false},
+        {"\ufff0", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
+        {"\uffff", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
+        {"a/b/c/a/D/", true},
+        {"a<b", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
+        {"a>b", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
+        {"<a>b", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()},
+        {"<a>", !ToolHelper.isWindows() && !ToolHelper.isJava9Runtime()}
     });
   }
 
diff --git a/src/test/java/com/android/tools/r8/jasmin/InvalidFieldNames.java b/src/test/java/com/android/tools/r8/jasmin/InvalidFieldNames.java
index b182cd8..7caac8e 100644
--- a/src/test/java/com/android/tools/r8/jasmin/InvalidFieldNames.java
+++ b/src/test/java/com/android/tools/r8/jasmin/InvalidFieldNames.java
@@ -3,15 +3,15 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.jasmin;
 
-import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.errors.CompilationError;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.concurrent.ExecutionException;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -35,34 +35,31 @@
     }
     String artResult = null;
     try {
-      artResult = runOnArt(builder, main);
+      artResult = runOnArtD8(builder, main);
       fail();
-    } catch (ExecutionException t) {
-      if (!(t.getCause() instanceof CompilationError)) {
-        t.printStackTrace(System.out);
-        fail("Invalid dex field names should be compilation errors.");
-      }
+    } catch (CompilationError t) {
+      assertTrue(t.getMessage().contains(name));
     }
     assertNull("Invalid dex field names should be rejected.", artResult);
   }
 
   @Parameters
   public static Collection<Object[]> data() {
-    return Arrays.asList(new Object[][] {
-        { "\u00a0", !ToolHelper.isJava9Runtime()},
-        { "\u2000", !ToolHelper.isJava9Runtime()},
-        { "\u200f", !ToolHelper.isJava9Runtime()},
-        { "\u2028", !ToolHelper.isJava9Runtime()},
-        { "\u202f", !ToolHelper.isJava9Runtime()},
-        { "\ud800", !ToolHelper.isJava9Runtime()},
-        { "\udfff", !ToolHelper.isJava9Runtime()},
-        { "\ufff0", !ToolHelper.isJava9Runtime()},
-        { "\uffff", !ToolHelper.isJava9Runtime()},
-        { "a/b", false },
-        { "<a", false },
-        { "a>", !ToolHelper.isJava9Runtime() },
-        { "a<b>", !ToolHelper.isJava9Runtime() },
-        { "<a>b", !ToolHelper.isJava9Runtime() }
+    return Arrays.asList(new Object[][]{
+        {"\u00a0", !ToolHelper.isJava9Runtime()},
+        {"\u2000", !ToolHelper.isJava9Runtime()},
+        {"\u200f", !ToolHelper.isJava9Runtime()},
+        {"\u2028", !ToolHelper.isJava9Runtime()},
+        {"\u202f", !ToolHelper.isJava9Runtime()},
+        {"\ud800", !ToolHelper.isJava9Runtime()},
+        {"\udfff", !ToolHelper.isJava9Runtime()},
+        {"\ufff0", !ToolHelper.isJava9Runtime()},
+        {"\uffff", !ToolHelper.isJava9Runtime()},
+        {"a/b", false},
+        {"<a", false},
+        {"a>", !ToolHelper.isJava9Runtime()},
+        {"a<b>", !ToolHelper.isJava9Runtime()},
+        {"<a>b", !ToolHelper.isJava9Runtime()}
     });
   }
 
diff --git a/src/test/java/com/android/tools/r8/jasmin/InvalidMethodNames.java b/src/test/java/com/android/tools/r8/jasmin/InvalidMethodNames.java
index 0aa0f59..5f83016 100644
--- a/src/test/java/com/android/tools/r8/jasmin/InvalidMethodNames.java
+++ b/src/test/java/com/android/tools/r8/jasmin/InvalidMethodNames.java
@@ -14,7 +14,6 @@
 import com.google.common.collect.ImmutableList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.concurrent.ExecutionException;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -38,13 +37,9 @@
     }
     String artResult = null;
     try {
-      artResult = runOnArt(builder, main);
+      artResult = runOnArtD8(builder, main);
       fail();
-    } catch (ExecutionException t) {
-      if (!(t.getCause() instanceof CompilationError)) {
-        t.printStackTrace(System.out);
-        fail("Invalid dex method names should be compilation errors.");
-      }
+    } catch (CompilationError t) {
       String asciiString = new DexString(name).toASCIIString();
       assertTrue(t.getMessage().contains(asciiString));
     } catch (Throwable t) {
@@ -56,20 +51,20 @@
 
   @Parameters
   public static Collection<Object[]> data() {
-    return Arrays.asList(new Object[][] {
-        { "\u00a0", !ToolHelper.isJava9Runtime()},
-        { "\u2000", !ToolHelper.isJava9Runtime()},
-        { "\u200f", !ToolHelper.isJava9Runtime()},
-        { "\u2028", !ToolHelper.isJava9Runtime()},
-        { "\u202f", !ToolHelper.isJava9Runtime()},
-        { "\ud800", !ToolHelper.isJava9Runtime()},
-        { "\udfff", !ToolHelper.isJava9Runtime()},
-        { "\ufff0", !ToolHelper.isJava9Runtime()},
-        { "\uffff", !ToolHelper.isJava9Runtime()},
-        { "a/b", false },
-        { "<a", false },
-        { "a>", !ToolHelper.isJava9Runtime() },
-        { "<a>", false }
+    return Arrays.asList(new Object[][]{
+        {"\u00a0", !ToolHelper.isJava9Runtime()},
+        {"\u2000", !ToolHelper.isJava9Runtime()},
+        {"\u200f", !ToolHelper.isJava9Runtime()},
+        {"\u2028", !ToolHelper.isJava9Runtime()},
+        {"\u202f", !ToolHelper.isJava9Runtime()},
+        {"\ud800", !ToolHelper.isJava9Runtime()},
+        {"\udfff", !ToolHelper.isJava9Runtime()},
+        {"\ufff0", !ToolHelper.isJava9Runtime()},
+        {"\uffff", !ToolHelper.isJava9Runtime()},
+        {"a/b", false},
+        {"<a", false},
+        {"a>", !ToolHelper.isJava9Runtime()},
+        {"<a>", false}
     });
   }
 
diff --git a/src/test/java/com/android/tools/r8/jasmin/InvokeSpecialTests.java b/src/test/java/com/android/tools/r8/jasmin/InvokeSpecialTests.java
index c74464f..1907f33 100644
--- a/src/test/java/com/android/tools/r8/jasmin/InvokeSpecialTests.java
+++ b/src/test/java/com/android/tools/r8/jasmin/InvokeSpecialTests.java
@@ -7,7 +7,6 @@
 
 import com.android.tools.r8.ToolHelper;
 import com.google.common.collect.ImmutableList;
-import org.junit.AssumptionViolatedException;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -39,7 +38,7 @@
     String expected = "42";
     String javaResult = runOnJava(builder, clazz.name);
     assertEquals(expected, javaResult);
-    String artResult = runOnArt(builder, clazz.name);
+    String artResult = runOnArtD8(builder, clazz.name);
     assertEquals(expected, artResult);
   }
 
@@ -77,7 +76,7 @@
     if (ToolHelper.artSupported()) {
       thrown.expect(AssertionError.class);
     }
-    String artResult = runOnArt(builder, clazz.name);
+    String artResult = runOnArtD8(builder, clazz.name);
     assertEquals(expected, artResult);
   }
 }
diff --git a/src/test/java/com/android/tools/r8/jasmin/JasminTestBase.java b/src/test/java/com/android/tools/r8/jasmin/JasminTestBase.java
index 15cf848..7421046 100644
--- a/src/test/java/com/android/tools/r8/jasmin/JasminTestBase.java
+++ b/src/test/java/com/android/tools/r8/jasmin/JasminTestBase.java
@@ -6,32 +6,23 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import com.android.tools.r8.CompilationException;
-import com.android.tools.r8.R8;
 import com.android.tools.r8.Resource;
 import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.ToolHelper.ProcessResult;
-import com.android.tools.r8.dex.ApplicationReader;
-import com.android.tools.r8.errors.DexOverflowException;
-import com.android.tools.r8.graph.DexApplication;
 import com.android.tools.r8.graph.DexEncodedMethod;
 import com.android.tools.r8.jasmin.JasminBuilder.ClassBuilder;
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
-import com.android.tools.r8.naming.NamingLens;
 import com.android.tools.r8.utils.AndroidApp;
-import com.android.tools.r8.utils.AndroidAppOutputSink;
 import com.android.tools.r8.utils.DexInspector;
 import com.android.tools.r8.utils.DexInspector.ClassSubject;
 import com.android.tools.r8.utils.DexInspector.MethodSubject;
 import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.OutputMode;
 import com.android.tools.r8.utils.StringUtils;
-import com.android.tools.r8.utils.Timing;
 import com.google.common.collect.ImmutableList;
 import com.google.common.io.ByteStreams;
 import jasmin.ClassFile;
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -41,8 +32,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Executors;
 import java.util.function.Consumer;
 import org.junit.Rule;
 import org.junit.rules.TemporaryFolder;
@@ -93,11 +82,6 @@
     return result.stdout;
   }
 
-  protected String runOnArt(JasminBuilder builder, String main) throws Exception {
-    // TODO(zerny): Make the compiler depend on tool flag?
-    return runOnArtR8(builder, main, new InternalOptions());
-  }
-
   protected AndroidApp compileWithD8(JasminBuilder builder) throws Exception {
     return ToolHelper.runD8(builder.build());
   }
@@ -111,21 +95,21 @@
     return runOnArt(compileWithD8(builder), main);
   }
 
-  protected String runOnArtR8(JasminBuilder builder, String main, InternalOptions options)
+  protected AndroidApp compileWithR8(JasminBuilder builder,
+      Consumer<InternalOptions> optionsConsumer)
       throws Exception {
-    DexApplication app = builder.read();
-    app = process(app, options);
-    AndroidAppOutputSink compatSink = new AndroidAppOutputSink();
-    R8.writeApplication(
-        Executors.newSingleThreadExecutor(),
-        app,
-        compatSink,
-        null,
-        NamingLens.getIdentityLens(),
-        null,
-        options);
-    compatSink.close();
-    return runOnArt(compatSink.build(), main);
+    return ToolHelper.runR8(builder.build(), optionsConsumer);
+  }
+
+  protected String runOnArtR8(JasminBuilder builder, String main) throws Exception {
+    return runOnArtR8(builder, main, null);
+  }
+
+  protected String runOnArtR8(JasminBuilder builder, String main,
+      Consumer<InternalOptions> optionsConsumer)
+      throws Exception {
+    AndroidApp result = compileWithR8(builder, optionsConsumer);
+    return runOnArt(result, main);
   }
 
   private ProcessResult runDx(JasminBuilder builder, File classes, Path dex) throws Exception {
@@ -174,70 +158,31 @@
     return ToolHelper.runArtNoVerificationErrors(out.toString(), main);
   }
 
-  protected static DexApplication process(DexApplication app, InternalOptions options)
-      throws IOException, CompilationException, ExecutionException {
-    return ToolHelper.optimizeWithR8(app, options);
-  }
-
-  protected DexApplication buildApplication(JasminBuilder builder, InternalOptions options) {
+  protected AndroidApp buildApplication(JasminBuilder builder) {
     try {
-      return buildApplication(AndroidApp.fromClassProgramData(builder.buildClasses()), options);
+      return AndroidApp.fromClassProgramData(builder.buildClasses());
     } catch (Exception e) {
       throw new RuntimeException(e);
     }
   }
 
-  protected DexApplication buildApplication(AndroidApp input, InternalOptions options) {
-    try {
-      options.itemFactory.resetSortedIndices();
-      return new ApplicationReader(input, options, new Timing("JasminTest")).read();
-    } catch (IOException | ExecutionException e) {
-      throw new RuntimeException(e);
-    }
-  }
-
-  public String runArt(DexApplication application, InternalOptions options, String mainClass)
-      throws DexOverflowException {
-    try {
-      AndroidApp app = writeDex(application, options);
-      return runOnArt(app, mainClass);
-    } catch (IOException e) {
-      throw new RuntimeException(e);
-    }
-  }
-
-  public AndroidApp writeDex(DexApplication application, InternalOptions options)
-      throws DexOverflowException, IOException {
-    try {
-      AndroidAppOutputSink compatSink = new AndroidAppOutputSink();
-      R8.writeApplication(
-          Executors.newSingleThreadExecutor(),
-          application,
-          compatSink,
-          null,
-          NamingLens.getIdentityLens(),
-          null,
-          options);
-      compatSink.close();
-      return compatSink.build();
-    } catch (ExecutionException e) {
-      throw new RuntimeException(e);
-    }
-  }
-
-  protected DexEncodedMethod getMethod(DexApplication application, String clazz,
+  protected DexEncodedMethod getMethod(AndroidApp application, String clazz,
       MethodSignature signature) {
     return getMethod(application,
         clazz, signature.type, signature.name, signature.parameters);
   }
 
-  protected DexEncodedMethod getMethod(DexApplication application, String className,
+  protected DexEncodedMethod getMethod(AndroidApp application, String className,
       String returnType, String methodName, String[] parameters) {
-    DexInspector inspector = new DexInspector(application);
-    ClassSubject clazz = inspector.clazz(className);
-    assertTrue(clazz.isPresent());
-    MethodSubject method = clazz.method(returnType, methodName, Arrays.asList(parameters));
-    assertTrue(method.isPresent());
-    return method.getMethod();
+    try {
+      DexInspector inspector = new DexInspector(application);
+      ClassSubject clazz = inspector.clazz(className);
+      assertTrue(clazz.isPresent());
+      MethodSubject method = clazz.method(returnType, methodName, Arrays.asList(parameters));
+      assertTrue(method.isPresent());
+      return method.getMethod();
+    } catch (Exception e) {
+      return null;
+    }
   }
 }
diff --git a/src/test/java/com/android/tools/r8/jasmin/JumpSubroutineTests.java b/src/test/java/com/android/tools/r8/jasmin/JumpSubroutineTests.java
index bd060b5..779fea0 100644
--- a/src/test/java/com/android/tools/r8/jasmin/JumpSubroutineTests.java
+++ b/src/test/java/com/android/tools/r8/jasmin/JumpSubroutineTests.java
@@ -19,7 +19,7 @@
   private void runTest(JasminBuilder builder, String main, String expected) throws Exception {
     String javaResult = runOnJava(builder, main);
     assertEquals(expected, javaResult);
-    String artResult = runOnArt(builder, main);
+    String artResult = runOnArtD8(builder, main);
     assertEquals(expected, artResult);
     String dxArtResult = runOnArtDx(builder, main);
     assertEquals(expected, dxArtResult);
@@ -384,7 +384,7 @@
     String expected = "";
     String javaResult = runOnJava(builder, clazz.name);
     assertEquals(expected, javaResult);
-    String artResult = runOnArt(builder, clazz.name);
+    String artResult = runOnArtD8(builder, clazz.name);
     assertEquals(expected, artResult);
     // This fails with dx.
     expectDxFailure(builder);
@@ -1340,7 +1340,7 @@
     String expected = "10";
     String javaResult = runOnJava(builder, clazz.name);
     assertEquals(expected, javaResult);
-    String artResult = runOnArt(builder, clazz.name);
+    String artResult = runOnArtD8(builder, clazz.name);
     // The ASM jsr inliner does not get the control-flow dependent ret right in his case.
     assertNotEquals(expected, artResult);
     // This fails with dx.
@@ -1388,7 +1388,7 @@
     String expected = "10";
     String javaResult = runOnJava(builder, clazz.name);
     assertEquals(expected, javaResult);
-    String artResult = runOnArt(builder, clazz.name);
+    String artResult = runOnArtD8(builder, clazz.name);
     // The ASM jsr inliner does not get the control-flow dependent ret right in his case.
     assertNotEquals(expected, artResult);
     // This fails with dx.
@@ -1437,7 +1437,7 @@
     String expected = "10";
     String javaResult = runOnJava(builder, clazz.name);
     assertEquals(expected, javaResult);
-    String artResult = runOnArt(builder, clazz.name);
+    String artResult = runOnArtD8(builder, clazz.name);
     // The ASM jsr inliner does not get the control-flow dependent ret right in his case.
     assertNotEquals(expected, artResult);
     // This fails with dx.
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 e8efd38..4919b9e 100644
--- a/src/test/java/com/android/tools/r8/jasmin/Regress65432240.java
+++ b/src/test/java/com/android/tools/r8/jasmin/Regress65432240.java
@@ -6,14 +6,12 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import com.android.tools.r8.code.Const4;
+import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.code.IfNez;
-import com.android.tools.r8.graph.DexApplication;
 import com.android.tools.r8.graph.DexCode;
 import com.android.tools.r8.graph.DexEncodedMethod;
-import com.android.tools.r8.ir.code.ConstNumber;
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
-import com.android.tools.r8.utils.InternalOptions;
+import com.android.tools.r8.utils.AndroidApp;
 import com.google.common.collect.ImmutableList;
 import org.junit.Test;
 
@@ -58,15 +56,14 @@
 
     String expected = runOnJava(builder, clazz.name);
 
-    InternalOptions options = new InternalOptions();
-    DexApplication originalApplication = buildApplication(builder, options);
-    DexApplication processedApplication = process(originalApplication, options);
+    AndroidApp originalApplication = buildApplication(builder);
+    AndroidApp processedApplication = ToolHelper.runR8(originalApplication);
 
     DexEncodedMethod method = getMethod(processedApplication, clazz.name, signature);
     DexCode code = method.getCode().asDexCode();
     assertTrue(code.instructions[0] instanceof IfNez);
 
-    String artResult = runArt(processedApplication, options, clazz.name);
+    String artResult = runOnArtR8(builder, clazz.name);
     assertEquals(expected, artResult);
   }
 }
diff --git a/src/test/java/com/android/tools/r8/jasmin/TryCatchStateTests.java b/src/test/java/com/android/tools/r8/jasmin/TryCatchStateTests.java
index a24ffd2..39c2f50 100644
--- a/src/test/java/com/android/tools/r8/jasmin/TryCatchStateTests.java
+++ b/src/test/java/com/android/tools/r8/jasmin/TryCatchStateTests.java
@@ -53,7 +53,7 @@
     String expected = "0" + ToolHelper.LINE_SEPARATOR + "6";
     String javaResult = runOnJava(builder, clazz.name);
     assertEquals(expected, javaResult);
-    String artResult = runOnArt(builder, clazz.name);
+    String artResult = runOnArtD8(builder, clazz.name);
     assertEquals(expected, artResult);
   }
 
@@ -101,7 +101,7 @@
     String expected = "12" + ToolHelper.LINE_SEPARATOR + "21";
     String javaResult = runOnJava(builder, clazz.name);
     assertEquals(expected, javaResult);
-    String artResult = runOnArt(builder, clazz.name);
+    String artResult = runOnArtD8(builder, clazz.name);
     assertEquals(expected, artResult);
   }
 
@@ -152,7 +152,7 @@
     String expected = "12" + ToolHelper.LINE_SEPARATOR + "21";
     String javaResult = runOnJava(builder, clazz.name);
     assertEquals(expected, javaResult);
-    String artResult = runOnArt(builder, clazz.name);
+    String artResult = runOnArtD8(builder, clazz.name);
     assertEquals(expected, artResult);
   }
 }