about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorDawid Ciężarkiewicz <dpc@dpc.pw>2017-03-14 22:03:00 -0700
committerDawid Ciężarkiewicz <dpc@dpc.pw>2017-03-17 20:15:05 -0700
commitb5d590b3f0483bc943df8f59011b85500456d748 (patch)
tree2f0dc87f270be6613c984aff499cc464ab0bd700 /src/libstd
parentbcae6a3734cdcecffc3ee30981a5b9107bee2ee0 (diff)
downloadrust-b5d590b3f0483bc943df8f59011b85500456d748.tar.gz
rust-b5d590b3f0483bc943df8f59011b85500456d748.zip
Fix `create_dir_all("")`
Add a test for `""` and `"."`.
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/fs.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libstd/fs.rs b/src/libstd/fs.rs
index 59a6a99201f..cc9df743ef1 100644
--- a/src/libstd/fs.rs
+++ b/src/libstd/fs.rs
@@ -1775,6 +1775,10 @@ impl DirBuilder {
     }
 
     fn create_dir_all(&self, path: &Path) -> io::Result<()> {
+        if path == Path::new("") {
+            return Ok(())
+        }
+
         match self.inner.mkdir(path) {
             Ok(()) => return Ok(()),
             Err(ref e) if e.kind() == io::ErrorKind::NotFound => {}
@@ -2303,6 +2307,16 @@ mod tests {
     }
 
     #[test]
+    fn recursive_mkdir_dot() {
+        check!(fs::create_dir_all(&Path::new(".")));
+    }
+
+    #[test]
+    fn recursive_mkdir_empty() {
+        check!(fs::create_dir_all(&Path::new("")));
+    }
+
+    #[test]
     fn recursive_rmdir() {
         let tmpdir = tmpdir();
         let d1 = tmpdir.join("d1");