Auto merge of #11564 - Alexendoo:config-test-test, r=giraffate
Test that each config value exists in a test clippy.toml Inspired by #11560, adds a test that each config option exists in some form in a `clippy.toml` in `tests/` (currently some are in `ui-toml`, some in `ui-cargo`) changelog: none
This commit is contained in:
commit
bf4c998179
@ -28,6 +28,9 @@ semver = "1.0"
|
|||||||
rustc-semver = "1.1"
|
rustc-semver = "1.1"
|
||||||
url = "2.2"
|
url = "2.2"
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
walkdir = "2.3"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
deny-warnings = ["clippy_utils/deny-warnings"]
|
deny-warnings = ["clippy_utils/deny-warnings"]
|
||||||
# build clippy with internal lints enabled, off by default
|
# build clippy with internal lints enabled, off by default
|
||||||
|
@ -744,3 +744,44 @@ fn calculate_dimensions(fields: &[&str]) -> (usize, Vec<usize>) {
|
|||||||
|
|
||||||
(rows, column_widths)
|
(rows, column_widths)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
|
||||||
|
use serde::de::IgnoredAny;
|
||||||
|
use std::fs;
|
||||||
|
use walkdir::WalkDir;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn configs_are_tested() {
|
||||||
|
let mut names: FxHashSet<String> = super::metadata::get_configuration_metadata()
|
||||||
|
.into_iter()
|
||||||
|
.map(|meta| meta.name.replace('_', "-"))
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
let toml_files = WalkDir::new("../tests")
|
||||||
|
.into_iter()
|
||||||
|
.map(Result::unwrap)
|
||||||
|
.filter(|entry| entry.file_name() == "clippy.toml");
|
||||||
|
|
||||||
|
for entry in toml_files {
|
||||||
|
let file = fs::read_to_string(entry.path()).unwrap();
|
||||||
|
#[allow(clippy::zero_sized_map_values)]
|
||||||
|
if let Ok(map) = toml::from_str::<FxHashMap<String, IgnoredAny>>(&file) {
|
||||||
|
for name in map.keys() {
|
||||||
|
names.remove(name.as_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assert!(
|
||||||
|
names.remove("allow-one-hash-in-raw-strings"),
|
||||||
|
"remove this when #11481 is fixed"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(
|
||||||
|
names.is_empty(),
|
||||||
|
"Configuration variable lacks test: {names:?}\nAdd a test to `tests/ui-toml`"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user