MCPcopy Create free account
hub / github.com/MultiFuzz/MultiFuzz / InputMetadata

Class InputMetadata

hail-fuzz/src/queue.rs:332–380  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

330
331#[derive(Clone, Default, serde::Serialize, serde::Deserialize)]
332pub(crate) struct InputMetadata {
333 /// A unique identifier assigned to this test case.
334 pub id: InputId,
335 /// The ID of the parent input that discovered this test-case
336 pub parent_id: Option<InputId>,
337 /// The length of the input chain required to reach this input.
338 pub depth: u64,
339 /// The cached length (in bytes) of the input.
340 pub len: u64,
341 /// The length of the input (in bytes) before the input was trimmed.
342 pub untrimed_len: u64,
343 /// The number of non-empty streams.
344 pub streams: u64,
345 /// The number of instructions executed by the VM when running the test case.
346 pub instructions: u64,
347 /// The number of coverage bits set for this input.
348 pub coverage_bits: u64,
349 /// The time (since the fuzzer started) in milliseconds that we found this input at.
350 pub found_at: u64,
351 /// The total time spent executing mutated versions of this input.
352 pub time: Duration,
353 /// The total number of times a mutated version of this input was mutated.
354 pub execs: u64,
355 /// The number of times a new path was found by mutating this input.
356 pub finds: u64,
357 /// The number of times the input has resulted in a hang after mutation.
358 pub hangs: u64,
359 /// The total number of times the input has resulted in a crash after mutation.
360 pub crashes: u64,
361 /// The number of executions that were made the last time we saved a mutated input.
362 pub last_find: u64,
363 /// The largest gap (in executions) since we found a new input. This is used for scalling the
364 /// mutation rate during Havoc.
365 pub max_find_gap: u64,
366 /// The new bits discovered by this input.
367 pub new_bits: Vec<u32>,
368 /// The stage that the input was discovered in.
369 pub stage: Stage,
370 /// The mutations that were performed to find this input.
371 pub mutation_kinds: Vec<MutationKind>,
372 /// The number of times this input as been chosen by the fuzzer.
373 pub rounds: u64,
374 /// The number of length extensions rounds applied to this input.
375 pub length_extension_rounds: u64,
376 /// The number of havoc rounds applied to this input.
377 pub havoc_rounds: u64,
378 /// Whether this was a crashing input.
379 pub is_crashing: bool,
380}
381
382pub(crate) trait InputSource {
383 /// Get the next input the input queue. Returns `None` if the queue is empty.

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected