diff options
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/vfs/WindowsLocalPathTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/vfs/WindowsLocalPathTest.java | 39 |
1 files changed, 18 insertions, 21 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/WindowsLocalPathTest.java b/src/test/java/com/google/devtools/build/lib/vfs/WindowsLocalPathTest.java index 88c7b6f248..ac5acef1f4 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/WindowsLocalPathTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/WindowsLocalPathTest.java @@ -14,9 +14,9 @@ package com.google.devtools.build.lib.vfs; import static com.google.common.truth.Truth.assertThat; -import static com.google.devtools.build.lib.testutil.MoreAsserts.assertThrows; import com.google.common.testing.EqualsTester; +import com.google.devtools.build.lib.testutil.MoreAsserts; import com.google.devtools.build.lib.vfs.LocalPath.OsPathPolicy; import com.google.devtools.build.lib.vfs.LocalPath.WindowsOsPathPolicy; import com.google.devtools.build.lib.vfs.LocalPath.WindowsOsPathPolicy.ShortPathResolver; @@ -101,14 +101,8 @@ public class WindowsLocalPathTest extends LocalPathAbstractTest { @Test public void testisAbsoluteWindows() { assertThat(create("C:/").isAbsolute()).isTrue(); - } - - // We support unix paths to make test sharing easier - @Test - public void testUnixPathSupport() { + // test that msys paths turn into absolute paths assertThat(create("/").isAbsolute()).isTrue(); - assertThat(create("/foo").isAbsolute()).isTrue(); - assertThat(create("/foo").getParentDirectory().getPathString()).isEqualTo("/"); } @Test @@ -116,7 +110,22 @@ public class WindowsLocalPathTest extends LocalPathAbstractTest { assertThat(create("C:/foo").relativeTo(create("C:/"))).isEqualTo(create("foo")); // Case insensitivity test assertThat(create("C:/foo/bar").relativeTo(create("C:/FOO"))).isEqualTo(create("bar")); - assertThrows(IllegalArgumentException.class, () -> create("D:/foo").relativeTo(create("C:/"))); + MoreAsserts.assertThrows( + IllegalArgumentException.class, () -> create("D:/foo").relativeTo(create("C:/"))); + } + + @Test + public void testAbsoluteUnixPathIsRelativeToWindowsUnixRoot() { + assertThat(create("/").getPathString()).isEqualTo("C:/fake/msys"); + assertThat(create("/foo/bar").getPathString()).isEqualTo("C:/fake/msys/foo/bar"); + assertThat(create("/foo/bar").getPathString()).isEqualTo("C:/fake/msys/foo/bar"); + } + + @Test + public void testAbsoluteUnixPathReferringToDriveIsRecognized() { + assertThat(create("/c/foo").getPathString()).isEqualTo("C:/foo"); + assertThat(create("/c/foo").getPathString()).isEqualTo("C:/foo"); + assertThat(create("/c:").getPathString()).isNotEqualTo("C:/foo"); } @Test @@ -152,16 +161,4 @@ public class WindowsLocalPathTest extends LocalPathAbstractTest { // Assert relative paths that look like short paths are untouched assertThat(create("progra~1").getPathString()).isEqualTo("progra~1"); } - - @Test - public void testRootsWindows() { - assertThat(create("C:/").getDrive().getPathString()).isEqualTo("C:/"); - assertThat(create("C:/usr").getDrive().getPathString()).isEqualTo("C:/"); - assertThrows(IllegalArgumentException.class, () -> create("").getDrive()); - - assertThat(create("C:/").isRoot()).isFalse(); - assertThat(create("C:/usr").isRoot()).isFalse(); - assertThat(create("/").isRoot()).isTrue(); - assertThat(create("").isRoot()).isFalse(); - } } |