pub struct InProcessForkExecutor<'a, H, I, OT, S, SP> where
H: FnMut(&I) -> ExitKind + ?Sized,
I: Input,
OT: ObserversTuple<I, S>,
SP: ShMemProvider, { /* private fields */ }
Expand description
InProcessForkExecutor
is an executor that forks the current process before each execution.
Implementations
sourceimpl<'a, H, I, OT, S, SP> InProcessForkExecutor<'a, H, I, OT, S, SP> where
H: FnMut(&I) -> ExitKind + ?Sized,
I: Input,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
impl<'a, H, I, OT, S, SP> InProcessForkExecutor<'a, H, I, OT, S, SP> where
H: FnMut(&I) -> ExitKind + ?Sized,
I: Input,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
sourcepub fn new<EM, OF, Z>(
harness_fn: &'a mut H,
observers: OT,
_fuzzer: &mut Z,
_state: &mut S,
_event_mgr: &mut EM,
shmem_provider: SP
) -> Result<Self, Error> where
EM: EventFirer<I> + EventRestarter<S>,
OF: Feedback<I, S>,
S: HasSolutions<I> + HasClientPerfMonitor,
Z: HasObjective<I, OF, S>,
pub fn new<EM, OF, Z>(
harness_fn: &'a mut H,
observers: OT,
_fuzzer: &mut Z,
_state: &mut S,
_event_mgr: &mut EM,
shmem_provider: SP
) -> Result<Self, Error> where
EM: EventFirer<I> + EventRestarter<S>,
OF: Feedback<I, S>,
S: HasSolutions<I> + HasClientPerfMonitor,
Z: HasObjective<I, OF, S>,
Creates a new InProcessForkExecutor
sourcepub fn harness_mut(&mut self) -> &mut H
pub fn harness_mut(&mut self) -> &mut H
Retrieve the harness function for a mutable reference.
Trait Implementations
sourceimpl<'a, H, I, OT, S, SP> Debug for InProcessForkExecutor<'a, H, I, OT, S, SP> where
H: FnMut(&I) -> ExitKind + ?Sized,
I: Input,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
impl<'a, H, I, OT, S, SP> Debug for InProcessForkExecutor<'a, H, I, OT, S, SP> where
H: FnMut(&I) -> ExitKind + ?Sized,
I: Input,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
sourceimpl<'a, EM, H, I, OT, S, SP, Z> Executor<EM, I, S, Z> for InProcessForkExecutor<'a, H, I, OT, S, SP> where
H: FnMut(&I) -> ExitKind + ?Sized,
I: Input,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
impl<'a, EM, H, I, OT, S, SP, Z> Executor<EM, I, S, Z> for InProcessForkExecutor<'a, H, I, OT, S, SP> where
H: FnMut(&I) -> ExitKind + ?Sized,
I: Input,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
sourcefn run_target(
&mut self,
_fuzzer: &mut Z,
state: &mut S,
_mgr: &mut EM,
input: &I
) -> Result<ExitKind, Error>
fn run_target(
&mut self,
_fuzzer: &mut Z,
state: &mut S,
_mgr: &mut EM,
input: &I
) -> Result<ExitKind, Error>
Instruct the target about the input and run
sourcefn with_observers<OT>(self, observers: OT) -> WithObservers<Self, OT> where
Self: Sized,
OT: ObserversTuple<I, S>,
fn with_observers<OT>(self, observers: OT) -> WithObservers<Self, OT> where
Self: Sized,
OT: ObserversTuple<I, S>,
Wraps this Executor with the given ObserversTuple
to implement HasObservers
. Read more
sourcefn post_run_reset(&mut self)
fn post_run_reset(&mut self)
Custom Reset Handler, e.g., to reset timers
sourceimpl<'a, H, I, OT, S, SP> HasObservers<I, OT, S> for InProcessForkExecutor<'a, H, I, OT, S, SP> where
H: FnMut(&I) -> ExitKind + ?Sized,
I: Input,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
impl<'a, H, I, OT, S, SP> HasObservers<I, OT, S> for InProcessForkExecutor<'a, H, I, OT, S, SP> where
H: FnMut(&I) -> ExitKind + ?Sized,
I: Input,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
Auto Trait Implementations
impl<'a, H: ?Sized, I, OT, S, SP> RefUnwindSafe for InProcessForkExecutor<'a, H, I, OT, S, SP> where
H: RefUnwindSafe,
I: RefUnwindSafe,
OT: RefUnwindSafe,
S: RefUnwindSafe,
SP: RefUnwindSafe,
impl<'a, H, I, OT, S, SP> !Send for InProcessForkExecutor<'a, H, I, OT, S, SP>
impl<'a, H, I, OT, S, SP> !Sync for InProcessForkExecutor<'a, H, I, OT, S, SP>
impl<'a, H: ?Sized, I, OT, S, SP> Unpin for InProcessForkExecutor<'a, H, I, OT, S, SP> where
I: Unpin,
OT: Unpin,
S: Unpin,
SP: Unpin,
impl<'a, H, I, OT, S, SP> !UnwindSafe for InProcessForkExecutor<'a, H, I, OT, S, SP>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Tail, T> Prepend<T> for Tail
impl<Tail, T> Prepend<T> for Tail
type PreprendResult = Tail
type PreprendResult = Tail
The Resulting TupleList
, of an Prepend::prepend()
call,
including the prepended entry. Read more
sourcefn prepend(self, value: T) -> (T, <Tail as Prepend<T>>::PreprendResult)
fn prepend(self, value: T) -> (T, <Tail as Prepend<T>>::PreprendResult)
Prepend a value to this tuple, returning a new tuple with prepended value.