Skip to content

Commit 6afa515

Browse files
committed
fuzz(cksum): fix fuzzer to use GNU's binary instead of the systems', remove false positives, improve logging
1 parent 5d952af commit 6afa515

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

fuzz/fuzz_targets/fuzz_cksum.rs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ use uu_cksum::uumain;
1111
mod fuzz_common;
1212
use crate::fuzz_common::{
1313
compare_result, generate_and_run_uumain, generate_random_file, generate_random_string,
14-
run_gnu_cmd, CommandResult,
14+
pretty_print::{print_or_empty, print_test_begin},
15+
replace_fuzz_binary_name, run_gnu_cmd, CommandResult,
1516
};
1617
use rand::Rng;
1718
use std::env::temp_dir;
@@ -129,13 +130,15 @@ fuzz_target!(|_data: &[u8]| {
129130
if let Ok(checksum_file_path) =
130131
generate_checksum_file(algo, &file_path, &selected_digest_opts)
131132
{
133+
print_test_begin(format!("cksum {:?}", args));
134+
132135
if let Ok(content) = fs::read_to_string(&checksum_file_path) {
133-
println!("File content: {checksum_file_path}={content}");
136+
println!("File content ({})", checksum_file_path);
137+
print_or_empty(&content);
134138
} else {
135139
eprintln!("Error reading the checksum file.");
136140
}
137-
println!("args: {:?}", args);
138-
let rust_result = generate_and_run_uumain(&args, uumain, None);
141+
let mut rust_result = generate_and_run_uumain(&args, uumain, None);
139142

140143
let gnu_result = match run_gnu_cmd(CMD_PATH, &args[1..], false, None) {
141144
Ok(result) => result,
@@ -151,6 +154,9 @@ fuzz_target!(|_data: &[u8]| {
151154
}
152155
};
153156

157+
// Lower the number of false positives caused by binary names
158+
replace_fuzz_binary_name("cksum", &mut rust_result);
159+
154160
compare_result(
155161
"cksum",
156162
&format!("{:?}", &args[1..]),

0 commit comments

Comments
 (0)