MCPcopy Create free account
hub / github.com/FuzzAnything/PromptFuzz / recompute_global_coverage

Method recompute_global_coverage

src/feedback/observer.rs:245–266  ·  view source on GitHub ↗

Recompute the global branch coverage according current seed programs. typicall called after Fuzzer::Executor::recheck_seeds();

(&mut self)

Source from the content-addressed store, hash-verified

243 // Recompute the global branch coverage according current seed programs.
244 // typicall called after Fuzzer::Executor::recheck_seeds();
245 pub fn recompute_global_coverage(&mut self) -> Result<()> {
246 log::info!(
247 "Recompute the global branch coverage! \n Previous: {}",
248 self.dump_global_states()
249 );
250 self.clear_global_branches();
251
252 let seed_dir = self.deopt.get_library_seed_dir()?;
253 for seed in read_sort_dir(&seed_dir)? {
254 let mut program = Program::load_from_path(&seed)?;
255 let coverage = self.deopt.get_seed_coverage(program.id)?;
256 let unique_branches = self.has_unique_branch(&coverage);
257 if !unique_branches.is_empty() {
258 program.set_unique_branches(unique_branches);
259 self.merge_coverage(&coverage);
260 // update the quality
261 self.deopt.save_program(&program)?;
262 }
263 }
264 log::info!("Recompute finished. Current: {}", self.dump_global_states());
265 Ok(())
266 }
267}
268
269#[cfg(test)]

Callers 1

fuzz_loopMethod · 0.80

Calls 9

read_sort_dirFunction · 0.85
clear_global_branchesMethod · 0.80
get_library_seed_dirMethod · 0.80
get_seed_coverageMethod · 0.80
has_unique_branchMethod · 0.80
set_unique_branchesMethod · 0.80
merge_coverageMethod · 0.80
save_programMethod · 0.80
is_emptyMethod · 0.45

Tested by

no test coverage detected