diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2024-03-19 16:52:03 +0100 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2024-03-19 16:25:51 +0000 |
| commit | a485f2390d41decb9fca41e15902295e293464d2 (patch) | |
| tree | 43759da35e96ca20837376b52b051a8fe48ea762 /pkg/fuzzer/job.go | |
| parent | a516ab122dfe9fe0d8c86a50bb46b1333f794205 (diff) | |
pkg/fuzzer: ignore new max signal during triage
We are already trying to filter out any flaky coverage at that stage.
Any new signal that we got by re-running the same program can be
automatically treated as flaky as well.
Diffstat (limited to 'pkg/fuzzer/job.go')
| -rw-r--r-- | pkg/fuzzer/job.go | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/pkg/fuzzer/job.go b/pkg/fuzzer/job.go index 63493c914..dfc0b807e 100644 --- a/pkg/fuzzer/job.go +++ b/pkg/fuzzer/job.go @@ -31,10 +31,10 @@ type job interface { type ProgTypes int const ( - ProgCandidate ProgTypes = 1 << iota - ProgMinimized - ProgSmashed - ProgNormal ProgTypes = 0 + progCandidate ProgTypes = 1 << iota + progMinimized + progSmashed + progInTriage ) type jobPriority struct { @@ -89,12 +89,12 @@ func mutateProgRequest(fuzzer *Fuzzer, rnd *rand.Rand) *Request { } func candidateRequest(input Candidate) *Request { - flags := ProgCandidate + flags := progCandidate if input.Minimized { - flags |= ProgMinimized + flags |= progMinimized } if input.Smashed { - flags |= ProgSmashed + flags |= progSmashed } return &Request{ Prog: input.Prog, @@ -118,7 +118,7 @@ type triageJob struct { } func triageJobPrio(flags ProgTypes) jobPriority { - if flags&ProgCandidate > 0 { + if flags&progCandidate > 0 { return newJobPriority(candidateTriagePrio) } return newJobPriority(triagePrio) @@ -136,14 +136,14 @@ func (job *triageJob) run(fuzzer *Fuzzer) { if stop || info.newStableSignal.Empty() { return } - if job.flags&ProgMinimized == 0 { + if job.flags&progMinimized == 0 { stop = job.minimize(fuzzer, info.newStableSignal) if stop { return } } fuzzer.Logf(2, "added new input for %q to the corpus:\n%s", logCallName, job.p.String()) - if job.flags&ProgSmashed == 0 { + if job.flags&progSmashed == 0 { fuzzer.startJob(&smashJob{ p: job.p.Clone(), call: job.call, @@ -183,6 +183,7 @@ func (job *triageJob) deflake(fuzzer *Fuzzer) (info deflakedCover, stop bool) { NeedCover: true, NeedRawCover: fuzzer.Config.FetchRawCover, stat: statTriage, + flags: progInTriage, }) if result.Stop { stop = true |
