MCPcopy Create free account
hub / github.com/MultiFuzz/MultiFuzz / run

Method run

hail-fuzz/src/main.rs:976–998  ·  view source on GitHub ↗
(fuzzer: &mut Fuzzer, stats: &mut monitor::LocalStats)

Source from the content-addressed store, hash-verified

974
975impl<S: StageData> FuzzerStage for S {
976 fn run(fuzzer: &mut Fuzzer, stats: &mut monitor::LocalStats) -> anyhow::Result<StageExit> {
977 let mut stage_data = match Self::start(fuzzer) {
978 Ok(data) => data,
979 Err(err) => match err {
980 StageExit::Unknown(err) => return Err(err),
981 exit => return Ok(exit),
982 },
983 };
984
985 while let Some(exit) = stage_data.fuzz_one(fuzzer) {
986 if fuzzer.vm.interrupt_flag.load(std::sync::atomic::Ordering::Relaxed)
987 || matches!(exit, VmExit::Interrupted)
988 {
989 return Ok(StageExit::Interrupted);
990 }
991 fuzzer.check_exit_state(exit)?;
992 stage_data.after_check(fuzzer, fuzzer.state.new_coverage);
993 fuzzer.update_stats(stats);
994 }
995
996 stage_data.end(fuzzer);
997 Ok(StageExit::Skip)
998 }
999}
1000
1001#[allow(unused)]

Callers 2

newMethod · 0.45
execute_with_limitMethod · 0.45

Calls 6

loadMethod · 0.80
check_exit_stateMethod · 0.80
update_statsMethod · 0.80
fuzz_oneMethod · 0.45
after_checkMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected