Add SPEEDTEST

This commit is contained in:
blyxyas 2023-06-10 11:21:28 +02:00
parent 15ed281699
commit d69c4f553c
No known key found for this signature in database
GPG key ID: 4D38170B5A2FC334
2 changed files with 64 additions and 6 deletions

View file

@ -213,12 +213,46 @@ fn run_ui_cargo() {
fn main() {
set_var("CLIPPY_DISABLE_DOCS_LINKS", "true");
run_ui();
run_ui_toml();
run_ui_cargo();
run_internal_tests();
rustfix_coverage_known_exceptions_accuracy();
ui_cargo_toml_metadata();
// The SPEEDTEST_* env variables can be used to check Clippy's performance on your PR. It runs the
// affected test 1000 times and gets the average.
if let Ok(speedtest) = std::env::var("SPEEDTEST") {
println!("----------- STARTING SPEEDTEST -----------");
let f;
match speedtest.as_str() {
"ui" => f = run_ui as fn(),
"cargo" => f = run_ui_cargo as fn(),
"toml" => f = run_ui_toml as fn(),
"internal" => f = run_internal_tests as fn(),
"rustfix-coverage-known-exceptions-accuracy" => f = rustfix_coverage_known_exceptions_accuracy as fn(),
"ui-cargo-toml-metadata" => f = ui_cargo_toml_metadata() as fn(),
_ => panic!("unknown speedtest: {speedtest} || accepted speedtests are: [ui, cargo, toml, internal]"),
}
let iterations;
if let Ok(iterations_str) = std::env::var("SPEEDTEST_ITERATIONS") {
iterations = iterations_str
.parse::<u64>()
.unwrap_or_else(|_| panic!("Couldn't parse `{}`, please use a valid u64", iterations_str));
} else {
iterations = 1000;
}
let mut sum = 0;
for _ in 0..iterations {
let start = std::time::Instant::now();
f();
sum += start.elapsed().as_millis();
}
println!("average {} time: {} millis.", speedtest.to_uppercase(), sum / 1000);
} else {
run_ui();
run_ui_toml();
run_ui_cargo();
run_internal_tests();
rustfix_coverage_known_exceptions_accuracy();
ui_cargo_toml_metadata();
}
}
const RUSTFIX_COVERAGE_KNOWN_EXCEPTIONS: &[&str] = &[