Skip to content

Commit b8bf977

Browse files
committed
fix: add --length parameter to algorithms that require it
SHA2, SHA3, SHAKE128, and SHAKE256 algorithms require --length parameter. Updated benchmark macro to handle algorithms with optional length parameter. Fixes benchmark runtime errors for these algorithms.
1 parent 0994603 commit b8bf977

2 files changed

Lines changed: 25 additions & 26 deletions

File tree

.github/workflows/benchmarks.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ jobs:
2424
matrix:
2525
benchmark-target:
2626
- { package: uu_base64 }
27+
- { package: uu_cksum }
2728
- { package: uu_cp }
2829
- { package: uu_cut }
2930
- { package: uu_du }

src/uu/cksum/benches/cksum_bench.rs

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,26 @@ macro_rules! bench_algorithm {
2323
});
2424
}
2525
};
26+
($algo_name:ident, $algo_str:expr, length) => {
27+
#[divan::bench]
28+
fn $algo_name(bencher: Bencher) {
29+
let data = text_data::generate_by_size(10, 80);
30+
let file_path = setup_test_file(&data);
31+
32+
bencher.bench(|| {
33+
black_box(run_util_function(
34+
uumain,
35+
&[
36+
"--algorithm",
37+
$algo_str,
38+
"--length",
39+
"256",
40+
file_path.to_str().unwrap(),
41+
],
42+
));
43+
});
44+
}
45+
};
2646
}
2747

2848
// Generate benchmarks for all supported algorithms
@@ -32,17 +52,17 @@ bench_algorithm!(cksum_crc, "crc");
3252
bench_algorithm!(cksum_crc32b, "crc32b");
3353
bench_algorithm!(cksum_md5, "md5");
3454
bench_algorithm!(cksum_sha1, "sha1");
35-
bench_algorithm!(cksum_sha2, "sha2");
36-
bench_algorithm!(cksum_sha3, "sha3");
55+
bench_algorithm!(cksum_sha2, "sha2", length);
56+
bench_algorithm!(cksum_sha3, "sha3", length);
3757
bench_algorithm!(cksum_blake2b, "blake2b");
3858
bench_algorithm!(cksum_sm3, "sm3");
3959
bench_algorithm!(cksum_sha224, "sha224");
4060
bench_algorithm!(cksum_sha256, "sha256");
4161
bench_algorithm!(cksum_sha384, "sha384");
4262
bench_algorithm!(cksum_sha512, "sha512");
4363
bench_algorithm!(cksum_blake3, "blake3");
44-
bench_algorithm!(cksum_shake128, "shake128");
45-
bench_algorithm!(cksum_shake256, "shake256");
64+
bench_algorithm!(cksum_shake128, "shake128", length);
65+
bench_algorithm!(cksum_shake256, "shake256", length);
4666

4767
/// Benchmark cksum with default CRC algorithm
4868
#[divan::bench]
@@ -55,28 +75,6 @@ fn cksum_default(bencher: Bencher) {
5575
});
5676
}
5777

58-
/// Benchmark cksum on small file
59-
#[divan::bench]
60-
fn cksum_small_file(bencher: Bencher) {
61-
let data = text_data::generate_by_size(1, 80);
62-
let file_path = setup_test_file(&data);
63-
64-
bencher.bench(|| {
65-
black_box(run_util_function(uumain, &[file_path.to_str().unwrap()]));
66-
});
67-
}
68-
69-
/// Benchmark cksum on large file
70-
#[divan::bench]
71-
fn cksum_large_file(bencher: Bencher) {
72-
let data = text_data::generate_by_size(50, 80);
73-
let file_path = setup_test_file(&data);
74-
75-
bencher.bench(|| {
76-
black_box(run_util_function(uumain, &[file_path.to_str().unwrap()]));
77-
});
78-
}
79-
8078
/// Benchmark cksum with raw output format
8179
#[divan::bench]
8280
fn cksum_raw_output(bencher: Bencher) {

0 commit comments

Comments
 (0)