aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/vfs/FileSystemUtils.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/vfs/FileSystemUtilsTest.java3
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