TestBase: extract common backend-dependent patterns into static methods.

Change-Id: I9053ae8d2d40b9651469bf8b49cedcf90e0f5617
diff --git a/src/test/java/com/android/tools/r8/TestBase.java b/src/test/java/com/android/tools/r8/TestBase.java
index 9833fe7..bb2db07 100644
--- a/src/test/java/com/android/tools/r8/TestBase.java
+++ b/src/test/java/com/android/tools/r8/TestBase.java
@@ -721,4 +721,22 @@
       return this != NONE;
     }
   }
+
+  public static ProgramConsumer emptyConsumer(Backend backend) {
+    if (backend == Backend.DEX) {
+      return DexIndexedConsumer.emptyConsumer();
+    } else {
+      assert backend == Backend.CF;
+      return ClassFileConsumer.emptyConsumer();
+    }
+  }
+
+  public static Path runtimeJar(Backend backend) {
+    if (backend == Backend.DEX) {
+      return ToolHelper.getDefaultAndroidJar();
+    } else {
+      assert backend == Backend.CF;
+      return ToolHelper.getJava8RuntimeJar();
+    }
+  }
 }
diff --git a/src/test/java/com/android/tools/r8/movestringconstants/MoveStringConstantsTest.java b/src/test/java/com/android/tools/r8/movestringconstants/MoveStringConstantsTest.java
index d7d0538..6dd02c6 100644
--- a/src/test/java/com/android/tools/r8/movestringconstants/MoveStringConstantsTest.java
+++ b/src/test/java/com/android/tools/r8/movestringconstants/MoveStringConstantsTest.java
@@ -6,9 +6,7 @@
 
 import static org.junit.Assert.assertTrue;
 
-import com.android.tools.r8.ClassFileConsumer;
 import com.android.tools.r8.CompilationMode;
-import com.android.tools.r8.DexIndexedConsumer;
 import com.android.tools.r8.R8Command;
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.ToolHelper;
@@ -45,15 +43,8 @@
     R8Command.Builder builder = R8Command.builder();
     builder.addProgramFiles(ToolHelper.getClassFileForTestClass(TestClass.class));
     builder.addProgramFiles(ToolHelper.getClassFileForTestClass(Utils.class));
-    builder.addLibraryFiles(
-        backend == Backend.DEX
-            ? ToolHelper.getDefaultAndroidJar()
-            : ToolHelper.getJava8RuntimeJar());
-    assert (backend == Backend.CF || backend == Backend.DEX);
-    builder.setProgramConsumer(
-        backend == Backend.DEX
-            ? DexIndexedConsumer.emptyConsumer()
-            : ClassFileConsumer.emptyConsumer());
+    builder.addLibraryFiles(runtimeJar(backend));
+    builder.setProgramConsumer(emptyConsumer(backend));
     builder.setMode(CompilationMode.RELEASE);
     builder.addProguardConfiguration(
         ImmutableList.of(
@@ -82,6 +73,7 @@
       // Run on Art to check generated code against verifier.
       runOnArt(app, TestClass.class);
     } else {
+      assert backend == Backend.CF;
       runOnJava(app, TestClass.class);
     }
   }
diff --git a/src/test/java/com/android/tools/r8/naming/AdaptResourceFileContentsTest.java b/src/test/java/com/android/tools/r8/naming/AdaptResourceFileContentsTest.java
index 2f59f6d..413a511 100644
--- a/src/test/java/com/android/tools/r8/naming/AdaptResourceFileContentsTest.java
+++ b/src/test/java/com/android/tools/r8/naming/AdaptResourceFileContentsTest.java
@@ -11,13 +11,11 @@
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
-import com.android.tools.r8.ClassFileConsumer;
 import com.android.tools.r8.CompilationFailedException;
 import com.android.tools.r8.DataDirectoryResource;
 import com.android.tools.r8.DataEntryResource;
 import com.android.tools.r8.DataResourceConsumer;
 import com.android.tools.r8.DataResourceProvider.Visitor;
