about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorTrevor Merrifield <trevorm42@gmail.com>2017-09-17 17:01:35 -0400
committerTrevor Merrifield <trevorm42@gmail.com>2017-09-17 20:13:29 -0400
commit04c01e0b1fc4830f4416c79d886c2f1a54986fe9 (patch)
treeb1217c2d684580deddc51cc3be2f9d826f1481b3 /src/libstd
parente3910794961b820defedd909b11e69681803e0db (diff)
downloadrust-04c01e0b1fc4830f4416c79d886c2f1a54986fe9.tar.gz
rust-04c01e0b1fc4830f4416c79d886c2f1a54986fe9.zip
Add test case for unix permissions
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/fs.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/libstd/fs.rs b/src/libstd/fs.rs
index 2a916b819cc..99162766081 100644
--- a/src/libstd/fs.rs
+++ b/src/libstd/fs.rs
@@ -2161,6 +2161,27 @@ mod tests {
     }
 
     #[test]
+    #[cfg(unix)]
+    fn set_get_unix_permissions() {
+        use os::unix::fs::PermissionsExt;
+
+        let tmpdir = tmpdir();
+        let filename = &tmpdir.join("set_get_unix_permissions");
+        check!(fs::create_dir(filename));
+        let mask = 0o7777;
+
+        check!(fs::set_permissions(filename,
+                                   fs::Permissions::from_mode(0)));
+        let metadata0 = check!(fs::metadata(filename));
+        assert_eq!(mask & metadata0.permissions().mode(), 0);
+
+        check!(fs::set_permissions(filename,
+                                   fs::Permissions::from_mode(0o1777)));
+        let metadata1 = check!(fs::metadata(filename));
+        assert_eq!(mask & metadata1.permissions().mode(), 0o1777);
+    }
+
+    #[test]
     #[cfg(windows)]
     fn file_test_io_seek_read_write() {
         use os::windows::fs::FileExt;