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 stages;
|
||||
pub mod utils;
|
||||
pub mod observers;
|
||||
|
||||
#[derive(Error, Debug)]
|
||||
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