Skip to content

Commit

Permalink
Use blacklist instead of whitelist
Browse files Browse the repository at this point in the history
  • Loading branch information
benediktwerner committed Dec 5, 2019
1 parent bee13d6 commit a572f0f
Showing 1 changed file with 9 additions and 14 deletions.
23 changes: 9 additions & 14 deletions crates/cargo-platform/src/cfg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,19 +45,12 @@ impl Cfg {
pub(crate) fn validate_as_target(&self) -> Result<(), ParseErrorKind> {
match self {
Cfg::Name(name) => match name.as_str() {
"unix" | "windows" => Ok(()),
_ => Err(InvalidCfgName(name.to_string())),
"test" | "debug_assertions" | "proc_macro" => Err(InvalidCfgName(name.to_string())),
_ => Ok(()),
},
Cfg::KeyPair(name, _) => match name.as_str() {
"target_arch"
| "target_feature"
| "target_os"
| "target_family"
| "target_env"
| "target_endian"
| "target_pointer_width"
| "target_vendor" => Ok(()),
_ => Err(InvalidCfgKey(name.to_string())),
"feature" => Err(InvalidCfgKey(name.to_string())),
_ => Ok(()),
},
}
}
Expand Down Expand Up @@ -362,6 +355,7 @@ fn cfg_validate_as_target() {
assert!(p("unix").validate_as_target().is_ok());
assert!(p("windows").validate_as_target().is_ok());
assert!(p("any(not(unix), windows)").validate_as_target().is_ok());
assert!(p("foo").validate_as_target().is_ok());

assert!(p("target_arch = \"abc\"").validate_as_target().is_ok());
assert!(p("target_feature = \"abc\"").validate_as_target().is_ok());
Expand All @@ -373,16 +367,17 @@ fn cfg_validate_as_target() {
.validate_as_target()
.is_ok());
assert!(p("target_vendor = \"abc\"").validate_as_target().is_ok());
assert!(p("bar = \"def\"").validate_as_target().is_ok());

assert!(p("test").validate_as_target().is_err());
assert!(p("debug_assertions").validate_as_target().is_err());
assert!(p("foo").validate_as_target().is_err());
assert!(p("proc_macro").validate_as_target().is_err());
assert!(p("any(not(debug_assertions), windows)")
.validate_as_target()
.is_err());

assert!(p("feature = \"abc\"").validate_as_target().is_err());
assert!(p("bar = \"def\"").validate_as_target().is_err());
assert!(p("any(not(feature = \"def\"))")
assert!(p("any(not(feature = \"def\"), target_arch = \"abc\")")
.validate_as_target()
.is_err());
}

0 comments on commit a572f0f

Please sign in to comment.