determinism fixes, scheduler precision, restarts

This commit is contained in:
Alwin Berger 2023-03-13 14:43:58 +01:00
parent d118eeacbd
commit f09034b7fe
3 changed files with 9 additions and 10 deletions

View File

@ -5,7 +5,7 @@ authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenuk
edition = "2021"
[features]
default = ["std", "snapshot_restore", "singlecore", "feed_longest", "feed_afl"]
default = ["std", "snapshot_restore", "singlecore", "feed_longest", "feed_afl", "restarting"]
std = []
snapshot_restore = []
snapshot_fast = [ "snapshot_restore" ]

View File

@ -370,13 +370,11 @@ pub fn fuzz() {
} else {
if let Ok(_) = env::var("SEED_RANDOM") {
unsafe {
let mut generator = RandBytesGenerator::new(MAX_INPUT_SIZE);
state
.generate_initial_inputs(&mut fuzzer, &mut executor, &mut generator, &mut mgr, 100)
.unwrap_or_else(|_| {
println!("Failed to load initial corpus at {:?}", &corpus_dirs);
process::exit(0);
});
let mut rng = StdRng::seed_from_u64(RNG_SEED);
for i in 0..100 {
let inp = BytesInput::new(vec![rng.gen::<u8>(); MAX_INPUT_SIZE]);
fuzzer.evaluate_input(&mut state, &mut executor, &mut mgr, inp).unwrap();
}
}
}
else if let Ok(sf) = env::var("SEED_DIR") {

View File

@ -56,8 +56,9 @@ where
{
fn compute(entry: &mut Testcase<S::Input>, state: &S) -> Result<f64, Error> {
// TODO maybe enforce entry.exec_time().is_some()
let execs_per_hour = 3600.0/entry.exec_time().expect("testcase.exec_time is needed for scheduler").as_secs_f64();
Ok(execs_per_hour)
let et = entry.exec_time().expect("testcase.exec_time is needed for scheduler");
let tns : i64 = et.as_nanos().try_into().expect("failed to convert time");
Ok(-tns as f64)
}
}