mirror of https://github.com/astral-sh/ruff
Add benchmark for running all rules including preview rules (#8865)
This commit is contained in:
parent
cddc696896
commit
2314b9aaca
|
|
@ -3,7 +3,9 @@ use ruff_benchmark::criterion::{
|
||||||
};
|
};
|
||||||
use ruff_benchmark::{TestCase, TestFile, TestFileDownloadError};
|
use ruff_benchmark::{TestCase, TestFile, TestFileDownloadError};
|
||||||
use ruff_linter::linter::lint_only;
|
use ruff_linter::linter::lint_only;
|
||||||
|
use ruff_linter::rule_selector::PreviewOptions;
|
||||||
use ruff_linter::settings::rule_table::RuleTable;
|
use ruff_linter::settings::rule_table::RuleTable;
|
||||||
|
use ruff_linter::settings::types::PreviewMode;
|
||||||
use ruff_linter::settings::{flags, LinterSettings};
|
use ruff_linter::settings::{flags, LinterSettings};
|
||||||
use ruff_linter::source_kind::SourceKind;
|
use ruff_linter::source_kind::SourceKind;
|
||||||
use ruff_linter::{registry::Rule, RuleSelector};
|
use ruff_linter::{registry::Rule, RuleSelector};
|
||||||
|
|
@ -78,12 +80,21 @@ fn benchmark_default_rules(criterion: &mut Criterion) {
|
||||||
benchmark_linter(group, &LinterSettings::default());
|
benchmark_linter(group, &LinterSettings::default());
|
||||||
}
|
}
|
||||||
|
|
||||||
fn benchmark_all_rules(criterion: &mut Criterion) {
|
/// Disables IO based rules because they are a source of flakiness
|
||||||
let mut rules: RuleTable = RuleSelector::All.all_rules().collect();
|
fn disable_io_rules(rules: &mut RuleTable) {
|
||||||
|
|
||||||
// Disable IO based rules because it is a source of flakiness
|
|
||||||
rules.disable(Rule::ShebangMissingExecutableFile);
|
rules.disable(Rule::ShebangMissingExecutableFile);
|
||||||
rules.disable(Rule::ShebangNotExecutable);
|
rules.disable(Rule::ShebangNotExecutable);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn benchmark_all_rules(criterion: &mut Criterion) {
|
||||||
|
let mut rules: RuleTable = RuleSelector::All
|
||||||
|
.rules(&PreviewOptions {
|
||||||
|
mode: PreviewMode::Disabled,
|
||||||
|
require_explicit: false,
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
disable_io_rules(&mut rules);
|
||||||
|
|
||||||
let settings = LinterSettings {
|
let settings = LinterSettings {
|
||||||
rules,
|
rules,
|
||||||
|
|
@ -94,6 +105,22 @@ fn benchmark_all_rules(criterion: &mut Criterion) {
|
||||||
benchmark_linter(group, &settings);
|
benchmark_linter(group, &settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn benchmark_preview_rules(criterion: &mut Criterion) {
|
||||||
|
let mut rules: RuleTable = RuleSelector::All.all_rules().collect();
|
||||||
|
|
||||||
|
disable_io_rules(&mut rules);
|
||||||
|
|
||||||
|
let settings = LinterSettings {
|
||||||
|
rules,
|
||||||
|
preview: PreviewMode::Enabled,
|
||||||
|
..LinterSettings::default()
|
||||||
|
};
|
||||||
|
|
||||||
|
let group = criterion.benchmark_group("linter/all-with-preview-rules");
|
||||||
|
benchmark_linter(group, &settings);
|
||||||
|
}
|
||||||
|
|
||||||
criterion_group!(default_rules, benchmark_default_rules);
|
criterion_group!(default_rules, benchmark_default_rules);
|
||||||
criterion_group!(all_rules, benchmark_all_rules);
|
criterion_group!(all_rules, benchmark_all_rules);
|
||||||
criterion_main!(default_rules, all_rules);
|
criterion_group!(preview_rules, benchmark_preview_rules);
|
||||||
|
criterion_main!(default_rules, all_rules, preview_rules);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue