Port devirtualizer tests to use new parameters structure
Change-Id: Ibff673467bd924382b4d93b1f4d213b06bb273ce
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/devirtualize/DevirtualizerNonNullRewritingTest.java b/src/test/java/com/android/tools/r8/ir/optimize/devirtualize/DevirtualizerNonNullRewritingTest.java
index 12bce34..61d5cf3 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/devirtualize/DevirtualizerNonNullRewritingTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/devirtualize/DevirtualizerNonNullRewritingTest.java
@@ -7,7 +7,8 @@
import com.android.tools.r8.NeverInline;
import com.android.tools.r8.NeverMerge;
import com.android.tools.r8.TestBase;
-import com.android.tools.r8.ToolHelper;
+import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestParametersCollection;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -16,15 +17,24 @@
@RunWith(Parameterized.class)
public class DevirtualizerNonNullRewritingTest extends TestBase {
- private final Backend backend;
+ private final TestParameters parameters;
+ private static final String EXPECTED_OUTPUT = "Hello!";
- @Parameters(name = "Backend: {0}")
- public static Backend[] data() {
- return ToolHelper.getBackends();
+ @Parameters(name = "{0}")
+ public static TestParametersCollection data() {
+ return getTestParameters().withAllRuntimesAndApiLevels().build();
}
- public DevirtualizerNonNullRewritingTest(Backend backend) {
- this.backend = backend;
+ public DevirtualizerNonNullRewritingTest(TestParameters parameters) {
+ this.parameters = parameters;
+ }
+
+ @Test
+ public void testRuntime() throws Exception {
+ testForRuntime(parameters)
+ .addInnerClasses(DevirtualizerNonNullRewritingTest.class)
+ .run(parameters.getRuntime(), TestClass.class)
+ .assertSuccessWithOutput(EXPECTED_OUTPUT);
}
/**
@@ -32,17 +42,14 @@
*/
@Test
public void test() throws Exception {
- String expectedOutput = "Hello!";
-
- testForJvm().addTestClasspath().run(TestClass.class).assertSuccessWithOutput(expectedOutput);
-
- testForR8(backend)
+ testForR8(parameters.getBackend())
.addInnerClasses(DevirtualizerNonNullRewritingTest.class)
.addKeepMainRule(TestClass.class)
.enableInliningAnnotations()
.enableMergeAnnotations()
- .run(TestClass.class)
- .assertSuccessWithOutput(expectedOutput);
+ .setMinApi(parameters.getApiLevel())
+ .run(parameters.getRuntime(), TestClass.class)
+ .assertSuccessWithOutput(EXPECTED_OUTPUT);
}
static class TestClass {
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/devirtualize/InvokeInterfaceToInvokeVirtualTest.java b/src/test/java/com/android/tools/r8/ir/optimize/devirtualize/InvokeInterfaceToInvokeVirtualTest.java
index a75cc4c..efb4422 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/devirtualize/InvokeInterfaceToInvokeVirtualTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/devirtualize/InvokeInterfaceToInvokeVirtualTest.java
@@ -14,7 +14,6 @@
import com.android.tools.r8.ir.optimize.devirtualize.invokeinterface.A1;
import com.android.tools.r8.ir.optimize.devirtualize.invokeinterface.I;
import com.android.tools.r8.ir.optimize.devirtualize.invokeinterface.Main;
-import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.InstructionSubject;
@@ -27,10 +26,11 @@
public class InvokeInterfaceToInvokeVirtualTest extends TestBase {
private final TestParameters parameters;
+ private final String EXPECTED_OUTPUT = "0";
@Parameterized.Parameters(name = "{0}")
public static TestParametersCollection data() {
- return getTestParameters().withAllRuntimes().build();
+ return getTestParameters().withAllRuntimesAndApiLevels().build();
}
public InvokeInterfaceToInvokeVirtualTest(TestParameters parameters) {
@@ -38,25 +38,24 @@
}
@Test
+ public void testRuntime() throws Exception {
+ testForRuntime(parameters)
+ .addProgramClasses(I.class, A.class, A0.class, A1.class, Main.class)
+ .run(parameters.getRuntime(), Main.class)
+ .assertSuccessWithOutputLines(EXPECTED_OUTPUT);
+ }
+
+ @Test
public void listOfInterface() throws Exception {
- String expectedOutput = StringUtils.lines("0");
-
- if (parameters.isCfRuntime()) {
- testForJvm()
- .addTestClasspath()
- .run(parameters.getRuntime(), Main.class)
- .assertSuccessWithOutput(expectedOutput);
- }
-
CodeInspector inspector =
testForR8(parameters.getBackend())
.addProgramClasses(I.class, A.class, A0.class, A1.class, Main.class)
.addKeepMainRule(Main.class)
.addOptionsModification(
options -> options.enableInliningOfInvokesWithNullableReceivers = false)
- .setMinApi(parameters.getRuntime())
+ .setMinApi(parameters.getApiLevel())
.run(parameters.getRuntime(), Main.class)
- .assertSuccessWithOutput(expectedOutput)
+ .assertSuccessWithOutputLines(EXPECTED_OUTPUT)
.inspector();
ClassSubject clazz = inspector.clazz(Main.class);