use codediff::code::{ASTMetadata, hash::hash_code};
use criterion::{Criterion, black_box, criterion_group, criterion_main};
use std::time::Duration;
fn benchmark_hash_code(c: &mut Criterion) {
let test_codes =
codediff::test::helper::handmade_test_code().expect("Failed to load test codes");
let mut group = c.benchmark_group("hash_code");
group.measurement_time(Duration::from_secs(10));
group.warm_up_time(Duration::from_secs(2));
for (filename, code) in test_codes {
group.bench_function(filename, |b| {
b.iter(|| {
let mut metadata = ASTMetadata::default();
hash_code(black_box(&code), black_box(&mut metadata)).expect("Hashing failed");
});
});
}
group.finish();
}
criterion_group! {
name = benches;
config = Criterion::default().configure_from_args();
targets = benchmark_hash_code
}
criterion_main!(benches);