diff --git a/fuzzers/FRET/src/clock.rs b/fuzzers/FRET/src/clock.rs index b2ef629d32..adc3e597c3 100644 --- a/fuzzers/FRET/src/clock.rs +++ b/fuzzers/FRET/src/clock.rs @@ -212,7 +212,7 @@ where { // TODO Replace with match_name_type when stable let observer = observers.match_name::(self.name()).unwrap(); - self.exec_time = Some(Duration::from_nanos(observer.last_runtime() << 3)); // Assume a somewhat realistic multiplier of clock, it does not matter + self.exec_time = Some(Duration::from_nanos(observer.last_runtime() << 4)); // Assume a somewhat realistic multiplier of clock, it does not matter Ok(false) } diff --git a/fuzzers/FRET/src/fuzzer.rs b/fuzzers/FRET/src/fuzzer.rs index e9d7d7c7e4..3d7ea5a9aa 100644 --- a/fuzzers/FRET/src/fuzzer.rs +++ b/fuzzers/FRET/src/fuzzer.rs @@ -358,9 +358,9 @@ pub fn fuzz() { let mutations = havoc_mutations(); // Setup an havoc mutator with a mutational stage let mutator = StdScheduledMutator::new(mutations); - #[cfg(not(all(feature = "feed_systemtrace", feature = "fuzz_int")))] - let mut stages = tuple_list!(StdMutationalStage::new(mutator)); - #[cfg(all(feature = "feed_systemtrace", feature = "fuzz_int"))] + // #[cfg(not(all(feature = "feed_systemtrace", feature = "fuzz_int")))] + // let mut stages = tuple_list!(StdMutationalStage::new(mutator)); + // #[cfg(all(feature = "feed_systemtrace", feature = "fuzz_int"))] let mut stages = tuple_list!(StdMutationalStage::new(mutator),MyStateStage::new()); if env::var("DO_SHOWMAP").is_ok() { diff --git a/fuzzers/FRET/src/mutational.rs b/fuzzers/FRET/src/mutational.rs index 0f397f1adf..7e8bb6a132 100644 --- a/fuzzers/FRET/src/mutational.rs +++ b/fuzzers/FRET/src/mutational.rs @@ -248,7 +248,7 @@ where let mut suffix = target_bytes.split_off(4 * num_interrupts); let mut prefix : Vec<[u8; 4]> = vec![]; // let mut suffix : Vec = vec![]; - // #[cfg(feature = "feed_systemtrace")] + #[cfg(feature = "feed_systemtrace")] { let tmp = _input.metadata().get::(); if tmp.is_some() { @@ -349,6 +349,14 @@ where } } } + #[cfg(not(feature = "feed_systemtrace"))] + { + let maxtick : u64 = (_input.exec_time().expect("No duration found").as_nanos() >> 4).try_into().unwrap(); + let mut numbers : Vec = vec![]; + for i in 0..num_interrupts { + prefix.push(u32::to_le_bytes(myrand.between(0, maxtick))); + } + } let mut n : Vec = vec![]; n = [prefix.concat(), suffix].concat();