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