@@ -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");
3252bench_algorithm ! ( cksum_crc32b, "crc32b" ) ;
3353bench_algorithm ! ( cksum_md5, "md5" ) ;
3454bench_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 ) ;
3757bench_algorithm ! ( cksum_blake2b, "blake2b" ) ;
3858bench_algorithm ! ( cksum_sm3, "sm3" ) ;
3959bench_algorithm ! ( cksum_sha224, "sha224" ) ;
4060bench_algorithm ! ( cksum_sha256, "sha256" ) ;
4161bench_algorithm ! ( cksum_sha384, "sha384" ) ;
4262bench_algorithm ! ( cksum_sha512, "sha512" ) ;
4363bench_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]
8280fn cksum_raw_output ( bencher : Bencher ) {
0 commit comments