Trait Executor

Source
pub trait Executor<EM, I, S, Z> {
    // Required method
    fn run_target(
        &mut self,
        fuzzer: &mut Z,
        state: &mut S,
        mgr: &mut EM,
        input: &I,
    ) -> Result<ExitKind, Error>;
}
Expand description

An executor takes the given inputs, and runs the harness/target.

Required Methods§

Source

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

Implementors§

Source§

impl<A, B, DOT, EM, I, S, Z> Executor<EM, I, S, Z> for DiffExecutor<A, B, DOT, I, A::Observers, B::Observers, S>
where A: Executor<EM, I, S, Z> + HasObservers, B: Executor<EM, I, S, Z> + HasObservers, <A as HasObservers>::Observers: ObserversTuple<I, S>, <B as HasObservers>::Observers: ObserversTuple<I, S>, DOT: DifferentialObserversTuple<A::Observers, B::Observers, I, S> + MatchName,

Source§

impl<A, B, EM, I, S, Z> Executor<EM, I, S, Z> for CombinedExecutor<A, B>
where A: Executor<EM, I, S, Z>, B: Executor<EM, I, S, Z>,

Source§

impl<E, EM, I, OT, S, Z> Executor<EM, I, S, Z> for WithObservers<E, I, OT, S>
where E: Executor<EM, I, S, Z>,

Source§

impl<E, EM, I, S, SOT, Z> Executor<EM, I, S, Z> for ShadowExecutor<E, I, S, SOT>
where E: Executor<EM, I, S, Z> + HasObservers, SOT: ObserversTuple<I, S>,

Source§

impl<E, ET, C, O, EM, I, S, Z, OT> Executor<EM, I, S, Z> for SANDExecutor<E, ET, C, O>
where ET: ExecutorsTuple<EM, I, S, Z>, E: Executor<EM, I, S, Z> + HasObservers<Observers = OT>, OT: MatchName, O: MapObserver<Entry = u8> + for<'it> AsIter<'it, Item = u8>, C: AsRef<O> + Named, S: HasNamedMetadata,

Source§

impl<EM, H, HB, HT, I, OT, S, Z> Executor<EM, I, S, Z> for GenericInProcessExecutor<EM, H, HB, HT, I, OT, S, Z>
where S: HasExecutions, OT: ObserversTuple<I, S>, HT: ExecutorHooksTuple<I, S>, HB: BorrowMut<H>, H: FnMut(&I) -> ExitKind + Sized,

Source§

impl<EM, H, HB, HT, I, OT, S, Z, ES> Executor<EM, I, S, Z> for StatefulGenericInProcessExecutor<EM, ES, H, HB, HT, I, OT, S, Z>
where H: FnMut(&mut ES, &mut S, &I) -> ExitKind + Sized, HB: BorrowMut<H>, HT: ExecutorHooksTuple<I, S>, OT: ObserversTuple<I, S>, S: HasExecutions,

Source§

impl<EM, H, HT, I, OT, S, SP, Z> Executor<EM, I, S, Z> for GenericInProcessForkExecutor<'_, EM, H, HT, I, OT, S, SP, Z>
where H: FnMut(&I) -> ExitKind + Sized, HT: ExecutorHooksTuple<I, S>, OT: ObserversTuple<I, S>, S: HasExecutions, SP: ShMemProvider,

Source§

impl<EM, H, HT, I, OT, S, SP, Z, ES> Executor<EM, I, S, Z> for StatefulGenericInProcessForkExecutor<'_, EM, ES, H, HT, I, OT, S, SP, Z>

Source§

impl<EM, I, OT, S, SHM, TC, Z> Executor<EM, I, S, Z> for ForkserverExecutor<I, OT, S, SHM, TC>
where OT: ObserversTuple<I, S>, S: HasExecutions, TC: TargetBytesConverter<I>, SHM: ShMem,

Source§

impl<EM, I, OT, S, T, Z> Executor<EM, I, S, Z> for CommandExecutor<I, OT, S, T>

Source§

impl<EM, I, OT, S, T, Z, HT> Executor<EM, I, S, Z> for CommandExecutor<I, OT, S, T, HT, Pid>