aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2024-07-16 16:38:20 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-07-16 15:06:13 +0000
commit74c18f4671cb92f65ed24cac0427b7d83337257e (patch)
tree5d21036222d27dde57c2f60f08fcfad258802757 /pkg
parent15b2c47cbd15441ae86ec825cca498fc0f256757 (diff)
pkg/fuzzer: use the signal union in minimize iterations
During deflake(), we look at the unions of the signal from multiple iterations. Let's do the same in minimize(), it would be more consistent.
Diffstat (limited to 'pkg')
-rw-r--r--pkg/fuzzer/job.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/pkg/fuzzer/job.go b/pkg/fuzzer/job.go
index 37aaef7d4..84d3af930 100644
--- a/pkg/fuzzer/job.go
+++ b/pkg/fuzzer/job.go
@@ -252,6 +252,7 @@ func (job *triageJob) minimize(call int, info *triageCall) (*prog.Prog, int) {
if stop {
return false
}
+ var mergedSignal signal.Signal
for i := 0; i < minimizeAttempts; i++ {
result := job.execute(&queue.Request{
Prog: p1,
@@ -268,7 +269,12 @@ func (job *triageJob) minimize(call int, info *triageCall) (*prog.Prog, int) {
continue
}
thisSignal := getSignalAndCover(p1, result.Info, call1)
- if info.newStableSignal.Intersection(thisSignal).Len() == info.newStableSignal.Len() {
+ if mergedSignal.Len() == 0 {
+ mergedSignal = thisSignal
+ } else {
+ mergedSignal.Merge(thisSignal)
+ }
+ if info.newStableSignal.Intersection(mergedSignal).Len() == info.newStableSignal.Len() {
return true
}
}