From 74c18f4671cb92f65ed24cac0427b7d83337257e Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Tue, 16 Jul 2024 16:38:20 +0200 Subject: 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. --- pkg/fuzzer/job.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'pkg') 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 } } -- cgit mrf-deployment