From 2addfcda6297288cd48c399dfbef1f5752162011 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Wed, 29 May 2024 11:28:03 +0200 Subject: syz-manager: add corpus triage mode Add corpus triage mode and support it in testbed. This is useful to benchmark just the triage phase w/o any subsequent fuzzing. First, fuzzing is more random. Second, if triage duration is different in different versions, then they will do different amount of fuzzing in fixed testbed time. --- pkg/fuzzer/queue/queue.go | 11 ----------- pkg/fuzzer/queue/queue_test.go | 12 +----------- 2 files changed, 1 insertion(+), 22 deletions(-) (limited to 'pkg/fuzzer/queue') diff --git a/pkg/fuzzer/queue/queue.go b/pkg/fuzzer/queue/queue.go index a9411c1bd..cb70f5a9b 100644 --- a/pkg/fuzzer/queue/queue.go +++ b/pkg/fuzzer/queue/queue.go @@ -173,7 +173,6 @@ type Source interface { // PlainQueue is a straighforward thread-safe Request queue implementation. type PlainQueue struct { - stat *stats.Val mu sync.Mutex queue []*Request pos int @@ -183,10 +182,6 @@ func Plain() *PlainQueue { return &PlainQueue{} } -func PlainWithStat(val *stats.Val) *PlainQueue { - return &PlainQueue{stat: val} -} - func (pq *PlainQueue) Len() int { pq.mu.Lock() defer pq.mu.Unlock() @@ -194,9 +189,6 @@ func (pq *PlainQueue) Len() int { } func (pq *PlainQueue) Submit(req *Request) { - if pq.stat != nil { - pq.stat.Add(1) - } pq.mu.Lock() defer pq.mu.Unlock() @@ -235,9 +227,6 @@ func (pq *PlainQueue) nextLocked() *Request { ret := pq.queue[pq.pos] pq.queue[pq.pos] = nil pq.pos++ - if pq.stat != nil { - pq.stat.Add(-1) - } return ret } diff --git a/pkg/fuzzer/queue/queue_test.go b/pkg/fuzzer/queue/queue_test.go index a89ec0d3d..5b6a03ed0 100644 --- a/pkg/fuzzer/queue/queue_test.go +++ b/pkg/fuzzer/queue/queue_test.go @@ -6,29 +6,19 @@ package queue import ( "testing" - "github.com/google/syzkaller/pkg/stats" "github.com/stretchr/testify/assert" ) func TestPlainQueue(t *testing.T) { - val := stats.Create("v0", "desc0") - pq := PlainWithStat(val) + pq := Plain() req1, req2, req3 := &Request{}, &Request{}, &Request{} pq.Submit(req1) - assert.Equal(t, 1, val.Val()) pq.Submit(req2) - assert.Equal(t, 2, val.Val()) - assert.Equal(t, req1, pq.Next()) - assert.Equal(t, 1, val.Val()) - assert.Equal(t, req2, pq.Next()) - assert.Equal(t, 0, val.Val()) - pq.Submit(req3) - assert.Equal(t, 1, val.Val()) assert.Equal(t, req3, pq.Next()) assert.Nil(t, pq.Next()) } -- cgit mrf-deployment