pub enum Result_ {
NoErrors,
BadMalloc,
Crash,
Death,
Exit,
Leak,
Oom,
Timeout,
Minimized,
Cleansed,
Merged,
// some variants omitted
}
Expand description
Indicates the result of a long-running fuzzing workflow.
Fuzzers have several “long-running” workflows; that is, the fuzzer may
perform actions for an indefinite period of time. Fuzzing itself is the most
notable example, as the fuzzing engine may continuously generate new inputs
until an error is found. This workflow is represented by the Fuzz
method
below. Other long-running workflows include TryOne
, Cleanse
, Minimize
and Merge
.
These workflows continue executing after their associated call returns. Only
one workflow at a time may be executing. Callers can use AddMonitor
to
monitor the status of the workflow, and GetArtifact
to retrieve the
Result
and optionally associated Input
when it completes.
Variants§
NoErrors
The associated input did not cause any errors to be detected when tried.
BadMalloc
Trying the associated input triggered a memory allocation by an
instrumented process that exceeded the configured limit. Some fuzzing
engines, such as libFuzzer, may not distinguish between this result and
OOM
. To differentiate, examine the fuzzer output.
Crash
Trying the associated input triggered an exception in an instrumented process.
Death
Trying the associated input triggered an error in an instrumented process that was detected by a sanitizer runtime.
Exit
Trying the associated input caused an instrumented process to exit
unexpectedly. Some fuzzing engines such as libFuzzer may combine this
result with CRASH
. To differentiate, examine the fuzzer output.
Leak
Trying the associated input triggered a memory leak in an instrumented process.
Oom
Trying the associated input caused an instrumented process’s memory usage to exceed the configured limit.
Timeout
Trying the associated input took longer than the configured limit.
Minimized
The associated input was produced by finding the shortest input that
produces the same error as an original input. See Minimize
.
Cleansed
The associated input was produced by replacing bytes in an original
input with PII-free values while preserving the error produced. See
Cleanse
.
Merged
The fuzzer corpus has been compacted to only include the shortest inputs
that preserve overall coverage. This workflow does not have an
associated input. See Merge
.
Implementations§
Source§impl Result_
impl Result_
pub fn from_primitive(prim: u32) -> Option<Self>
pub fn from_primitive_allow_unknown(prim: u32) -> Self
pub fn unknown() -> Self
pub const fn into_primitive(self) -> u32
pub fn is_unknown(&self) -> bool
Trait Implementations§
Source§impl<D: ResourceDialect> Decode<Result_, D> for Result_
impl<D: ResourceDialect> Decode<Result_, D> for Result_
Source§impl Ord for Result_
impl Ord for Result_
Source§impl PartialOrd for Result_
impl PartialOrd for Result_
Source§impl TypeMarker for Result_
impl TypeMarker for Result_
Source§fn inline_align(_context: Context) -> usize
fn inline_align(_context: Context) -> usize
Source§fn inline_size(_context: Context) -> usize
fn inline_size(_context: Context) -> usize
inline_align
.Source§fn encode_is_copy() -> bool
fn encode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and encoding requires no validation. When true, we can optimize
encoding arrays and vectors of Self::Owned
to a single memcpy. Read moreSource§fn decode_is_copy() -> bool
fn decode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and decoding requires no validation. When true, we can optimize
decoding arrays and vectors of Self::Owned
to a single memcpy.Source§impl ValueTypeMarker for Result_
impl ValueTypeMarker for Result_
impl Copy for Result_
impl Eq for Result_
impl StructuralPartialEq for Result_
Auto Trait Implementations§
impl Freeze for Result_
impl RefUnwindSafe for Result_
impl Send for Result_
impl Sync for Result_
impl Unpin for Result_
impl UnwindSafe for Result_
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)