fix: parameterize SHA2/SHA3 benchmarks to use valid lengths

- Use length as parameter instead of hardcoded values
- Add algorithm-specific lengths for each algorithm (224, 256, 384, 512 bits)
- Resolves benchmarks running too fast (<500µs) due to invalid length parameters
- All algorithms now produce meaningful hash outputs with proper timing
This commit is contained in:
naoNao89 2025-10-29 18:16:21 +07:00 committed by Dorian Péron
parent c750bffdd8
commit d27c8b4dc2

View file

@ -23,7 +23,7 @@ macro_rules! bench_algorithm {
});
}
};
($algo_name:ident, $algo_str:expr, length) => {
($algo_name:ident, $algo_str:expr, $length:expr) => {
#[divan::bench]
fn $algo_name(bencher: Bencher) {
let data = text_data::generate_by_size(100, 80);
@ -36,7 +36,7 @@ macro_rules! bench_algorithm {
"--algorithm",
$algo_str,
"--length",
"1048576",
$length,
file_path.to_str().unwrap(),
],
));
@ -96,14 +96,14 @@ bench_algorithm!(cksum_crc, "crc");
bench_algorithm!(cksum_crc32b, "crc32b");
bench_algorithm!(cksum_md5, "md5");
bench_algorithm!(cksum_sha1, "sha1");
bench_algorithm!(cksum_sha2, "sha2", length);
bench_algorithm!(cksum_sha3, "sha3", length);
bench_algorithm!(cksum_sha2, "sha2", "256");
bench_algorithm!(cksum_sha3, "sha3", "256");
bench_algorithm!(cksum_blake2b, "blake2b");
bench_algorithm!(cksum_sm3, "sm3");
bench_algorithm!(cksum_sha224, "sha224");
bench_algorithm!(cksum_sha256, "sha256");
bench_algorithm!(cksum_sha384, "sha384");
bench_algorithm!(cksum_sha512, "sha512");
bench_algorithm!(cksum_sha224, "sha224", "224");
bench_algorithm!(cksum_sha256, "sha256", "256");
bench_algorithm!(cksum_sha384, "sha384", "384");
bench_algorithm!(cksum_sha512, "sha512", "512");
bench_algorithm!(cksum_blake3, "blake3");
bench_shake_algorithm!(cksum_shake128, "shake128", Shake128);
bench_shake_algorithm!(cksum_shake256, "shake256", Shake256);