aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/fuzzer/job.go
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2024-05-16 13:41:53 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-05-16 15:38:27 +0000
commit2f25d0f441166a6b106eba49d9a256eb825b644b (patch)
tree5153451c46ebd003991f2d4c06d8cb2f594dc4d9 /pkg/fuzzer/job.go
parent19e202fa8a3722f5c90ed5847edb5aeabdd5f38f (diff)
pkg/fuzzer: simplify prog execution options
For now, only ProgTypes is enough.
Diffstat (limited to 'pkg/fuzzer/job.go')
-rw-r--r--pkg/fuzzer/job.go11
1 files changed, 6 insertions, 5 deletions
diff --git a/pkg/fuzzer/job.go b/pkg/fuzzer/job.go
index 2ec415bdb..174acdc52 100644
--- a/pkg/fuzzer/job.go
+++ b/pkg/fuzzer/job.go
@@ -26,6 +26,7 @@ const (
progCandidate ProgTypes = 1 << iota
progMinimized
progSmashed
+ progInTriage
)
func genProgRequest(fuzzer *Fuzzer, rnd *rand.Rand) *queue.Request {
@@ -88,9 +89,9 @@ type triageJob struct {
queue queue.Executor
}
-func (job *triageJob) execute(req *queue.Request, opts ...execOpt) *queue.Result {
+func (job *triageJob) execute(req *queue.Request, flags ProgTypes) *queue.Result {
req.Important = true // All triage executions are important.
- return job.fuzzer.execute(job.queue, req, opts...)
+ return job.fuzzer.executeWithFlags(job.queue, req, flags)
}
func (job *triageJob) run(fuzzer *Fuzzer) {
@@ -138,7 +139,7 @@ type deflakedCover struct {
rawCover []uint32
}
-func (job *triageJob) deflake(exec func(*queue.Request, ...execOpt) *queue.Result, stat *stats.Val,
+func (job *triageJob) deflake(exec func(*queue.Request, ProgTypes) *queue.Result, stat *stats.Val,
rawCover bool) (info deflakedCover, stop bool) {
// As demonstrated in #4639, programs reproduce with a very high, but not 100% probability.
// The triage algorithm must tolerate this, so let's pick the signal that is common
@@ -165,7 +166,7 @@ func (job *triageJob) deflake(exec func(*queue.Request, ...execOpt) *queue.Resul
ExecOpts: setFlags(ipc.FlagCollectCover | ipc.FlagCollectSignal),
ReturnAllSignal: true,
Stat: stat,
- }, &dontTriage{})
+ }, progInTriage)
if result.Stop() {
stop = true
return
@@ -205,7 +206,7 @@ func (job *triageJob) minimize(newSignal signal.Signal) (stop bool) {
SignalFilter: newSignal,
SignalFilterCall: call1,
Stat: job.fuzzer.statExecMinimize,
- })
+ }, 0)
if result.Stop() {
stop = true
return false