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
|
||||
}
|
||||
}
|
||||
|
||||
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