observer traint
This commit is contained in:
parent
a2e50c7b51
commit
89e0b01706
@ -1 +1,26 @@
|
|||||||
pub trait Executor {}
|
use crate::AflError;
|
||||||
|
use crate::inputs::Input;
|
||||||
|
use crate::observers::Observer;
|
||||||
|
|
||||||
|
pub enum ExitKind {
|
||||||
|
Ok,
|
||||||
|
Crash,
|
||||||
|
OOM,
|
||||||
|
Timeout
|
||||||
|
}
|
||||||
|
|
||||||
|
pub trait Executor {
|
||||||
|
|
||||||
|
fn run_target(&mut self) -> Result<ExitKind, AflError>;
|
||||||
|
|
||||||
|
fn place_input(&mut self, entry: Box<dyn Input>) -> Result<(), AflError>;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO abstract classes? how?
|
||||||
|
pub struct ExecutorBase {
|
||||||
|
|
||||||
|
observers: Vec<Box<dyn Observer>>,
|
||||||
|
cur_input: Box<dyn Input>
|
||||||
|
|
||||||
|
}
|
@ -10,6 +10,7 @@ pub mod monitors;
|
|||||||
pub mod mutators;
|
pub mod mutators;
|
||||||
pub mod stages;
|
pub mod stages;
|
||||||
pub mod utils;
|
pub mod utils;
|
||||||
|
pub mod observers;
|
||||||
|
|
||||||
#[derive(Error, Debug)]
|
#[derive(Error, Debug)]
|
||||||
pub enum AflError {
|
pub enum AflError {
|
||||||
|
15
src/observers/mod.rs
Normal file
15
src/observers/mod.rs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
use crate::AflError;
|
||||||
|
|
||||||
|
pub trait Observer {
|
||||||
|
|
||||||
|
fn flush(&mut self) -> Result<(), AflError> {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
fn reset(&mut self) -> Result<(), AflError>;
|
||||||
|
|
||||||
|
fn post_exec(&mut self) -> Result<(), AflError> {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user