diff options
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/vfs/FileSystemUtils.java | 4 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/vfs/FileSystemUtilsTest.java | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/FileSystemUtils.java b/src/main/java/com/google/devtools/build/lib/vfs/FileSystemUtils.java index d8a198bce4..9ef39736b6 100644 --- a/src/main/java/com/google/devtools/build/lib/vfs/FileSystemUtils.java +++ b/src/main/java/com/google/devtools/build/lib/vfs/FileSystemUtils.java @@ -142,8 +142,8 @@ public class FileSystemUtils { * contained in 'path'. I.e the closest ancestor directory containing path. * Returns null if none found. */ - public static PathFragment longestPathPrefix(PathFragment path, Set<PathFragment> prefixes) { - for (int i = path.segmentCount(); i >= 1; i--) { + static PathFragment longestPathPrefix(PathFragment path, Set<PathFragment> prefixes) { + for (int i = path.segmentCount(); i >= 0; i--) { PathFragment prefix = path.subFragment(0, i); if (prefixes.contains(prefix)) { return prefix; diff --git a/src/test/java/com/google/devtools/build/lib/vfs/FileSystemUtilsTest.java b/src/test/java/com/google/devtools/build/lib/vfs/FileSystemUtilsTest.java index 28950bbc81..637cd18597 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/FileSystemUtilsTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/FileSystemUtilsTest.java @@ -190,7 +190,7 @@ public class FileSystemUtilsTest { assertEquals("../../../file-4", relativePath(innerDir, file4).getPathString()); } - private String longestPathPrefixStr(String path, String... prefixStrs) { + private static String longestPathPrefixStr(String path, String... prefixStrs) { Set<PathFragment> prefixes = new HashSet<>(); for (String prefix : prefixStrs) { prefixes.add(new PathFragment(prefix)); @@ -207,6 +207,7 @@ public class FileSystemUtilsTest { assertNull(longestPathPrefixStr("C/b", "A", "B")); // not found in other parents assertNull(longestPathPrefixStr("A", "A/B", "B")); // not found in child assertEquals("A/B/C", longestPathPrefixStr("A/B/C/d/e/f.h", "A/B/C", "B/C/d")); + assertEquals("", longestPathPrefixStr("A/f.h", "", "B/C/d")); } @Test |