determinism fixes, scheduler precision, restarts
This commit is contained in:
parent
c49edd729d
commit
f075988643
@ -5,7 +5,7 @@ authors = ["Andrea Fioraldi <andreafioraldi@gmail.com>", "Dominik Maier <domenuk
|
|||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["std", "snapshot_restore", "singlecore", "feed_longest", "feed_afl"]
|
default = ["std", "snapshot_restore", "singlecore", "feed_longest", "feed_afl", "restarting"]
|
||||||
std = []
|
std = []
|
||||||
snapshot_restore = []
|
snapshot_restore = []
|
||||||
snapshot_fast = [ "snapshot_restore" ]
|
snapshot_fast = [ "snapshot_restore" ]
|
||||||
|
@ -370,13 +370,11 @@ pub fn fuzz() {
|
|||||||
} else {
|
} else {
|
||||||
if let Ok(_) = env::var("SEED_RANDOM") {
|
if let Ok(_) = env::var("SEED_RANDOM") {
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut generator = RandBytesGenerator::new(MAX_INPUT_SIZE);
|
let mut rng = StdRng::seed_from_u64(RNG_SEED);
|
||||||
state
|
for i in 0..100 {
|
||||||
.generate_initial_inputs(&mut fuzzer, &mut executor, &mut generator, &mut mgr, 100)
|
let inp = BytesInput::new(vec![rng.gen::<u8>(); MAX_INPUT_SIZE]);
|
||||||
.unwrap_or_else(|_| {
|
fuzzer.evaluate_input(&mut state, &mut executor, &mut mgr, inp).unwrap();
|
||||||
println!("Failed to load initial corpus at {:?}", &corpus_dirs);
|
}
|
||||||
process::exit(0);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if let Ok(sf) = env::var("SEED_DIR") {
|
else if let Ok(sf) = env::var("SEED_DIR") {
|
||||||
|
@ -56,8 +56,9 @@ where
|
|||||||
{
|
{
|
||||||
fn compute(entry: &mut Testcase<S::Input>, state: &S) -> Result<f64, Error> {
|
fn compute(entry: &mut Testcase<S::Input>, state: &S) -> Result<f64, Error> {
|
||||||
// TODO maybe enforce entry.exec_time().is_some()
|
// 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();
|
let et = entry.exec_time().expect("testcase.exec_time is needed for scheduler");
|
||||||
Ok(execs_per_hour)
|
let tns : i64 = et.as_nanos().try_into().expect("failed to convert time");
|
||||||
|
Ok(-tns as f64)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user