class
Crowbar::Campaign::Runner
- Crowbar::Campaign::Runner
- Reference
- Object
Overview
Multi-target mutation fuzzing campaign orchestrator enforcing 60-second watchdog invariants, bounded execution timeouts, and automatic test case reduction.
Defined in:
crowbar/campaign/runner.crConstructors
Instance Method Summary
- #add_target(target : Target) : Nil
- #auto_shrink : Bool
- #auto_shrink=(auto_shrink : Bool)
- #iterations_per_target : Int32
- #iterations_per_target=(iterations_per_target : Int32)
- #max_duration : Time::Span | Nil
- #max_duration=(max_duration : Time::Span | Nil)
- #name : String
- #name=(name : String)
- #on_crash : Proc(CrashRecord, Nil) | Nil
- #on_crash=(on_crash : Proc(CrashRecord, Nil) | Nil)
- #on_heartbeat : Proc(Int32, Float64, Nil) | Nil
- #on_heartbeat=(on_heartbeat : Proc(Int32, Float64, Nil) | Nil)
-
#on_progress : Proc(String, Int32, Int32, IterationResult, Nil) | Nil
Callback signatures
-
#on_progress=(on_progress : Proc(String, Int32, Int32, IterationResult, Nil) | Nil)
Callback signatures
-
#run : CampaignReport
Executes the full fuzzing campaign across all targets
- #seed : UInt64
- #seed=(seed : UInt64)
- #targets : Array(Target)
- #targets=(targets : Array(Target))
- #watchdog_interval : Time::Span
- #watchdog_interval=(watchdog_interval : Time::Span)
Constructor Detail
def self.new(name : String = "Nightly Mutation Fuzzing", targets : Array(Target) = [] of Target, iterations_per_target : Int32 = 200, max_duration : Time::Span | Nil = nil, seed : UInt64 = 42_u64, auto_shrink : Bool = true, watchdog_interval : Time::Span = 10.seconds)
#
Instance Method Detail
def on_progress=(on_progress : Proc(String, Int32, Int32, IterationResult, Nil) | Nil)
#
Callback signatures