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 differential::DiffFeedback;
pub use concolic::ConcolicFeedback;
pub use new_hash_feedback::NewHashFeedback;
pub use new_hash_feedback::NewHashFeedbackMetadata;
pub use map::*;
pub use list::*;
pub use nautilus::*;
Modules§
- Concolic feedback for concolic fuzzing. It is used to attach concolic tracing metadata to the testcase. This feedback should be used in combination with another feedback as this feedback always considers testcases to be not interesting. Requires a
ConcolicObserver
to observe the concolic trace. - Diff Feedback, comparing the content of two observers of the same type.
- The module for list feedback
- Map feedback, maximizing or minimizing maps, for example the afl-style map observer.
- Nautilus grammar mutator, see https://github.com/nautilus-fuzz/nautilus
- The
NewHashFeedback
uses the backtrace hash and a hashset to only keep novel cases - Feedback and metatadata for stderr and stdout.
- Feedbacks and associated metadata for detecting whether a given testcase was transferred from another node.
Structs§
- A combined feedback consisting of multiple
Feedback
s - A
CrashFeedback
reports as interesting if the target crashed. - A feedback factory which merely invokes
::default()
for the feedback type provided - Eager
AND
combination of two feedbacks - Eager
OR
combination of two feedbacks - Fast
AND
combination of two feedbacks - Fast
OR
combination of two feedbacks - Compose feedbacks with an
NOT
operation - Nop feedback that annotates execution time in the new testcase, if any for this Feedback, the testcase is never interesting (use with an OR). It decides, if the given
TimeObserver
value of a run is interesting. - A
TimeoutFeedback
reduces the timeout value of a run.
Enums§
- The
ConstFeedback
reports the same value, always. It can be used to enable or disable feedback results through composition.
Traits§
- Feedbacks evaluate the observers. Basically, they reduce the information provided by an observer to a value, indicating the “interestingness” of the last run.
- Factory for feedbacks which should be sensitive to an existing context, e.g. observer(s) from a specific execution
- Logical combination of two feedbacks
- Has an associated observer name (mostly used to retrieve the observer with
MatchName
from anObserverTuple
)
Type Aliases§
- A feedback factory for crash feedbacks
- Combine two feedbacks with an eager AND operation, will call all feedbacks functions even if not necessary to conclude the result
- Combine two feedbacks with an eager OR operation, will call all feedbacks functions even if not necessary to conclude the result
- Combine two feedbacks with an fast AND operation, might skip calling feedbacks functions if not necessary to conclude the result
- Combine two feedbacks with an fast OR operation, might skip calling feedbacks functions if not necessary to conclude the result. This means any feedback that is not first might be skipped, use caution when using with
TimeFeedback
- A feedback factory for timeout feedbacks