[ApiModel] Fix remaining tests failing after revert to pre-l behavior
Change-Id: Icbd3b7056bfac3cdd5f80cfa47e154ad9a7ad11a
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineHorizontalMergingTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineHorizontalMergingTest.java
index eae582d..f5642b5 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineHorizontalMergingTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineHorizontalMergingTest.java
@@ -100,10 +100,12 @@
.inspect(
inspector -> {
// TODO(b/187675788): Update when horizontal merging is enabled for D8 for debug mode.
- if (parameters.getApiLevel().isLessThan(libraryClassApiLevel)) {
+ if (parameters.getApiLevel().isLessThan(AndroidApiLevel.L)) {
+ assertEquals(7, inspector.allClasses().size());
+ } else if (parameters.getApiLevel().isLessThan(libraryClassApiLevel)) {
// We have generated 4 outlines two having api level 23 and two having api level 27
// and 2 outlines for each instance initializer.
- assertEquals(9, inspector.allClasses().size());
+ assertEquals(11, inspector.allClasses().size());
} else if (parameters.getApiLevel().isLessThan(firstMethodApiLevel)) {
// We have generated 4 outlines two having api level 23 and two having api level 27.
assertEquals(7, inspector.allClasses().size());
@@ -172,7 +174,9 @@
// If less than the library api level then we have synthesized two instance initializer
// outlines as well.
// Check that the levels are horizontally merged.
- boolean willOutlineInitializers = parameters.getApiLevel().isLessThan(libraryClassApiLevel);
+ boolean willOutlineInitializers =
+ parameters.getApiLevel().isGreaterThanOrEqualTo(AndroidApiLevel.L)
+ && parameters.getApiLevel().isLessThan(libraryClassApiLevel);
assertEquals(willOutlineInitializers ? 6 : 5, inspector.allClasses().size());
assertEquals(2, outlinedAddedOn23.size());
assertTrue(
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineInstanceInitializerTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineInstanceInitializerTest.java
index 987270a..ab3716d 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineInstanceInitializerTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineInstanceInitializerTest.java
@@ -73,7 +73,7 @@
.setMode(CompilationMode.DEBUG)
.apply(this::setupTestBuilder)
.compile()
- .inspect(this::inspect)
+ .inspect(inspector -> inspect(inspector, false))
.applyIf(
addToBootClasspath(),
b -> b.addBootClasspathClasses(LibraryClass.class, Argument.class))
@@ -88,7 +88,7 @@
.setMode(CompilationMode.RELEASE)
.apply(this::setupTestBuilder)
.compile()
- .inspect(this::inspect)
+ .inspect(inspector -> inspect(inspector, false))
.applyIf(
addToBootClasspath(),
b -> b.addBootClasspathClasses(LibraryClass.class, Argument.class))
@@ -102,7 +102,7 @@
.apply(this::setupTestBuilder)
.addKeepMainRule(Main.class)
.compile()
- .inspect(this::inspect)
+ .inspect(inspector -> inspect(inspector, true))
.applyIf(
addToBootClasspath(),
b -> b.addBootClasspathClasses(LibraryClass.class, Argument.class))
@@ -110,14 +110,16 @@
.apply(this::checkOutput);
}
- private void inspect(CodeInspector inspector) throws Exception {
+ private void inspect(CodeInspector inspector, boolean isR8) throws Exception {
Method mainMethod = Main.class.getMethod("main", String[].class);
verifyThat(inspector, parameters, Argument.class.getDeclaredConstructor(String.class))
- .isOutlinedFromUntil(mainMethod, classApiLevel);
+ .isOutlinedFromBetween(mainMethod, AndroidApiLevel.L, classApiLevel);
verifyThat(inspector, parameters, LibraryClass.class.getDeclaredConstructor(Argument.class))
- .isOutlinedFromUntil(mainMethod, classApiLevel);
+ .isOutlinedFromBetween(mainMethod, AndroidApiLevel.L, classApiLevel);
+ // For R8 we inline into the method with an instance initializer when we do not outline it.
verifyThat(inspector, parameters, LibraryClass.class.getMethod("print"))
- .isOutlinedFromUntil(mainMethod, classApiLevel);
+ .isOutlinedFromBetween(
+ mainMethod, isR8 ? AndroidApiLevel.L : AndroidApiLevel.B, classApiLevel);
}
private void checkOutput(SingleTestRunResult<?> runResult) {