mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-28 03:27:44 +00:00
use a command result structure
This commit is contained in:
parent
104e707b07
commit
2746c199cf
3 changed files with 107 additions and 45 deletions
|
@ -13,6 +13,7 @@ use rand::Rng;
|
|||
use std::ffi::OsString;
|
||||
|
||||
mod fuzz_common;
|
||||
use crate::fuzz_common::CommandResult;
|
||||
use crate::fuzz_common::{compare_result, generate_and_run_uumain, run_gnu_cmd};
|
||||
|
||||
#[derive(PartialEq, Debug, Clone)]
|
||||
|
@ -204,20 +205,31 @@ fuzz_target!(|_data: &[u8]| {
|
|||
args.push(OsString::from(generate_test_arg()));
|
||||
}
|
||||
|
||||
let (rust_stdout, rust_stderr, uumain_exit_code) = generate_and_run_uumain(&args, uumain);
|
||||
let rust_result = generate_and_run_uumain(&args, uumain);
|
||||
|
||||
let (gnu_stdout, gnu_stderr, gnu_exit_code) =
|
||||
run_gnu_cmd(CMD_PATH, &args[1..], false).unwrap_or_else(|e| e);
|
||||
let gnu_result = match run_gnu_cmd(CMD_PATH, &args[1..], false) {
|
||||
Ok(result) => result,
|
||||
Err(error_result) => {
|
||||
eprintln!("Failed to run GNU command:");
|
||||
eprintln!("Stderr: {}", error_result.stderr);
|
||||
eprintln!("Exit Code: {}", error_result.exit_code);
|
||||
CommandResult {
|
||||
stdout: String::new(),
|
||||
stderr: error_result.stderr,
|
||||
exit_code: error_result.exit_code,
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
compare_result(
|
||||
"test",
|
||||
&format!("{:?}", &args[1..]),
|
||||
&rust_stdout,
|
||||
&gnu_stdout,
|
||||
&rust_stderr,
|
||||
&gnu_stderr,
|
||||
uumain_exit_code,
|
||||
gnu_exit_code,
|
||||
&rust_result.stdout,
|
||||
&gnu_result.stdout,
|
||||
&rust_result.stderr,
|
||||
&gnu_result.stderr,
|
||||
rust_result.exit_code,
|
||||
gnu_result.exit_code,
|
||||
false, // Set to true if you want to fail on stderr diff
|
||||
);
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue