liblog: Remove all uses of `~str` from `liblog`

This commit is contained in:
Patrick Walton 2014-05-12 21:35:40 -07:00
parent e786a745b5
commit 8a1aaac396
2 changed files with 41 additions and 23 deletions

View File

@ -13,7 +13,7 @@ use std::cmp;
#[deriving(Show, Clone)]
pub struct LogDirective {
pub name: Option<~str>,
pub name: Option<StrBuf>,
pub level: u32,
}
@ -64,7 +64,7 @@ pub fn parse_logging_spec(spec: &str) -> Vec<LogDirective> {
}
};
dirs.push(LogDirective {
name: name.map(|s| s.to_owned()),
name: name.map(|s| s.to_strbuf()),
level: log_level,
});
}
@ -80,13 +80,13 @@ mod tests {
let dirs = parse_logging_spec("crate1::mod1=1,crate1::mod2,crate2=4");
let dirs = dirs.as_slice();
assert_eq!(dirs.len(), 3);
assert_eq!(dirs[0].name, Some("crate1::mod1".to_owned()));
assert_eq!(dirs[0].name, Some("crate1::mod1".to_strbuf()));
assert_eq!(dirs[0].level, 1);
assert_eq!(dirs[1].name, Some("crate1::mod2".to_owned()));
assert_eq!(dirs[1].name, Some("crate1::mod2".to_strbuf()));
assert_eq!(dirs[1].level, ::MAX_LOG_LEVEL);
assert_eq!(dirs[2].name, Some("crate2".to_owned()));
assert_eq!(dirs[2].name, Some("crate2".to_strbuf()));
assert_eq!(dirs[2].level, 4);
}
@ -96,7 +96,7 @@ mod tests {
let dirs = parse_logging_spec("crate1::mod1=1=2,crate2=4");
let dirs = dirs.as_slice();
assert_eq!(dirs.len(), 1);
assert_eq!(dirs[0].name, Some("crate2".to_owned()));
assert_eq!(dirs[0].name, Some("crate2".to_strbuf()));
assert_eq!(dirs[0].level, 4);
}
@ -106,7 +106,7 @@ mod tests {
let dirs = parse_logging_spec("crate1::mod1=noNumber,crate2=4");
let dirs = dirs.as_slice();
assert_eq!(dirs.len(), 1);
assert_eq!(dirs[0].name, Some("crate2".to_owned()));
assert_eq!(dirs[0].name, Some("crate2".to_strbuf()));
assert_eq!(dirs[0].level, 4);
}
@ -116,7 +116,7 @@ mod tests {
let dirs = parse_logging_spec("crate1::mod1=wrong,crate2=warn");
let dirs = dirs.as_slice();
assert_eq!(dirs.len(), 1);
assert_eq!(dirs[0].name, Some("crate2".to_owned()));
assert_eq!(dirs[0].name, Some("crate2".to_strbuf()));
assert_eq!(dirs[0].level, ::WARN);
}
@ -128,7 +128,7 @@ mod tests {
assert_eq!(dirs.len(), 2);
assert_eq!(dirs[0].name, None);
assert_eq!(dirs[0].level, 2);
assert_eq!(dirs[1].name, Some("crate2".to_owned()));
assert_eq!(dirs[1].name, Some("crate2".to_strbuf()));
assert_eq!(dirs[1].level, 4);
}
}

View File

@ -307,7 +307,7 @@ fn enabled(level: u32, module: &str,
// Search for the longest match, the vector is assumed to be pre-sorted.
for directive in iter.rev() {
match directive.name {
Some(ref name) if !module.starts_with(*name) => {},
Some(ref name) if !module.starts_with(name.as_slice()) => {},
Some(..) | None => {
return level <= directive.level
}
@ -362,8 +362,16 @@ mod tests {
#[test]
fn match_full_path() {
let dirs = [LogDirective { name: Some("crate2".to_owned()), level: 3 },
LogDirective { name: Some("crate1::mod1".to_owned()), level: 2 }];
let dirs = [
LogDirective {
name: Some("crate2".to_strbuf()),
level: 3
},
LogDirective {
name: Some("crate1::mod1".to_strbuf()),
level: 2
}
];
assert!(enabled(2, "crate1::mod1", dirs.iter()));
assert!(!enabled(3, "crate1::mod1", dirs.iter()));
assert!(enabled(3, "crate2", dirs.iter()));
@ -372,39 +380,49 @@ mod tests {
#[test]
fn no_match() {
let dirs = [LogDirective { name: Some("crate2".to_owned()), level: 3 },
LogDirective { name: Some("crate1::mod1".to_owned()), level: 2 }];
let dirs = [
LogDirective { name: Some("crate2".to_strbuf()), level: 3 },
LogDirective { name: Some("crate1::mod1".to_strbuf()), level: 2 }
];
assert!(!enabled(2, "crate3", dirs.iter()));
}
#[test]
fn match_beginning() {
let dirs = [LogDirective { name: Some("crate2".to_owned()), level: 3 },
LogDirective { name: Some("crate1::mod1".to_owned()), level: 2 }];
let dirs = [
LogDirective { name: Some("crate2".to_strbuf()), level: 3 },
LogDirective { name: Some("crate1::mod1".to_strbuf()), level: 2 }
];
assert!(enabled(3, "crate2::mod1", dirs.iter()));
}
#[test]
fn match_beginning_longest_match() {
let dirs = [LogDirective { name: Some("crate2".to_owned()), level: 3 },
LogDirective { name: Some("crate2::mod".to_owned()), level: 4 },
LogDirective { name: Some("crate1::mod1".to_owned()), level: 2 }];
let dirs = [
LogDirective { name: Some("crate2".to_strbuf()), level: 3 },
LogDirective { name: Some("crate2::mod".to_strbuf()), level: 4 },
LogDirective { name: Some("crate1::mod1".to_strbuf()), level: 2 }
];
assert!(enabled(4, "crate2::mod1", dirs.iter()));
assert!(!enabled(4, "crate2", dirs.iter()));
}
#[test]
fn match_default() {
let dirs = [LogDirective { name: None, level: 3 },
LogDirective { name: Some("crate1::mod1".to_owned()), level: 2 }];
let dirs = [
LogDirective { name: None, level: 3 },
LogDirective { name: Some("crate1::mod1".to_strbuf()), level: 2 }
];
assert!(enabled(2, "crate1::mod1", dirs.iter()));
assert!(enabled(3, "crate2::mod2", dirs.iter()));
}
#[test]
fn zero_level() {
let dirs = [LogDirective { name: None, level: 3 },
LogDirective { name: Some("crate1::mod1".to_owned()), level: 0 }];
let dirs = [
LogDirective { name: None, level: 3 },
LogDirective { name: Some("crate1::mod1".to_strbuf()), level: 0 }
];
assert!(!enabled(1, "crate1::mod1", dirs.iter()));
assert!(enabled(3, "crate2::mod2", dirs.iter()));
}