Change StdWeightedScheduler API (#712)

* change

* fmt
This commit is contained in:
Dongjia Zhang 2022-07-27 14:17:45 +02:00 committed by GitHub
parent 1682ce6862
commit a5248d0250
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 6 deletions

View File

@ -318,9 +318,9 @@ fn fuzz(
let power = StdPowerMutationalStage::new(mutator, &edges_observer);
// 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,
)));
));
// A fuzzer with feedbacks and a corpus scheduler
let mut fuzzer = StdFuzzer::new(scheduler, feedback, objective);

View File

@ -141,8 +141,9 @@ fn fuzz(corpus_dirs: &[PathBuf], objective_dir: PathBuf, broker_port: u16) -> Re
let mut stages = tuple_list!(calibration, power);
// A minimization+queue policy to get testcasess from the corpus
let scheduler =
IndexesLenTimeMinimizerScheduler::new(StdWeightedScheduler::new(Some(PowerSchedule::FAST)));
let scheduler = IndexesLenTimeMinimizerScheduler::new(StdWeightedScheduler::with_schedule(
PowerSchedule::FAST,
));
// A fuzzer with feedbacks and a corpus scheduler
let mut fuzzer = StdFuzzer::new(scheduler, feedback, objective);

View File

@ -93,17 +93,37 @@ pub struct WeightedScheduler<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>
where
F: TestcaseScore<I, S>,
I: Input,
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`]
#[must_use]
pub fn new(strat: Option<PowerSchedule>) -> Self {
pub fn with_schedule(strat: PowerSchedule) -> Self {
Self {
strat,
strat: Some(strat),
phantom: PhantomData,
}
}