Update test expectations for ServiceLoaderRewritingTest
Bug: b/291923475
Change-Id: Iee3df08b6b3c92f72a7c9640fe71a49f112c65ff
diff --git a/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderRewritingTest.java b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderRewritingTest.java
index 4fe386a..75d51ed 100644
--- a/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderRewritingTest.java
+++ b/src/test/java/com/android/tools/r8/optimize/serviceloader/ServiceLoaderRewritingTest.java
@@ -7,7 +7,6 @@
import static com.android.tools.r8.ToolHelper.DexVm.Version.V7_0_0;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assume.assumeTrue;
import com.android.tools.r8.CompilationFailedException;
import com.android.tools.r8.NeverInline;
@@ -180,8 +179,11 @@
}
}
- private boolean isDexV7() {
- // Runtime uses boot classloader rather than system classloader on this version.
+ private boolean isAndroid7() {
+ // Runtime uses boot classloader rather than system classloader on this version. See b/130164528
+ // for more details.
+ // The CL that changed behaviour after Nougat is:
+ // https://android-review.googlesource.com/c/platform/libcore/+/273135
return parameters.isDexRuntime() && parameters.getDexRuntimeVersion() == V7_0_0;
}
@@ -203,7 +205,7 @@
.compile()
.run(parameters.getRuntime(), MainRunner.class)
.applyIf(
- isDexV7() && !enableRewriting,
+ isAndroid7() && !enableRewriting,
runResult ->
runResult.assertFailureWithErrorThatThrows(ServiceConfigurationError.class),
runResult ->
@@ -223,7 +225,7 @@
.compile()
.run(parameters.getRuntime(), MainRunner.class)
.applyIf(
- isDexV7() && !enableRewriting,
+ isAndroid7() && !enableRewriting,
runResult ->
runResult.assertFailureWithErrorThatThrows(ServiceConfigurationError.class),
runResult ->
@@ -299,7 +301,7 @@
.compileWithExpectedDiagnostics(expectedDiagnostics)
.run(parameters.getRuntime(), MainRunner.class)
.applyIf(
- !isDexV7(),
+ !isAndroid7(),
runResult -> runResult.assertSuccessWithOutput(EXPECTED_OUTPUT),
runResult ->
runResult.assertFailureWithErrorThatThrows(ServiceConfigurationError.class));
@@ -343,23 +345,21 @@
@Test
public void testKeepAsOriginal()
throws IOException, CompilationFailedException, ExecutionException {
- // The CL that changed behaviour after Nougat is:
- // https://android-review.googlesource.com/c/platform/libcore/+/273135
- assumeTrue(
- parameters.getRuntime().isCf()
- || !parameters.getRuntime().asDex().getVm().getVersion().equals(V7_0_0));
serviceLoaderTest(Service.class, ServiceImpl.class)
.addKeepMainRule(MainRunner.class)
.addKeepClassRules(Service.class)
.allowDiagnosticInfoMessages(enableRewriting)
.compileWithExpectedDiagnostics(expectedDiagnostics)
- .run(parameters.getRuntime(), MainRunner.class)
- .assertSuccessWithOutput(EXPECTED_OUTPUT)
.inspect(
inspector -> {
assertEquals(3, getServiceLoaderLoads(inspector));
verifyServiceMetaInf(inspector, Service.class, ServiceImpl.class);
- });
+ })
+ .run(parameters.getRuntime(), MainRunner.class)
+ .applyIf(
+ isAndroid7(),
+ r -> r.assertFailureWithErrorThatThrows(ServiceConfigurationError.class),
+ r -> r.assertSuccessWithOutput(EXPECTED_OUTPUT));
}
@Test
@@ -369,12 +369,15 @@
.addKeepMainRule(MainWithNonPublicService.class)
.allowDiagnosticInfoMessages(enableRewriting)
.compileWithExpectedDiagnostics(expectedDiagnostics)
- .run(parameters.getRuntime(), MainWithNonPublicService.class)
- .assertSuccessWithOutput("Hello World!\n")
.inspect(
inspector -> {
assertEquals(1, getServiceLoaderLoads(inspector));
verifyServiceMetaInf(inspector, NonPublicService.class, ServiceImpl.class);
- });
+ })
+ .run(parameters.getRuntime(), MainWithNonPublicService.class)
+ .applyIf(
+ isAndroid7(),
+ r -> r.assertFailureWithErrorThatThrows(ServiceConfigurationError.class),
+ r -> r.assertSuccessWithOutputLines("Hello World!"));
}
}