[ApiModel] Fix up assertion tests to always pass in inspector
Change-Id: I25fe1c13d31bf4f320de60b9907039b16d4cab55
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelDesugaredLibraryReferenceTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelDesugaredLibraryReferenceTest.java
index c3c1940..0d451cb 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelDesugaredLibraryReferenceTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelDesugaredLibraryReferenceTest.java
@@ -65,7 +65,10 @@
shrinkDesugaredLibrary)
.run(parameters.getRuntime(), Executor.class)
.assertSuccessWithOutputLines("Z")
- .inspect(ApiModelingTestHelper.verifyThat(parameters, printZone).inlinedInto(main));
+ .inspect(
+ inspector ->
+ ApiModelingTestHelper.verifyThat(inspector, parameters, printZone)
+ .inlinedInto(main));
}
static class Executor {
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelInlineInSameClassDifferentApiLevelTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelInlineInSameClassDifferentApiLevelTest.java
index 8002d8c..911731b 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelInlineInSameClassDifferentApiLevelTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelInlineInSameClassDifferentApiLevelTest.java
@@ -47,7 +47,7 @@
.apply(ApiModelingTestHelper::enableApiCallerIdentification)
.enableInliningAnnotations()
.compile()
- .inspect(verifyThat(parameters, callApi).inlinedInto(callCallApi))
+ .inspect(inspector -> verifyThat(inspector, parameters, callApi).inlinedInto(callCallApi))
.addRunClasspathClasses(Api.class)
.run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutputLines("Api::apiLevel22");
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelInlineInSameClassTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelInlineInSameClassTest.java
index 1ccb626..8d4e2f1 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelInlineInSameClassTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelInlineInSameClassTest.java
@@ -53,10 +53,10 @@
.apply(setMockApiLevelForMethod(apiMethod, AndroidApiLevel.L_MR1))
.apply(ApiModelingTestHelper::enableApiCallerIdentification)
.compile()
- .inspect(verifyThat(parameters, notCallingApi).inlinedIntoFromApiLevel(main, L_MR1))
.inspect(
inspector -> {
// No matter the api level, we should always inline callingApi into notCallingApi.
+ verifyThat(inspector, parameters, notCallingApi).inlinedIntoFromApiLevel(main, L_MR1);
assertThat(inspector.method(callingApi), not(isPresent()));
if (parameters.isDexRuntime()
&& parameters.getApiLevel().isGreaterThanOrEqualTo(L_MR1)) {
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelInlineMethodWithApiTypeTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelInlineMethodWithApiTypeTest.java
index 03b2f3e..9d667c1 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelInlineMethodWithApiTypeTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelInlineMethodWithApiTypeTest.java
@@ -52,8 +52,12 @@
.addRunClasspathClasses(ApiType.class)
.run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutputLines(ApiType.class.getName())
- .inspect(verifyThat(parameters, apiCallerApiLevel22).inlinedInto(apiCallerCallerApiLevel22))
- .inspect(inspector -> assertThat(inspector.clazz(OtherCaller.class), not(isPresent())));
+ .inspect(
+ inspector -> {
+ verifyThat(inspector, parameters, apiCallerApiLevel22)
+ .inlinedInto(apiCallerCallerApiLevel22);
+ assertThat(inspector.clazz(OtherCaller.class), not(isPresent()));
+ });
}
public static class ApiType {}
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassInstanceInitTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassInstanceInitTest.java
index 153759b..7c60172 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassInstanceInitTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassInstanceInitTest.java
@@ -58,7 +58,9 @@
.run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutputLinesIf(isMockApiLevel, "LibraryClass::foo")
.assertSuccessWithOutputLinesIf(!isMockApiLevel, "NoClassDefFoundError")
- .inspect(verifyThat(parameters, LibraryClass.class).stubbedUntil(mockLevel))
+ .inspect(
+ inspector ->
+ verifyThat(inspector, parameters, LibraryClass.class).stubbedUntil(mockLevel))
.applyIf(
!isMockApiLevel
&& parameters.isDexRuntime()
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassTest.java
index 3c5ad21..dddfcbc 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockClassTest.java
@@ -60,7 +60,9 @@
.run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutputLinesIf(isMockApiLevel, "LibraryClass::foo")
.assertSuccessWithOutputLinesIf(!isMockApiLevel, "Hello World")
- .inspect(verifyThat(parameters, LibraryClass.class).stubbedUntil(mockLevel));
+ .inspect(
+ inspector ->
+ verifyThat(inspector, parameters, LibraryClass.class).stubbedUntil(mockLevel));
}
// Only present from api level 23.
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockInheritedClassTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockInheritedClassTest.java
index 2268036..474874c 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockInheritedClassTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockInheritedClassTest.java
@@ -59,7 +59,9 @@
.run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutputLinesIf(isMockApiLevel, "ProgramClass::foo")
.assertSuccessWithOutputLinesIf(!isMockApiLevel, "Hello World")
- .inspect(verifyThat(parameters, LibraryClass.class).stubbedUntil(mockLevel));
+ .inspect(
+ inspector ->
+ verifyThat(inspector, parameters, LibraryClass.class).stubbedUntil(mockLevel));
}
// Only present from api level 23.
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockSuperChainClassTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockSuperChainClassTest.java
index a5f30c2..6c8b93d 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelMockSuperChainClassTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelMockSuperChainClassTest.java
@@ -73,9 +73,13 @@
.run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutputLinesIf(isMockApiLevel, "ProgramClass::foo")
.assertSuccessWithOutputLinesIf(!isMockApiLevel, "Hello World")
- .inspect(verifyThat(parameters, LibraryClass.class).stubbedUntil(lowerMockApiLevel))
- .inspect(verifyThat(parameters, LibraryInterface.class).stubbedUntil(lowerMockApiLevel))
- .inspect(verifyThat(parameters, OtherLibraryClass.class).stubbedUntil(mockApiLevel));
+ .inspect(
+ inspector -> {
+ verifyThat(inspector, parameters, LibraryClass.class).stubbedUntil(lowerMockApiLevel);
+ verifyThat(inspector, parameters, LibraryInterface.class)
+ .stubbedUntil(lowerMockApiLevel);
+ verifyThat(inspector, parameters, OtherLibraryClass.class).stubbedUntil(mockApiLevel);
+ });
}
// Only present from api level 23.
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoDesugaredLibraryReferenceTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoDesugaredLibraryReferenceTest.java
index e752764..45d2bec 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoDesugaredLibraryReferenceTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoDesugaredLibraryReferenceTest.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.apimodel;
+import static com.android.tools.r8.apimodel.ApiModelingTestHelper.verifyThat;
import static org.junit.Assert.assertEquals;
import com.android.tools.r8.TestParameters;
@@ -68,8 +69,10 @@
parameters.getDexRuntimeVersion().isNewerThan(Version.V7_0_0),
result -> result.assertSuccessWithOutputLines("~"))
.inspect(
- ApiModelingTestHelper.verifyThat(parameters, printZone)
- .inlinedIntoFromApiLevel(main, AndroidApiLevel.O));
+ inspector -> {
+ verifyThat(inspector, parameters, printZone)
+ .inlinedIntoFromApiLevel(main, AndroidApiLevel.O);
+ });
}
static class Executor {
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelInstanceFieldTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelInstanceFieldTest.java
index 9446479..ecbd92e 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelInstanceFieldTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelInstanceFieldTest.java
@@ -54,7 +54,10 @@
.apply(setMockApiLevelForDefaultInstanceInitializer(Api.class, L_MR1))
.apply(ApiModelingTestHelper::enableApiCallerIdentification)
.compile()
- .inspect(verifyThat(parameters, apiCaller).inlinedIntoFromApiLevel(apiCallerCaller, L_MR1))
+ .inspect(
+ inspector ->
+ verifyThat(inspector, parameters, apiCaller)
+ .inlinedIntoFromApiLevel(apiCallerCaller, L_MR1))
.addRunClasspathClasses(Api.class)
.run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutputLines("Hello World!");
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelInterfaceTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelInterfaceTest.java
index a480188..d39b038 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelInterfaceTest.java
@@ -53,8 +53,9 @@
.run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutputLines("A::noApiCall", "ApiCaller::callInterfaceMethod")
.inspect(
- verifyThat(parameters, apiCaller)
- .inlinedIntoFromApiLevel(apiCallerCaller, AndroidApiLevel.L_MR1));
+ inspector ->
+ verifyThat(inspector, parameters, apiCaller)
+ .inlinedIntoFromApiLevel(apiCallerCaller, AndroidApiLevel.L_MR1));
}
public interface Api {
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelIntoLowerDirectTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelIntoLowerDirectTest.java
index e79cfed..98aa240 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelIntoLowerDirectTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelIntoLowerDirectTest.java
@@ -48,7 +48,8 @@
.apply(ApiModelingTestHelper::enableApiCallerIdentification)
.run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutputLines("A::apiLevel21", "B::apiLevel22")
- .inspect(verifyThat(parameters, apiLevel22).inlinedInto(apiLevel21));
+ .inspect(
+ inspector -> verifyThat(inspector, parameters, apiLevel22).inlinedInto(apiLevel21));
}
// This tests that program classes where we directly mock the methods to have an api level will
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelStaticFieldTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelStaticFieldTest.java
index 28a2b00..f4465a4 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelStaticFieldTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelStaticFieldTest.java
@@ -51,8 +51,9 @@
.apply(ApiModelingTestHelper::enableApiCallerIdentification)
.compile()
.inspect(
- verifyThat(parameters, apiCaller)
- .inlinedIntoFromApiLevel(apiCallerCaller, AndroidApiLevel.L_MR1))
+ inspector ->
+ verifyThat(inspector, parameters, apiCaller)
+ .inlinedIntoFromApiLevel(apiCallerCaller, AndroidApiLevel.L_MR1))
.addRunClasspathClasses(Api.class)
.run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutputLines("Hello World!");
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelStaticTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelStaticTest.java
index b5c7134..16f24fa 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelStaticTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelStaticTest.java
@@ -50,8 +50,9 @@
.apply(ApiModelingTestHelper::enableApiCallerIdentification)
.compile()
.inspect(
- verifyThat(parameters, apiCaller)
- .inlinedIntoFromApiLevel(apiCallerCaller, AndroidApiLevel.L_MR1))
+ inspector ->
+ verifyThat(inspector, parameters, apiCaller)
+ .inlinedIntoFromApiLevel(apiCallerCaller, AndroidApiLevel.L_MR1))
.addRunClasspathClasses(Api.class)
.run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutputLines(
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelSuperTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelSuperTest.java
index e1cf2e2..4979620 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelSuperTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelSuperTest.java
@@ -68,7 +68,9 @@
}))
.compile()
// We do not inline overrides calling super.
- .inspect(verifyThat(parameters, apiCaller).notInlinedInto(apiCallerCaller))
+ .inspect(
+ inspector ->
+ verifyThat(inspector, parameters, apiCaller).notInlinedInto(apiCallerCaller))
.addRunClasspathClasses(Api.class)
.run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutputLines("A::noApiCall", "ApiCaller::apiLevel22", "Api::apiLevel22");
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelVirtualTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelVirtualTest.java
index a366d8a..2311f12 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelVirtualTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfHigherApiLevelVirtualTest.java
@@ -55,8 +55,9 @@
.apply(ApiModelingTestHelper::enableApiCallerIdentification)
.compile()
.inspect(
- verifyThat(parameters, apiCaller)
- .inlinedIntoFromApiLevel(apiCallerCaller, AndroidApiLevel.L_MR1))
+ inspector ->
+ verifyThat(inspector, parameters, apiCaller)
+ .inlinedIntoFromApiLevel(apiCallerCaller, AndroidApiLevel.L_MR1))
.addRunClasspathClasses(Api.class)
.run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutputLines(
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfStaticInterfaceMethodsTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfStaticInterfaceMethodsTest.java
index 086cfa4..498ef4c 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfStaticInterfaceMethodsTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelNoInliningOfStaticInterfaceMethodsTest.java
@@ -64,16 +64,17 @@
ClassSubject companion = inspector.companionClassFor(ApiCaller.class);
assertThat(companion, isPresent());
FoundClassSubject foundCompanion = companion.asFoundClassSubject();
- verifyThat(parameters, callApiLevel22)
+ verifyThat(inspector, parameters, callApiLevel22)
.setHolder(foundCompanion)
.inlinedIntoFromApiLevel(noApiCallTo22, L_MR1);
- verifyThat(parameters, callApiLevel26)
+ verifyThat(inspector, parameters, callApiLevel26)
.setHolder(foundCompanion)
.inlinedIntoFromApiLevel(noApiCallTo26, O);
} else {
- verifyThat(parameters, callApiLevel22)
+ verifyThat(inspector, parameters, callApiLevel22)
.inlinedIntoFromApiLevel(noApiCallTo22, L_MR1);
- verifyThat(parameters, callApiLevel26).inlinedIntoFromApiLevel(noApiCallTo26, O);
+ verifyThat(inspector, parameters, callApiLevel26)
+ .inlinedIntoFromApiLevel(noApiCallTo26, O);
}
})
.addRunClasspathClasses(Api.class)
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineDuplicateMethodTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineDuplicateMethodTest.java
index e0afd34..0760cad 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineDuplicateMethodTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineDuplicateMethodTest.java
@@ -86,7 +86,8 @@
: 3;
assertEquals(classCount, inspector.allClasses().size());
Method testMethod = TestClass.class.getDeclaredMethod("test");
- verifyThat(parameters, adeddOn23).isOutlinedFromUntil(testMethod, methodApiLevel);
+ verifyThat(inspector, parameters, adeddOn23)
+ .isOutlinedFromUntil(testMethod, methodApiLevel);
if (parameters.isDexRuntime()
&& parameters.getApiLevel().isLessThan(methodApiLevel)) {
// Verify that we invoke the synthesized outline addedOn23 twice.
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodAndStubClassTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodAndStubClassTest.java
index 051f793..a3e2d46 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodAndStubClassTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodAndStubClassTest.java
@@ -69,11 +69,13 @@
.run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutputLinesIf(libraryClassNotStubbed, "LibraryClass::foo")
.assertSuccessWithOutputLinesIf(!libraryClassNotStubbed, "Hello World")
- .inspect(verifyThat(parameters, LibraryClass.class).stubbedUntil(libraryClassLevel))
.inspect(
- verifyThat(parameters, apiMethod)
- .isOutlinedFromUntil(
- Main.class.getDeclaredMethod("main", String[].class), libraryMethodLevel));
+ inspector -> {
+ verifyThat(inspector, parameters, LibraryClass.class).stubbedUntil(libraryClassLevel);
+ verifyThat(inspector, parameters, apiMethod)
+ .isOutlinedFromUntil(
+ Main.class.getDeclaredMethod("main", String[].class), libraryMethodLevel);
+ });
}
// Only present from api level 23.
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodMissingClassTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodMissingClassTest.java
index 9d0f7cf..b41ee4c 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodMissingClassTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodMissingClassTest.java
@@ -113,10 +113,14 @@
.matches(methodSubject))
.findFirst();
assertFalse(synthesizedMissingNotReferenced.isPresent());
- verifyThat(parameters, addedOn23).isOutlinedFromUntil(testMethod, AndroidApiLevel.M);
- verifyThat(parameters, addedOn27)
+ verifyThat(inspector, parameters, addedOn23)
+ .isOutlinedFromUntil(testMethod, AndroidApiLevel.M);
+ verifyThat(inspector, parameters, addedOn27)
.isOutlinedFromUntil(testMethod, AndroidApiLevel.O_MR1);
- verifyThat(parameters, LibraryClass.class.getDeclaredMethod("missingAndReferenced"))
+ verifyThat(
+ inspector,
+ parameters,
+ LibraryClass.class.getDeclaredMethod("missingAndReferenced"))
.isOutlinedFrom(testMethod);
if (parameters.getApiLevel().isLessThan(AndroidApiLevel.O_MR1)) {
assertEquals(5, inspector.allClasses().size());
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineNoMockingTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineNoMockingTest.java
index 9638a31..69a7a97 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineNoMockingTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineNoMockingTest.java
@@ -73,8 +73,10 @@
inspector -> {
Method mainMethod = Main.class.getDeclaredMethod("main", String[].class);
assertThat(inspector.method(mainMethod), isPresent());
- verifyThat(parameters, getterOn23).isOutlinedFromUntil(mainMethod, libraryApiLevel);
- verifyThat(parameters, methodOn23).isOutlinedFromUntil(mainMethod, libraryApiLevel);
+ verifyThat(inspector, parameters, getterOn23)
+ .isOutlinedFromUntil(mainMethod, libraryApiLevel);
+ verifyThat(inspector, parameters, methodOn23)
+ .isOutlinedFromUntil(mainMethod, libraryApiLevel);
assertThat(inspector.clazz(LibraryClass.class), isAbsent());
});
}
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelTypeReferenceInvokeTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelTypeReferenceInvokeTest.java
index ef4737d..25f0c3a 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelTypeReferenceInvokeTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelTypeReferenceInvokeTest.java
@@ -52,8 +52,9 @@
.addAndroidBuildVersion()
.compile()
.inspect(
- verifyThat(parameters, apiCaller)
- .inlinedIntoFromApiLevel(apiCallerCaller, AndroidApiLevel.M))
+ inspector ->
+ verifyThat(inspector, parameters, apiCaller)
+ .inlinedIntoFromApiLevel(apiCallerCaller, AndroidApiLevel.M))
.addRunClasspathClasses(LibraryClass.class)
.run(parameters.getRuntime(), Main.class)
.assertSuccessWithOutputLinesIf(
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelingTestHelper.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelingTestHelper.java
index 70d4f36..7077a21 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelingTestHelper.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelingTestHelper.java
@@ -19,7 +19,6 @@
import com.android.tools.r8.references.MethodReference;
import com.android.tools.r8.references.Reference;
import com.android.tools.r8.utils.AndroidApiLevel;
-import com.android.tools.r8.utils.ThrowingConsumer;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.CodeMatchers;
import com.android.tools.r8.utils.codeinspector.FoundClassSubject;
@@ -150,49 +149,56 @@
};
}
- static ApiModelingClassVerificationHelper verifyThat(TestParameters parameters, Class<?> clazz) {
- return new ApiModelingClassVerificationHelper(parameters, clazz);
+ static ApiModelingClassVerificationHelper verifyThat(
+ CodeInspector inspector, TestParameters parameters, Class<?> clazz) {
+ return new ApiModelingClassVerificationHelper(inspector, parameters, clazz);
}
- static ApiModelingMethodVerificationHelper verifyThat(TestParameters parameters, Method method) {
- return new ApiModelingMethodVerificationHelper(parameters, Reference.methodFromMethod(method));
+ static ApiModelingMethodVerificationHelper verifyThat(
+ CodeInspector inspector, TestParameters parameters, Method method) {
+ return new ApiModelingMethodVerificationHelper(
+ inspector, parameters, Reference.methodFromMethod(method));
}
public static class ApiModelingClassVerificationHelper {
+ private final CodeInspector inspector;
private final Class<?> classOfInterest;
private final TestParameters parameters;
- public ApiModelingClassVerificationHelper(TestParameters parameters, Class<?> classOfInterest) {
+ public ApiModelingClassVerificationHelper(
+ CodeInspector inspector, TestParameters parameters, Class<?> classOfInterest) {
+ this.inspector = inspector;
this.parameters = parameters;
this.classOfInterest = classOfInterest;
}
- public ThrowingConsumer<CodeInspector, Exception> stubbedUntil(AndroidApiLevel finalApiLevel) {
- return inspector -> {
- assertThat(
- inspector.clazz(classOfInterest),
- notIf(
- isPresent(),
- parameters.isCfRuntime()
- || parameters.getApiLevel().isGreaterThanOrEqualTo(finalApiLevel)));
- };
+ public void stubbedUntil(AndroidApiLevel finalApiLevel) {
+ assertThat(
+ inspector.clazz(classOfInterest),
+ notIf(
+ isPresent(),
+ parameters.isCfRuntime()
+ || parameters.getApiLevel().isGreaterThanOrEqualTo(finalApiLevel)));
}
}
public static class ApiModelingMethodVerificationHelper {
+ private final CodeInspector inspector;
private final MethodReference methodOfInterest;
private final TestParameters parameters;
private ApiModelingMethodVerificationHelper(
- TestParameters parameters, MethodReference methodOfInterest) {
+ CodeInspector inspector, TestParameters parameters, MethodReference methodOfInterest) {
+ this.inspector = inspector;
this.methodOfInterest = methodOfInterest;
this.parameters = parameters;
}
public ApiModelingMethodVerificationHelper setHolder(FoundClassSubject classSubject) {
return new ApiModelingMethodVerificationHelper(
+ inspector,
parameters,
Reference.method(
classSubject.getFinalReference(),
@@ -201,68 +207,62 @@
methodOfInterest.getReturnType()));
}
- ThrowingConsumer<CodeInspector, Exception> inlinedIntoFromApiLevel(
- Method method, AndroidApiLevel apiLevel) {
- return parameters.isDexRuntime() && parameters.getApiLevel().isGreaterThanOrEqualTo(apiLevel)
- ? inlinedInto(method)
- : notInlinedInto(method);
+ void inlinedIntoFromApiLevel(Method method, AndroidApiLevel apiLevel) {
+ if (parameters.isDexRuntime() && parameters.getApiLevel().isGreaterThanOrEqualTo(apiLevel)) {
+ inlinedInto(method);
+ } else {
+ notInlinedInto(method);
+ }
}
- ThrowingConsumer<CodeInspector, Exception> notInlinedInto(Method method) {
- return inspector -> {
- MethodSubject candidate = inspector.method(methodOfInterest);
- assertThat(candidate, isPresent());
- MethodSubject target = inspector.method(method);
- assertThat(target, isPresent());
- assertThat(target, CodeMatchers.invokesMethod(candidate));
- };
+ void notInlinedInto(Method method) {
+ MethodSubject candidate = inspector.method(methodOfInterest);
+ assertThat(candidate, isPresent());
+ MethodSubject target = inspector.method(method);
+ assertThat(target, isPresent());
+ assertThat(target, CodeMatchers.invokesMethod(candidate));
}
- ThrowingConsumer<CodeInspector, Exception> inlinedInto(Method method) {
- return inspector -> {
- MethodSubject candidate = inspector.method(methodOfInterest);
- if (!candidate.isPresent()) {
- return;
- }
- MethodSubject target = inspector.method(method);
- assertThat(target, isPresent());
- assertThat(target, not(CodeMatchers.invokesMethod(candidate)));
- };
+ void inlinedInto(Method method) {
+ MethodSubject candidate = inspector.method(methodOfInterest);
+ if (!candidate.isPresent()) {
+ return;
+ }
+ MethodSubject target = inspector.method(method);
+ assertThat(target, isPresent());
+ assertThat(target, not(CodeMatchers.invokesMethod(candidate)));
}
- ThrowingConsumer<CodeInspector, Exception> isOutlinedFromUntil(
- Method method, AndroidApiLevel apiLevel) {
- return parameters.isDexRuntime() && parameters.getApiLevel().isLessThan(apiLevel)
- ? isOutlinedFrom(method)
- : isNotOutlinedFrom(method);
+ void isOutlinedFromUntil(Method method, AndroidApiLevel apiLevel) {
+ if (parameters.isDexRuntime() && parameters.getApiLevel().isLessThan(apiLevel)) {
+ isOutlinedFrom(method);
+ } else {
+ isNotOutlinedFrom(method);
+ }
}
- ThrowingConsumer<CodeInspector, Exception> isOutlinedFrom(Method method) {
- return inspector -> {
- // Check that the call is in a synthetic class.
- List<FoundMethodSubject> outlinedMethod =
- inspector.allClasses().stream()
- .flatMap(clazz -> clazz.allMethods().stream())
- .filter(
- methodSubject ->
- methodSubject.isSynthetic()
- && invokesMethodWithName(methodOfInterest.getMethodName())
- .matches(methodSubject))
- .collect(Collectors.toList());
- assertEquals(1, outlinedMethod.size());
- // Assert that method invokes the outline
- MethodSubject caller = inspector.method(method);
- assertThat(caller, isPresent());
- assertThat(caller, invokesMethod(outlinedMethod.get(0)));
- };
+ void isOutlinedFrom(Method method) {
+ // Check that the call is in a synthetic class.
+ List<FoundMethodSubject> outlinedMethod =
+ inspector.allClasses().stream()
+ .flatMap(clazz -> clazz.allMethods().stream())
+ .filter(
+ methodSubject ->
+ methodSubject.isSynthetic()
+ && invokesMethodWithName(methodOfInterest.getMethodName())
+ .matches(methodSubject))
+ .collect(Collectors.toList());
+ assertEquals(1, outlinedMethod.size());
+ // Assert that method invokes the outline
+ MethodSubject caller = inspector.method(method);
+ assertThat(caller, isPresent());
+ assertThat(caller, invokesMethod(outlinedMethod.get(0)));
}
- ThrowingConsumer<CodeInspector, Exception> isNotOutlinedFrom(Method method) {
- return inspector -> {
- MethodSubject caller = inspector.method(method);
- assertThat(caller, isPresent());
- assertThat(caller, invokesMethodWithName(methodOfInterest.getMethodName()));
- };
+ void isNotOutlinedFrom(Method method) {
+ MethodSubject caller = inspector.method(method);
+ assertThat(caller, isPresent());
+ assertThat(caller, invokesMethodWithName(methodOfInterest.getMethodName()));
}
}
}