From 6ca1eb5a578bb1421ad0f3dbde675eb34647e6d7 Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Fri, 5 Jul 2024 15:41:55 +0200 Subject: all: transition to instance.Pool Rely on instance.Pool to perform fuzzing and do bug reproductions. Extract the reproduction queue logic to separate testable class. --- tools/syz-repro/repro.go | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) (limited to 'tools') diff --git a/tools/syz-repro/repro.go b/tools/syz-repro/repro.go index 1c5d18cb9..4d0426936 100644 --- a/tools/syz-repro/repro.go +++ b/tools/syz-repro/repro.go @@ -48,24 +48,19 @@ func main() { if err != nil { log.Fatalf("%v", err) } - vmCount := vmPool.Count() - if *flagCount > 0 && *flagCount < vmCount { - vmCount = *flagCount - } - if vmCount > 4 { - vmCount = 4 - } - vmIndexes := make([]int, vmCount) - for i := range vmIndexes { - vmIndexes[i] = i - } reporter, err := report.NewReporter(cfg) if err != nil { log.Fatalf("%v", err) } osutil.HandleInterrupts(vm.Shutdown) - res, stats, err := repro.Run(data, cfg, flatrpc.AllFeatures, reporter, vmPool, vmIndexes) + count := vmPool.Count() + if *flagCount > 0 { + count = *flagCount + } + pool := vm.NewDispatcher(vmPool, nil) + pool.ReserveForRun(count) + res, stats, err := repro.Run(data, cfg, flatrpc.AllFeatures, reporter, pool) if err != nil { log.Logf(0, "reproduction failed: %v", err) } @@ -97,7 +92,7 @@ func main() { recordCRepro(res, *flagCRepro) } if *flagStrace != "" { - result := repro.RunStrace(res, cfg, reporter, vmPool, vmIndexes[0]) + result := repro.RunStrace(res, cfg, reporter, pool) recordStraceResult(result, *flagStrace) } } -- cgit mrf-deployment