-import com.android.tools.r8.DexIndexedConsumer;
 import com.android.tools.r8.DiagnosticsHandler;
 import com.android.tools.r8.R8Command;
 import com.android.tools.r8.ToolHelper;
@@ -319,19 +317,11 @@
 
   private AndroidApp compileWithR8(String proguardConfig, DataResourceConsumer dataResourceConsumer)
       throws CompilationFailedException, IOException {
-    assert backend == Backend.DEX || backend == Backend.CF;
     R8Command command =
         ToolHelper.allowTestProguardOptions(
-                ToolHelper.prepareR8CommandBuilder(
-                        getAndroidApp(),
-                        backend == Backend.DEX
-                            ? DexIndexedConsumer.emptyConsumer()
-                            : ClassFileConsumer.emptyConsumer())
+                ToolHelper.prepareR8CommandBuilder(getAndroidApp(), emptyConsumer(backend))
                     .addProguardConfiguration(ImmutableList.of(proguardConfig), Origin.unknown()))
-            .addLibraryFiles(
-                backend == Backend.DEX
-                    ? ToolHelper.getDefaultAndroidJar()
-                    : ToolHelper.getJava8RuntimeJar())
+            .addLibraryFiles(runtimeJar(backend))
             .build();
     return ToolHelper.runR8(
         command,
diff --git a/src/test/java/com/android/tools/r8/naming/AdaptResourceFileNamesTest.java b/src/test/java/com/android/tools/r8/naming/AdaptResourceFileNamesTest.java
index 51201df..9ffb4f2 100644
--- a/src/test/java/com/android/tools/r8/naming/AdaptResourceFileNamesTest.java
+++ b/src/test/java/com/android/tools/r8/naming/AdaptResourceFileNamesTest.java
@@ -11,13 +11,11 @@
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
-import com.android.tools.r8.ClassFileConsumer;
 import com.android.tools.r8.CompilationFailedException;
 import com.android.tools.r8.DataDirectoryResource;
 import com.android.tools.r8.DataEntryResource;
 import com.android.tools.r8.DataResourceConsumer;
 import com.android.tools.r8.DataResourceProvider.Visitor;
-import com.android.tools.r8.DexIndexedConsumer;
 import com.android.tools.r8.DiagnosticsHandler;
 import com.android.tools.r8.R8Command;
 import com.android.tools.r8.StringConsumer;
@@ -256,20 +254,12 @@
       StringConsumer proguardMapConsumer,
       List<DataEntryResource> dataResources)
       throws CompilationFailedException, IOException {
-    assert backend == Backend.DEX || backend == Backend.CF;
     R8Command command =
         ToolHelper.allowTestProguardOptions(
                 ToolHelper.prepareR8CommandBuilder(
-                        getAndroidApp(dataResources),
-                        backend == Backend.DEX
-                            ? DexIndexedConsumer.emptyConsumer()
-                            : ClassFileConsumer.emptyConsumer(),
-                        diagnosticsHandler)
+                        getAndroidApp(dataResources), emptyConsumer(backend), diagnosticsHandler)
                     .addProguardConfiguration(ImmutableList.of(proguardConfig), Origin.unknown()))
-            .addLibraryFiles(
-                backend == Backend.DEX
-                    ? ToolHelper.getDefaultAndroidJar()
-                    : ToolHelper.getJava8RuntimeJar())
+            .addLibraryFiles(runtimeJar(backend))
             .build();
     return ToolHelper.runR8(
         command,
diff --git a/src/test/java/com/android/tools/r8/naming/MinifierClassSignatureTest.java b/src/test/java/com/android/tools/r8/naming/MinifierClassSignatureTest.java
index a5bbdf6..3240365 100644
--- a/src/test/java/com/android/tools/r8/naming/MinifierClassSignatureTest.java
+++ b/src/test/java/com/android/tools/r8/naming/MinifierClassSignatureTest.java
@@ -20,8 +20,6 @@
 import static org.objectweb.asm.Opcodes.RETURN;
 import static org.objectweb.asm.Opcodes.V1_8;
 
-import com.android.tools.r8.ClassFileConsumer;
-import com.android.tools.r8.DexIndexedConsumer;
 import com.android.tools.r8.DiagnosticsChecker;
 import com.android.tools.r8.R8Command;
 import com.android.tools.r8.StringConsumer;
@@ -306,7 +304,6 @@
       Consumer<CodeInspector> inspect)
       throws Exception {
     DiagnosticsChecker checker = new DiagnosticsChecker();
-    assert (backend == Backend.CF || backend == Backend.DEX);
     CodeInspector inspector =
         new CodeInspector(
             ToolHelper.runR8(
@@ -327,10 +324,8 @@
                             "-keepattributes InnerClasses,EnclosingMethod,Signature",
                             "-keep,allowobfuscation class **"),
                         Origin.unknown())
-                    .setProgramConsumer(
-                        backend == Backend.DEX
-                            ? DexIndexedConsumer.emptyConsumer()
-                            : ClassFileConsumer.emptyConsumer())
+                    .setProgramConsumer(emptyConsumer(backend))
+                    .addLibraryFiles(runtimeJar(backend))
                     .setProguardMapConsumer(StringConsumer.emptyConsumer())
                     .build(),
                 options -> {
diff --git a/src/test/java/com/android/tools/r8/naming/MinifierFieldSignatureTest.java b/src/test/java/com/android/tools/r8/naming/MinifierFieldSignatureTest.java
index c470661..4c81632 100644
--- a/src/test/java/com/android/tools/r8/naming/MinifierFieldSignatureTest.java
+++ b/src/test/java/com/android/tools/r8/naming/MinifierFieldSignatureTest.java
@@ -21,8 +21,6 @@
 import static org.objectweb.asm.Opcodes.RETURN;
 import static org.objectweb.asm.Opcodes.V1_8;
 
-import com.android.tools.r8.ClassFileConsumer;
-import com.android.tools.r8.DexIndexedConsumer;
 import com.android.tools.r8.DiagnosticsChecker;
 import com.android.tools.r8.R8Command;
 import com.android.tools.r8.StringConsumer;
@@ -180,7 +178,6 @@
       Consumer<CodeInspector> inspect)
       throws Exception {
     DiagnosticsChecker checker = new DiagnosticsChecker();
-    assert (backend == Backend.CF || backend == Backend.DEX);
     CodeInspector inspector =
         new CodeInspector(
             ToolHelper.runR8(
@@ -192,10 +189,8 @@
                             "-keepattributes InnerClasses,EnclosingMethod,Signature",
                             "-keep,allowobfuscation class ** { *; }"),
                         Origin.unknown())
-                    .setProgramConsumer(
-                        backend == Backend.DEX
-                            ? DexIndexedConsumer.emptyConsumer()
-                            : ClassFileConsumer.emptyConsumer())
+                    .setProgramConsumer(emptyConsumer(backend))
+                    .addLibraryFiles(runtimeJar(backend))
                     .setProguardMapConsumer(StringConsumer.emptyConsumer())
                     .build(),
                 options -> {
diff --git a/src/test/java/com/android/tools/r8/naming/MinifierMethodSignatureTest.java b/src/test/java/com/android/tools/r8/naming/MinifierMethodSignatureTest.java
index aa5307d..a1ab483 100644
--- a/src/test/java/com/android/tools/r8/naming/MinifierMethodSignatureTest.java
+++ b/src/test/java/com/android/tools/r8/naming/MinifierMethodSignatureTest.java
@@ -24,8 +24,6 @@
 import static org.objectweb.asm.Opcodes.RETURN;
 import static org.objectweb.asm.Opcodes.V1_8;
 
-import com.android.tools.r8.ClassFileConsumer;
-import com.android.tools.r8.DexIndexedConsumer;
 import com.android.tools.r8.DiagnosticsChecker;
 import com.android.tools.r8.R8Command;
 import com.android.tools.r8.StringConsumer;
@@ -202,7 +200,6 @@
       Consumer<CodeInspector> inspect)
       throws Exception {
     DiagnosticsChecker checker = new DiagnosticsChecker();
-    assert (backend == Backend.CF || backend == Backend.DEX);
     CodeInspector inspector =
         new CodeInspector(
             ToolHelper.runR8(
@@ -214,10 +211,8 @@
                             "-keepattributes InnerClasses,EnclosingMethod,Signature",
                             "-keep,allowobfuscation class ** { *; }"),
                         Origin.unknown())
-                    .setProgramConsumer(
-                        backend == Backend.DEX
-                            ? DexIndexedConsumer.emptyConsumer()
-                            : ClassFileConsumer.emptyConsumer())
+                    .setProgramConsumer(emptyConsumer(backend))
+                    .addLibraryFiles(runtimeJar(backend))
                     .setProguardMapConsumer(StringConsumer.emptyConsumer())
                     .build(),
                 options -> {
diff --git a/src/test/java/com/android/tools/r8/neverreturnsnormally/NeverReturnsNormallyTest.java b/src/test/java/com/android/tools/r8/neverreturnsnormally/NeverReturnsNormallyTest.java
index 73dcdb3..f401f6a 100644
--- a/src/test/java/com/android/tools/r8/neverreturnsnormally/NeverReturnsNormallyTest.java
+++ b/src/test/java/com/android/tools/r8/neverreturnsnormally/NeverReturnsNormallyTest.java
@@ -7,9 +7,7 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import com.android.tools.r8.ClassFileConsumer;
 import com.android.tools.r8.CompilationMode;
-import com.android.tools.r8.DexIndexedConsumer;
 import com.android.tools.r8.R8Command;
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.ToolHelper;
@@ -53,15 +51,8 @@
       boolean enableClassInliner, CompilationMode mode) throws Exception {
     R8Command.Builder builder = R8Command.builder();
     builder.addProgramFiles(ToolHelper.getClassFileForTestClass(TestClass.class));
-    assert (backend == Backend.DEX || backend == Backend.CF);
-    builder.setProgramConsumer(
-        backend == Backend.DEX
-            ? DexIndexedConsumer.emptyConsumer()
-            : ClassFileConsumer.emptyConsumer());
-    builder.addLibraryFiles(
-        backend == Backend.DEX
-            ? ToolHelper.getDefaultAndroidJar()
-            : ToolHelper.getJava8RuntimeJar());
+    builder.setProgramConsumer(emptyConsumer(backend));
+    builder.addLibraryFiles(runtimeJar(backend));
     builder.setMode(mode);
     builder.addProguardConfiguration(
         ImmutableList.of(
@@ -93,6 +84,7 @@
       // Run on Art to check generated code against verifier.
       runOnArt(app, TestClass.class);
     } else {
+      assert backend == Backend.CF;
       runOnJava(app, TestClass.class);
     }
   }
diff --git a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java
index 61ff772..f10395e 100644
--- a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java
+++ b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ProguardCompatibilityTestBase.java
@@ -115,14 +115,8 @@
       Consumer<InternalOptions> configure,
       Backend backend)
       throws Exception {
-    assert backend == Backend.DEX || backend == Backend.CF;
     AndroidApp app = readClassesAndRuntimeJar(programClasses, backend);
-    R8Command.Builder builder =
-        ToolHelper.prepareR8CommandBuilder(
-            app,
-            backend == Backend.DEX
-                ? DexIndexedConsumer.emptyConsumer()
-                : ClassFileConsumer.emptyConsumer());
+    R8Command.Builder builder = ToolHelper.prepareR8CommandBuilder(app, emptyConsumer(backend));
     ToolHelper.allowTestProguardOptions(builder);
     builder.addProguardConfiguration(ImmutableList.of(proguardConfig), Origin.unknown());
     return ToolHelper.runR8(builder.build(), configure);