broken engine test
This commit is contained in:
parent
4b16b8a172
commit
76e36ab4d8
@ -1,31 +0,0 @@
|
|||||||
use std::time;
|
|
||||||
|
|
||||||
use crate::engines::Evaluator;
|
|
||||||
use crate::executors::Executor;
|
|
||||||
use crate::feedbacks::Feedback;
|
|
||||||
use crate::inputs::Input;
|
|
||||||
use crate::monitors::Monitor;
|
|
||||||
use crate::stages::Stage;
|
|
||||||
use crate::utils::Rand;
|
|
||||||
|
|
||||||
/*
|
|
||||||
pub struct AflEngine<'a, I: Input> {
|
|
||||||
pub rand: &'a mut dyn Rand,
|
|
||||||
pub feedbacks: Vec<Box<dyn Feedback<I>>>,
|
|
||||||
|
|
||||||
pub stages: Vec<Box<dyn Stage<I>>>,
|
|
||||||
pub current_stage: &'a Box<dyn Stage<I>>,
|
|
||||||
|
|
||||||
pub executor: Box<dyn Executor<dyn Input>>,
|
|
||||||
|
|
||||||
pub executions: u64,
|
|
||||||
|
|
||||||
pub time_start: time::SystemTime,
|
|
||||||
pub time_last_find: Option<time::SystemTime>,
|
|
||||||
|
|
||||||
// TODO: Map
|
|
||||||
pub monitors: Vec<Box<dyn Monitor>>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<I: Input> Engine<'_> for AflEngine<'_, I> {}
|
|
||||||
*/
|
|
@ -156,3 +156,53 @@ where
|
|||||||
self.executor
|
self.executor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<'a, I, C, E> DefaultEngine<'a, I, C, E>
|
||||||
|
where
|
||||||
|
I: Input,
|
||||||
|
C: Corpus<I>,
|
||||||
|
E: Executor<I>,
|
||||||
|
{
|
||||||
|
pub fn new(corpus: &'a mut C, executor: &'a mut E) -> Self {
|
||||||
|
DefaultEngine {
|
||||||
|
feedbacks: vec![],
|
||||||
|
stages: vec![],
|
||||||
|
corpus: corpus,
|
||||||
|
executor: executor,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use crate::corpus::testcase::Testcase;
|
||||||
|
use crate::corpus::InMemoryCorpus;
|
||||||
|
use crate::engines::{DefaultEngine, Engine};
|
||||||
|
use crate::executors::inmemory::InMemoryExecutor;
|
||||||
|
use crate::executors::{Executor, ExitKind};
|
||||||
|
use crate::inputs::bytes::BytesInput;
|
||||||
|
use crate::stages::mutational::DefaultMutationalStage;
|
||||||
|
use crate::utils::Xoshiro256StarRand;
|
||||||
|
|
||||||
|
use std::cell::RefCell;
|
||||||
|
use std::path::PathBuf;
|
||||||
|
use std::rc::Rc;
|
||||||
|
|
||||||
|
fn harness<I>(_executor: &dyn Executor<I>, buf: &[u8]) -> ExitKind {
|
||||||
|
ExitKind::Ok
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_engine() {
|
||||||
|
let mut rand = Xoshiro256StarRand::new();
|
||||||
|
let mut corpus = InMemoryCorpus::<BytesInput, _>::new(&mut rand);
|
||||||
|
let mut executor = InMemoryExecutor::new(harness);
|
||||||
|
let mut engine = DefaultEngine::new(&mut corpus, &mut executor);
|
||||||
|
let mut rand1 = Xoshiro256StarRand::new();
|
||||||
|
let mut stage = Box::new(DefaultMutationalStage::new(&mut rand1, &mut engine));
|
||||||
|
engine.add_stage(stage);
|
||||||
|
engine.fuzz_one().unwrap();
|
||||||
|
let mut stage1 = Box::new(DefaultMutationalStage::new(&mut rand1, &mut engine));
|
||||||
|
engine.fuzz_one().unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user