auto merge of #16976 : treeman/rust/issue-16943, r=kballard

Closes #16943.
This commit is contained in:
bors 2014-09-04 11:11:08 +00:00
commit 6d8b5c9f7d
2 changed files with 23 additions and 2 deletions

View File

@ -1274,7 +1274,7 @@ mod test {
error!(result, "couldn't recursively mkdir");
error!(result, "couldn't create directory");
error!(result, "mode=FilePermission { bits: 448 }");
error!(result, "mode=0700");
error!(result, format!("path={}", file.display()));
})

View File

@ -1797,7 +1797,6 @@ pub struct UnstableFileStat {
bitflags!(
#[doc="A set of permissions for a file or directory is represented
by a set of flags which are or'd together."]
#[deriving(Show)]
flags FilePermission: u32 {
static UserRead = 0o400,
static UserWrite = 0o200,
@ -1836,6 +1835,14 @@ impl Default for FilePermission {
fn default() -> FilePermission { FilePermission::empty() }
}
impl fmt::Show for FilePermission {
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
formatter.fill = '0';
formatter.width = Some(4);
(&self.bits as &fmt::Octal).fmt(formatter)
}
}
#[cfg(test)]
mod tests {
use super::{IoResult, Reader, MemReader, NoProgress, InvalidInput};
@ -1937,4 +1944,18 @@ mod tests {
let mut r = MemReader::new(Vec::from_slice(b"hello, world!"));
assert_eq!(r.push_at_least(5, 1, &mut buf).unwrap_err().kind, InvalidInput);
}
#[test]
fn test_show() {
use super::*;
assert_eq!(format!("{}", UserRead), "0400".to_string());
assert_eq!(format!("{}", UserFile), "0644".to_string());
assert_eq!(format!("{}", UserExec), "0755".to_string());
assert_eq!(format!("{}", UserRWX), "0700".to_string());
assert_eq!(format!("{}", GroupRWX), "0070".to_string());
assert_eq!(format!("{}", OtherRWX), "0007".to_string());
assert_eq!(format!("{}", AllPermissions), "0777".to_string());
assert_eq!(format!("{}", UserRead | UserWrite | OtherWrite), "0602".to_string());
}
}