diff options
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/vfs')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java | 56 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/vfs/FileSystemUtilsTest.java | 51 |
2 files changed, 69 insertions, 38 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java b/src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java index e8896bbc0d..ba4b4e8c57 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java @@ -476,67 +476,47 @@ public abstract class FileSystemTest { } @Test - public void testCreateDirectoryAndParents() throws Exception { + public void testCreateDirectories() throws Exception { Path newPath = absolutize("new-dir/sub/directory"); newPath.createDirectoryAndParents(); assertThat(newPath.isDirectory()).isTrue(); } @Test - public void testCreateDirectoryAndParentsCreatesEmptyDirectory() throws Exception { + public void testCreateDirectoriesIsNotFile() throws Exception { Path newPath = absolutize("new-dir/sub/directory"); newPath.createDirectoryAndParents(); - assertThat(newPath.getDirectoryEntries()).isEmpty(); + assertThat(newPath.isFile()).isFalse(); } @Test - public void testCreateDirectoryAndParentsIsOnlyChildInParent() throws Exception { + public void testCreateDirectoriesIsNotSymbolicLink() throws Exception { Path newPath = absolutize("new-dir/sub/directory"); newPath.createDirectoryAndParents(); - assertThat(newPath.getParentDirectory().getDirectoryEntries()).hasSize(1); - assertThat(newPath.getParentDirectory().getDirectoryEntries()).containsExactly(newPath); + assertThat(newPath.isSymbolicLink()).isFalse(); } @Test - public void testCreateDirectoryAndParentsWhenAlreadyExistsSucceeds() throws Exception { - Path newPath = absolutize("new-dir"); - newPath.createDirectory(); + public void testCreateDirectoriesIsEmpty() throws Exception { + Path newPath = absolutize("new-dir/sub/directory"); newPath.createDirectoryAndParents(); - assertThat(newPath.isDirectory()).isTrue(); - } - - @Test - public void testCreateDirectoryAndParentsWhenAncestorIsFile() throws IOException { - Path path = absolutize("somewhere/deep/in"); - path.getParentDirectory().createDirectoryAndParents(); - FileSystemUtils.createEmptyFile(path); - Path theHierarchy = path.getChild("the-hierarchy"); - MoreAsserts.assertThrows(IOException.class, theHierarchy::createDirectoryAndParents); + assertThat(newPath.getDirectoryEntries()).isEmpty(); } @Test - public void testCreateDirectoryAndParentsWhenSymlinkToDir() throws IOException { - Path somewhereDeepIn = absolutize("somewhere/deep/in"); - somewhereDeepIn.createDirectoryAndParents(); - Path realDir = absolutize("real/dir"); - realDir.createDirectoryAndParents(); - assertThat(realDir.isDirectory()).isTrue(); - Path theHierarchy = somewhereDeepIn.getChild("the-hierarchy"); - theHierarchy.createSymbolicLink(realDir); - assertThat(theHierarchy.isDirectory()).isTrue(); - theHierarchy.createDirectoryAndParents(); + public void testCreateDirectoriesIsOnlyChildInParent() throws Exception { + Path newPath = absolutize("new-dir/sub/directory"); + newPath.createDirectoryAndParents(); + assertThat(newPath.getParentDirectory().getDirectoryEntries()).hasSize(1); + assertThat(newPath.getParentDirectory().getDirectoryEntries()).containsExactly(newPath); } @Test - public void testCreateDirectoryAndParentsWhenSymlinkEmbedded() throws IOException { - Path somewhereDeepIn = absolutize("somewhere/deep/in"); - somewhereDeepIn.createDirectoryAndParents(); - Path realDir = absolutize("real/dir"); - realDir.createDirectoryAndParents(); - Path the = somewhereDeepIn.getChild("the"); - the.createSymbolicLink(realDir); - Path theHierarchy = somewhereDeepIn.getChild("hierarchy"); - theHierarchy.createDirectoryAndParents(); + public void testCreateAlreadyExistingDirectorySucceeds() throws Exception { + Path newPath = absolutize("new-dir"); + newPath.createDirectory(); + newPath.createDirectoryAndParents(); + assertThat(newPath.isDirectory()).isTrue(); } @Test 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 656363333e..0e9b74ed3b 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 @@ -18,6 +18,7 @@ import static com.google.devtools.build.lib.vfs.FileSystemUtils.appendWithoutExt import static com.google.devtools.build.lib.vfs.FileSystemUtils.commonAncestor; import static com.google.devtools.build.lib.vfs.FileSystemUtils.copyFile; import static com.google.devtools.build.lib.vfs.FileSystemUtils.copyTool; +import static com.google.devtools.build.lib.vfs.FileSystemUtils.createDirectoryAndParents; import static com.google.devtools.build.lib.vfs.FileSystemUtils.deleteTree; import static com.google.devtools.build.lib.vfs.FileSystemUtils.moveFile; import static com.google.devtools.build.lib.vfs.FileSystemUtils.relativePath; @@ -644,6 +645,56 @@ public class FileSystemUtilsTest { } @Test + public void testCreateDirectories() throws IOException { + Path mainPath = fileSystem.getPath("/some/where/deep/in/the/hierarchy"); + assertThat(createDirectoryAndParents(mainPath)).isTrue(); + assertThat(mainPath.exists()).isTrue(); + assertThat(createDirectoryAndParents(mainPath)).isFalse(); + } + + @Test + public void testCreateDirectoriesWhenAncestorIsFile() throws IOException { + Path somewhereDeepIn = fileSystem.getPath("/somewhere/deep/in"); + assertThat(createDirectoryAndParents(somewhereDeepIn.getParentDirectory())).isTrue(); + FileSystemUtils.createEmptyFile(somewhereDeepIn); + Path theHierarchy = somewhereDeepIn.getChild("the-hierarchy"); + try { + createDirectoryAndParents(theHierarchy); + fail(); + } catch (IOException e) { + assertThat(e).hasMessage("/somewhere/deep/in (Not a directory)"); + } + } + + @Test + public void testCreateDirectoriesWhenSymlinkToDir() throws IOException { + Path somewhereDeepIn = fileSystem.getPath("/somewhere/deep/in"); + assertThat(createDirectoryAndParents(somewhereDeepIn)).isTrue(); + Path realDir = fileSystem.getPath("/real/dir"); + assertThat(createDirectoryAndParents(realDir)).isTrue(); + + Path theHierarchy = somewhereDeepIn.getChild("the-hierarchy"); + theHierarchy.createSymbolicLink(realDir); + + assertThat(createDirectoryAndParents(theHierarchy)).isFalse(); + } + + @Test + public void testCreateDirectoriesWhenSymlinkEmbedded() throws IOException { + Path somewhereDeepIn = fileSystem.getPath("/somewhere/deep/in"); + assertThat(createDirectoryAndParents(somewhereDeepIn)).isTrue(); + Path realDir = fileSystem.getPath("/real/dir"); + assertThat(createDirectoryAndParents(realDir)).isTrue(); + + Path the = somewhereDeepIn.getChild("the"); + the.createSymbolicLink(realDir); + + Path theHierarchy = somewhereDeepIn.getChild("hierarchy"); + assertThat(createDirectoryAndParents(theHierarchy)).isTrue(); + } + + + @Test public void testWriteIsoLatin1() throws Exception { Path file = fileSystem.getPath("/does/not/exist/yet.txt"); FileSystemUtils.writeIsoLatin1(file, "Line 1", "Line 2", "Line 3"); |