Module feedbacks

Source
Expand description

The feedbacks reduce observer state after each run to a single is_interesting-value. If a testcase is interesting, it may be added to a Corpus.

Re-exports§

pub use concolic::ConcolicFeedback;
pub use differential::DiffFeedback;
pub use new_hash_feedback::NewHashFeedback;
pub use new_hash_feedback::NewHashFeedbackMetadata;
pub use bool::BoolValueFeedback;
pub use capture_feedback::CaptureTimeoutFeedback;
pub use value_bloom::ValueBloomFeedback;
pub use list::*;
pub use map::*;
pub use nautilus::*;

Modules§

bool
The BoolValueFeedback is a Feedback returning true or false as the is_interesting value.
capture_feedback
Feedback that captures Timeouts for re-running
concolic
Concolic feedback for concolic fuzzing.
custom_filename
The module for CustomFilenameToTestcaseFeedback
differential
Diff Feedback, comparing the content of two observers of the same type.
list
The module for list feedback
map
Map feedback, maximizing or minimizing maps, for example the afl-style map observer.
nautilus
Nautilus grammar mutator, see https://github.com/nautilus-fuzz/nautilus
new_hash_feedback
The NewHashFeedback uses the backtrace hash and a hashset to only keep novel cases
simd
SIMD accelerated map feedback with stable Rust.
stdio
Feedback and metatadata for stderr and stdout.
transferred
Feedbacks and associated metadata for detecting whether a given testcase was transferred from another node.
value_bloom
The ValueBloomFeedback checks if a value has already been observed in a BloomFilter and returns true if the value is new, adding it to the bloom filter.

Structs§

CombinedFeedback
A combined feedback consisting of multiple Feedbacks
CrashLogic
Logic which finds all ExitKind::Crash exits interesting
ExitKindFeedback
A generic exit type checking feedback. Use CrashFeedback, TimeoutFeedback, or DiffExitKindFeedback directly instead.
GenericDiffLogic
Logic which finds all ExitKind::Diff exits interesting
LogicEagerAnd
Eager AND combination of two feedbacks
LogicEagerOr
Eager OR combination of two feedbacks
LogicFastAnd
Fast AND combination of two feedbacks
LogicFastOr
Fast OR combination of two feedbacks
NotFeedback
Compose feedbacks with an NOT operation
TimeFeedback
A Feedback to track execution time.
TimeoutLogic
Logic which finds all ExitKind::Timeout exits interesting

Enums§

ConstFeedback
The ConstFeedback reports the same value, always. It can be used to enable or disable feedback results through composition.

Constants§

CRASH_FEEDBACK_NAME
Name used by CrashFeedback
TIMEOUT_FEEDBACK_NAME
Name used by TimeoutFeedback

Traits§

ExitKindLogic
Logic for measuring whether a given ExitKind is interesting as a Feedback. Use with ExitKindFeedback.
Feedback
Feedbacks evaluate the observers. Basically, they reduce the information provided by an observer to a value, indicating the “interestingness” of the last run.
FeedbackFactory
Factory for feedbacks which should be sensitive to an existing context, e.g. observer(s) from a specific execution
FeedbackLogic
Logical combination of two feedbacks
HasObserverHandle
Has an associated observer name (mostly used to retrieve the observer with MatchName from an ObserverTuple)
StateInitializer
Feedback which initializes a state.

Type Aliases§

CrashFeedback
A CrashFeedback reports as interesting if the target crashed.
DiffExitKindFeedback
A DiffExitKindFeedback checks if there is a difference in the ExitKinds in a crate::executors::DiffExecutor.
EagerAndFeedback
Combine two feedbacks with an eager AND operation, will call all feedbacks functions even if not necessary to conclude the result
EagerOrFeedback
Combine two feedbacks with an eager OR operation, will call all feedbacks functions even if not necessary to conclude the result
FastAndFeedback
Combine two feedbacks with an fast AND operation, might skip calling feedbacks functions if not necessary to conclude the result
FastOrFeedback
Combine two feedbacks with an fast OR operation - fast.
TimeoutFeedback
A TimeoutFeedback reduces the timeout value of a run.