Fix FilteredClassPathTest on Windows to not assume the use of Path objects.
All entries in zip files use '/' and not file separator. At this point
we only have support for filtered class paths from archives and therefore
we never need to map between '/' and '\'.
R=sgjesse@google.com
Change-Id: Ic71dcd309efd78f78242e57c8b48584dcea21b60
diff --git a/src/main/java/com/android/tools/r8/shaking/FilteredClassPath.java b/src/main/java/com/android/tools/r8/shaking/FilteredClassPath.java
index b432371..c67af00 100644
--- a/src/main/java/com/android/tools/r8/shaking/FilteredClassPath.java
+++ b/src/main/java/com/android/tools/r8/shaking/FilteredClassPath.java
@@ -46,10 +46,6 @@
return path;
}
- public boolean matchesFile(Path path) {
- return matchesFile(path.toString());
- }
-
public boolean matchesFile(String name) {
if (isUnfiltered()) {
return true;
@@ -67,7 +63,7 @@
}
private boolean containsFileSeparator(String string) {
- return string.indexOf(File.separatorChar) != -1;
+ return string.indexOf('/') != -1;
}
private boolean matchAgainstFileName(String fileName, int namePos, String pattern,
@@ -99,7 +95,7 @@
}
} else {
for (int i = namePos; i < fileName.length(); i++) {
- if (!includeFileSeparators && fileName.charAt(i) == File.separatorChar) {
+ if (!includeFileSeparators && fileName.charAt(i) == '/') {
return false;
}
if (matchAgainstFileName(fileName, i, pattern, patternPos + 1)) {
diff --git a/src/test/java/com/android/tools/r8/shaking/FilteredClassPathTest.java b/src/test/java/com/android/tools/r8/shaking/FilteredClassPathTest.java
index f27813e..7c243ae 100644
--- a/src/test/java/com/android/tools/r8/shaking/FilteredClassPathTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/FilteredClassPathTest.java
@@ -34,16 +34,8 @@
private void testPath(List<String> filters, List<String> positives, List<String> negatives) {
FilteredClassPath path = makeFilteredClassPath(filters);
- Assert.assertTrue(
- positives.stream().map(FilteredClassPathTest::adaptFileSeparator).map(Paths::get)
- .allMatch(path::matchesFile));
- Assert.assertFalse(
- negatives.stream().map(FilteredClassPathTest::adaptFileSeparator).map(Paths::get)
- .allMatch(path::matchesFile));
- }
-
- private static String adaptFileSeparator(String s) {
- return s.replace('/', File.separatorChar);
+ Assert.assertTrue(positives.stream().allMatch(path::matchesFile));
+ Assert.assertFalse(negatives.stream().allMatch(path::matchesFile));
}
private static FilteredClassPath makeFilteredClassPath(List<String> filters) {
@@ -51,9 +43,7 @@
}
private static FilteredClassPath makeFilteredClassPath(Path path, List<String> filters) {
- return new FilteredClassPath(path,
- filters.stream().map(FilteredClassPathTest::adaptFileSeparator)
- .collect(ImmutableList.toImmutableList()));
+ return new FilteredClassPath(path, ImmutableList.copyOf(filters));
}
@Test