Add addDefaultRuntimeLibrary utility method to test builders
Also allow library dependencies to be added to the JVM builder.
Change-Id: I2dfc4142400fc317d38a73f66ae143cd2ed9321c
diff --git a/src/test/java/com/android/tools/r8/JvmTestBuilder.java b/src/test/java/com/android/tools/r8/JvmTestBuilder.java
index 4317ca8..e59ea66 100644
--- a/src/test/java/com/android/tools/r8/JvmTestBuilder.java
+++ b/src/test/java/com/android/tools/r8/JvmTestBuilder.java
@@ -73,12 +73,12 @@
@Override
public JvmTestBuilder addLibraryFiles(Collection<Path> files) {
- throw new Unimplemented("No support for changing the Java runtime library.");
+ return addRunClasspathFiles(files);
}
@Override
public JvmTestBuilder addLibraryClasses(Collection<Class<?>> classes) {
- throw new Unimplemented("No support for changing the Java runtime library.");
+ return addRunClasspathFiles(writeClassesToJar(classes));
}
@Override
diff --git a/src/test/java/com/android/tools/r8/R8TestBuilder.java b/src/test/java/com/android/tools/r8/R8TestBuilder.java
index 935de02..3c8a16b 100644
--- a/src/test/java/com/android/tools/r8/R8TestBuilder.java
+++ b/src/test/java/com/android/tools/r8/R8TestBuilder.java
@@ -256,6 +256,7 @@
return self();
}
+ @Override
public T addMainDexListClasses(Class<?>... classes) {
builder.addMainDexClasses(
Arrays.stream(classes).map(Class::getTypeName).collect(Collectors.toList()));
diff --git a/src/test/java/com/android/tools/r8/TestBaseBuilder.java b/src/test/java/com/android/tools/r8/TestBaseBuilder.java
index 4f512b7..4388754 100644
--- a/src/test/java/com/android/tools/r8/TestBaseBuilder.java
+++ b/src/test/java/com/android/tools/r8/TestBaseBuilder.java
@@ -19,7 +19,7 @@
C extends BaseCommand,
B extends BaseCommand.Builder<C, B>,
CR extends TestBaseResult<CR, RR>,
- RR extends TestRunResult,
+ RR extends TestRunResult<RR>,
T extends TestBaseBuilder<C, B, CR, RR, T>>
extends TestBuilder<RR, T> {
diff --git a/src/test/java/com/android/tools/r8/TestBuilder.java b/src/test/java/com/android/tools/r8/TestBuilder.java
index 9a874c2..50a5a1f 100644
--- a/src/test/java/com/android/tools/r8/TestBuilder.java
+++ b/src/test/java/com/android/tools/r8/TestBuilder.java
@@ -3,6 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8;
+import com.android.tools.r8.TestBase.Backend;
import com.android.tools.r8.debug.DebugTestConfig;
import com.android.tools.r8.errors.Unimplemented;
import com.android.tools.r8.utils.ListUtils;
@@ -14,7 +15,7 @@
import java.util.List;
import java.util.concurrent.ExecutionException;
-public abstract class TestBuilder<RR extends TestRunResult, T extends TestBuilder<RR, T>> {
+public abstract class TestBuilder<RR extends TestRunResult<RR>, T extends TestBuilder<RR, T>> {
private final TestState state;
@@ -134,6 +135,16 @@
return addLibraryFiles(Arrays.asList(files));
}
+ public T addDefaultRuntimeLibrary(TestParameters parameters) {
+ if (parameters.getBackend() == Backend.DEX) {
+ addLibraryFiles(ToolHelper.getFirstSupportedAndroidJar(parameters.getApiLevel()));
+ } else {
+ assert parameters.getBackend() == Backend.CF;
+ addLibraryFiles(ToolHelper.getJava8RuntimeJar());
+ }
+ return self();
+ }
+
public T addClasspathClasses(Class<?>... classes) {
return addClasspathClasses(Arrays.asList(classes));
}
diff --git a/src/test/java/com/android/tools/r8/TestCompilerBuilder.java b/src/test/java/com/android/tools/r8/TestCompilerBuilder.java
index da1bc91..6f6263a 100644
--- a/src/test/java/com/android/tools/r8/TestCompilerBuilder.java
+++ b/src/test/java/com/android/tools/r8/TestCompilerBuilder.java
@@ -34,7 +34,7 @@
C extends BaseCompilerCommand,
B extends BaseCompilerCommand.Builder<C, B>,
CR extends TestCompileResult<CR, RR>,
- RR extends TestRunResult,
+ RR extends TestRunResult<RR>,
T extends TestCompilerBuilder<C, B, CR, RR, T>>
extends TestBaseBuilder<C, B, CR, RR, T> {