tidy: validate LLVM component names in tests

LLVM component names are not immediately obvious (they usually omit any
suffixes on the target arch name), and if they're incorrect, the test
will silently never run.
This commit is contained in:
Erik Desjardins 2024-05-23 22:47:27 -04:00
parent 8679004993
commit 5888de8cbe

View file

@ -10,6 +10,25 @@ use crate::walk::filter_not_rust;
const LLVM_COMPONENTS_HEADER: &str = "needs-llvm-components:";
const COMPILE_FLAGS_HEADER: &str = "compile-flags:";
const KNOWN_LLVM_COMPONENTS: &[&str] = &[
"aarch64",
"arm",
"avr",
"bpf",
"hexagon",
"loongarch",
"m68k",
"mips",
"msp430",
"nvptx",
"powerpc",
"riscv",
"sparc",
"systemz",
"webassembly",
"x86",
];
#[derive(Default, Debug)]
struct RevisionInfo<'a> {
target_arch: Option<&'a str>,
@ -68,6 +87,17 @@ pub fn check(path: &Path, bad: &mut bool) {
// gathered.
}
}
if let Some(llvm_components) = llvm_components {
for component in llvm_components {
if !KNOWN_LLVM_COMPONENTS.contains(component) {
eprintln!(
"{}: revision {} specifies unknown LLVM component `{}`",
file, rev, component
);
*bad = true;
}
}
}
}
});
}