Version 1.6.75 Cherry pick: Check for any line separator when reading service files CL: https://r8-review.googlesource.com/49222 Bug: 144437165
diff --git a/src/main/java/com/android/tools/r8/graph/AppServices.java b/src/main/java/com/android/tools/r8/graph/AppServices.java index 584a879..5c1c7ad 100644 --- a/src/main/java/com/android/tools/r8/graph/AppServices.java +++ b/src/main/java/com/android/tools/r8/graph/AppServices.java
@@ -13,13 +13,13 @@ import com.android.tools.r8.origin.Origin; import com.android.tools.r8.utils.DescriptorUtils; import com.android.tools.r8.utils.StringDiagnostic; +import com.android.tools.r8.utils.StringUtils; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.io.ByteStreams; import java.io.IOException; import java.nio.charset.Charset; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.IdentityHashMap; import java.util.List; @@ -176,7 +176,7 @@ private void readServiceImplementationsForService( String contents, Origin origin, List<DexType> serviceImplementations) { if (contents != null) { - Arrays.stream(contents.split(System.lineSeparator())) + StringUtils.splitLines(contents).stream() .map(String::trim) .map(this::prefixUntilCommentChar) .filter(line -> !line.isEmpty())
diff --git a/src/test/java/com/android/tools/r8/rewrite/ServiceLoaderRewritingTest.java b/src/test/java/com/android/tools/r8/rewrite/ServiceLoaderRewritingTest.java index 91411e5..9a77338 100644 --- a/src/test/java/com/android/tools/r8/rewrite/ServiceLoaderRewritingTest.java +++ b/src/test/java/com/android/tools/r8/rewrite/ServiceLoaderRewritingTest.java
@@ -118,7 +118,7 @@ @Parameterized.Parameters(name = "{0}") public static TestParametersCollection data() { - return getTestParameters().withAllRuntimes().build(); + return getTestParameters().withAllRuntimesAndApiLevels().build(); } public ServiceLoaderRewritingTest(TestParameters parameters) { @@ -131,7 +131,7 @@ testForR8(parameters.getBackend()) .addInnerClasses(ServiceLoaderRewritingTest.class) .addKeepMainRule(MainRunner.class) - .setMinApi(parameters.getRuntime()) + .setMinApi(parameters.getApiLevel()) .addDataEntryResources( DataEntryResource.fromBytes( StringUtils.lines(ServiceImpl.class.getTypeName()).getBytes(), @@ -165,7 +165,7 @@ testForR8(parameters.getBackend()) .addInnerClasses(ServiceLoaderRewritingTest.class) .addKeepMainRule(OtherRunner.class) - .setMinApi(parameters.getRuntime()) + .setMinApi(parameters.getApiLevel()) .addDataEntryResources( DataEntryResource.fromBytes( StringUtils.lines(ServiceImpl.class.getTypeName()).getBytes(), @@ -250,7 +250,7 @@ .addInnerClasses(ServiceLoaderRewritingTest.class) .addKeepMainRule(MainRunner.class) .addKeepClassRules(Service.class) - .setMinApi(parameters.getRuntime()) + .setMinApi(parameters.getApiLevel()) .addDataEntryResources( DataEntryResource.fromBytes( StringUtils.lines(ServiceImpl.class.getTypeName()).getBytes(),