Skip to content

Commit 0994603

Browse files
committed
bench: add benchmarks for all cksum algorithms
- Add benchmarks for all 17 SUPPORTED_ALGORITHMS - Add cksum to CI benchmarks workflow - Use macro to reduce code duplication - Follow existing hashsum benchmark patterns Addresses feedback from PR #9064
1 parent 24fb6f8 commit 0994603

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

src/uu/cksum/benches/cksum_bench.rs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,43 @@ use divan::{Bencher, black_box};
77
use uu_cksum::uumain;
88
use uucore::benchmark::{run_util_function, setup_test_file, text_data};
99

10+
// Macro to generate benchmarks for each algorithm
11+
macro_rules! bench_algorithm {
12+
($algo_name:ident, $algo_str:expr) => {
13+
#[divan::bench]
14+
fn $algo_name(bencher: Bencher) {
15+
let data = text_data::generate_by_size(10, 80);
16+
let file_path = setup_test_file(&data);
17+
18+
bencher.bench(|| {
19+
black_box(run_util_function(
20+
uumain,
21+
&["--algorithm", $algo_str, file_path.to_str().unwrap()],
22+
));
23+
});
24+
}
25+
};
26+
}
27+
28+
// Generate benchmarks for all supported algorithms
29+
bench_algorithm!(cksum_sysv, "sysv");
30+
bench_algorithm!(cksum_bsd, "bsd");
31+
bench_algorithm!(cksum_crc, "crc");
32+
bench_algorithm!(cksum_crc32b, "crc32b");
33+
bench_algorithm!(cksum_md5, "md5");
34+
bench_algorithm!(cksum_sha1, "sha1");
35+
bench_algorithm!(cksum_sha2, "sha2");
36+
bench_algorithm!(cksum_sha3, "sha3");
37+
bench_algorithm!(cksum_blake2b, "blake2b");
38+
bench_algorithm!(cksum_sm3, "sm3");
39+
bench_algorithm!(cksum_sha224, "sha224");
40+
bench_algorithm!(cksum_sha256, "sha256");
41+
bench_algorithm!(cksum_sha384, "sha384");
42+
bench_algorithm!(cksum_sha512, "sha512");
43+
bench_algorithm!(cksum_blake3, "blake3");
44+
bench_algorithm!(cksum_shake128, "shake128");
45+
bench_algorithm!(cksum_shake256, "shake256");
46+
1047
/// Benchmark cksum with default CRC algorithm
1148
#[divan::bench]
1249
fn cksum_default(bencher: Bencher) {

0 commit comments

Comments
 (0)