use std::time::Duration;
use dev_fuzz::{FuzzBudget, FuzzError, FuzzRun};
fn main() {
let run =
FuzzRun::new("parse_input", "0.1.0").budget(FuzzBudget::time(Duration::from_secs(10)));
let result = match run.execute() {
Ok(r) => r,
Err(FuzzError::ToolNotInstalled) => {
eprintln!("cargo-fuzz is not installed; install with `cargo install cargo-fuzz`.");
return;
}
Err(FuzzError::NightlyRequired) => {
eprintln!("nightly toolchain is required; `rustup toolchain install nightly`.");
return;
}
Err(FuzzError::TargetNotFound(t)) => {
eprintln!("fuzz target `{t}` was not found in this project; skipping.");
return;
}
Err(e) => {
eprintln!("fuzz run failed: {e}");
return;
}
};
println!("Executions: {}", result.executions);
println!("Findings: {}", result.findings.len());
let report = result.into_report();
println!("{}", report.to_json().expect("serialize report"));
}