aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/fuzzer/job.go
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2024-03-19 16:52:03 +0100
committerAleksandr Nogikh <nogikh@google.com>2024-03-19 16:25:51 +0000
commita485f2390d41decb9fca41e15902295e293464d2 (patch)
tree43759da35e96ca20837376b52b051a8fe48ea762 /pkg/fuzzer/job.go
parenta516ab122dfe9fe0d8c86a50bb46b1333f794205 (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.go21
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