parent
1682ce6862
commit
a5248d0250
@ -318,9 +318,9 @@ fn fuzz(
|
|||||||
let power = StdPowerMutationalStage::new(mutator, &edges_observer);
|
let power = StdPowerMutationalStage::new(mutator, &edges_observer);
|
||||||
|
|
||||||
// A minimization+queue policy to get testcasess from the corpus
|
// A minimization+queue policy to get testcasess from the corpus
|
||||||
let scheduler = IndexesLenTimeMinimizerScheduler::new(StdWeightedScheduler::new(Some(
|
let scheduler = IndexesLenTimeMinimizerScheduler::new(StdWeightedScheduler::with_schedule(
|
||||||
PowerSchedule::EXPLORE,
|
PowerSchedule::EXPLORE,
|
||||||
)));
|
));
|
||||||
|
|
||||||
// A fuzzer with feedbacks and a corpus scheduler
|
// A fuzzer with feedbacks and a corpus scheduler
|
||||||
let mut fuzzer = StdFuzzer::new(scheduler, feedback, objective);
|
let mut fuzzer = StdFuzzer::new(scheduler, feedback, objective);
|
||||||
|
@ -141,8 +141,9 @@ fn fuzz(corpus_dirs: &[PathBuf], objective_dir: PathBuf, broker_port: u16) -> Re
|
|||||||
let mut stages = tuple_list!(calibration, power);
|
let mut stages = tuple_list!(calibration, power);
|
||||||
|
|
||||||
// A minimization+queue policy to get testcasess from the corpus
|
// A minimization+queue policy to get testcasess from the corpus
|
||||||
let scheduler =
|
let scheduler = IndexesLenTimeMinimizerScheduler::new(StdWeightedScheduler::with_schedule(
|
||||||
IndexesLenTimeMinimizerScheduler::new(StdWeightedScheduler::new(Some(PowerSchedule::FAST)));
|
PowerSchedule::FAST,
|
||||||
|
));
|
||||||
|
|
||||||
// A fuzzer with feedbacks and a corpus scheduler
|
// A fuzzer with feedbacks and a corpus scheduler
|
||||||
let mut fuzzer = StdFuzzer::new(scheduler, feedback, objective);
|
let mut fuzzer = StdFuzzer::new(scheduler, feedback, objective);
|
||||||
|
@ -93,17 +93,37 @@ pub struct WeightedScheduler<F, I, S> {
|
|||||||
phantom: PhantomData<(F, I, S)>,
|
phantom: PhantomData<(F, I, S)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<F, I, S> Default for WeightedScheduler<F, I, S>
|
||||||
|
where
|
||||||
|
F: TestcaseScore<I, S>,
|
||||||
|
I: Input,
|
||||||
|
S: HasCorpus<I> + HasMetadata + HasRand,
|
||||||
|
{
|
||||||
|
fn default() -> Self {
|
||||||
|
Self::new()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl<F, I, S> WeightedScheduler<F, I, S>
|
impl<F, I, S> WeightedScheduler<F, I, S>
|
||||||
where
|
where
|
||||||
F: TestcaseScore<I, S>,
|
F: TestcaseScore<I, S>,
|
||||||
I: Input,
|
I: Input,
|
||||||
S: HasCorpus<I> + HasMetadata + HasRand,
|
S: HasCorpus<I> + HasMetadata + HasRand,
|
||||||
{
|
{
|
||||||
|
/// Create a new [`WeightedScheduler`] without any scheduling strategy
|
||||||
|
#[must_use]
|
||||||
|
pub fn new() -> Self {
|
||||||
|
Self {
|
||||||
|
strat: None,
|
||||||
|
phantom: PhantomData,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Create a new [`WeightedScheduler`]
|
/// Create a new [`WeightedScheduler`]
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub fn new(strat: Option<PowerSchedule>) -> Self {
|
pub fn with_schedule(strat: PowerSchedule) -> Self {
|
||||||
Self {
|
Self {
|
||||||
strat,
|
strat: Some(strat),
|
||||||
phantom: PhantomData,
|
phantom: PhantomData,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user