WIP: add simple interrupt time randomizer
This commit is contained in:
parent
8a79e12f91
commit
a8a6c175c8
@ -212,7 +212,7 @@ where
|
|||||||
{
|
{
|
||||||
// TODO Replace with match_name_type when stable
|
// TODO Replace with match_name_type when stable
|
||||||
let observer = observers.match_name::<QemuClockObserver>(self.name()).unwrap();
|
let observer = observers.match_name::<QemuClockObserver>(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)
|
Ok(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -358,9 +358,9 @@ pub fn fuzz() {
|
|||||||
let mutations = havoc_mutations();
|
let mutations = havoc_mutations();
|
||||||
// Setup an havoc mutator with a mutational stage
|
// Setup an havoc mutator with a mutational stage
|
||||||
let mutator = StdScheduledMutator::new(mutations);
|
let mutator = StdScheduledMutator::new(mutations);
|
||||||
#[cfg(not(all(feature = "feed_systemtrace", feature = "fuzz_int")))]
|
// #[cfg(not(all(feature = "feed_systemtrace", feature = "fuzz_int")))]
|
||||||
let mut stages = tuple_list!(StdMutationalStage::new(mutator));
|
// let mut stages = tuple_list!(StdMutationalStage::new(mutator));
|
||||||
#[cfg(all(feature = "feed_systemtrace", feature = "fuzz_int"))]
|
// #[cfg(all(feature = "feed_systemtrace", feature = "fuzz_int"))]
|
||||||
let mut stages = tuple_list!(StdMutationalStage::new(mutator),MyStateStage::new());
|
let mut stages = tuple_list!(StdMutationalStage::new(mutator),MyStateStage::new());
|
||||||
|
|
||||||
if env::var("DO_SHOWMAP").is_ok() {
|
if env::var("DO_SHOWMAP").is_ok() {
|
||||||
|
@ -248,7 +248,7 @@ where
|
|||||||
let mut suffix = target_bytes.split_off(4 * num_interrupts);
|
let mut suffix = target_bytes.split_off(4 * num_interrupts);
|
||||||
let mut prefix : Vec<[u8; 4]> = vec![];
|
let mut prefix : Vec<[u8; 4]> = vec![];
|
||||||
// let mut suffix : Vec<u8> = vec![];
|
// let mut suffix : Vec<u8> = vec![];
|
||||||
// #[cfg(feature = "feed_systemtrace")]
|
#[cfg(feature = "feed_systemtrace")]
|
||||||
{
|
{
|
||||||
let tmp = _input.metadata().get::<FreeRTOSSystemStateMetadata>();
|
let tmp = _input.metadata().get::<FreeRTOSSystemStateMetadata>();
|
||||||
if tmp.is_some() {
|
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<u32> = vec![];
|
||||||
|
for i in 0..num_interrupts {
|
||||||
|
prefix.push(u32::to_le_bytes(myrand.between(0, maxtick)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let mut n : Vec<u8> = vec![];
|
let mut n : Vec<u8> = vec![];
|
||||||
n = [prefix.concat(), suffix].concat();
|
n = [prefix.concat(), suffix].concat();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user