From 2a075d57ab619ae5333c823cc260a722ab0c47fe Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 21 Jun 2018 14:38:08 +0200 Subject: pkg/report: allow to specify suppressions per OS Currently all (linux-specific) suppressions are hardcoded in mgrconfig. This is very wrong. Move them to pkg/report and allow to specify per OS. Add gvisor-specific suppressions. This required a bit of refactoring. Introduce mgrconfig.KernelObj finally. Make report.NewReporter and vm.Create accept mgrconfig directly instead of passing it as multiple scattered args. Remove tools/syz-parse and it always did the same as tools/syz-symbolize. Simplify global vars in syz-manager/cover.go. Create reporter eagerly in manager. Use sort.Slice more. Overall -90 lines removed. --- pkg/instance/instance.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'pkg/instance') diff --git a/pkg/instance/instance.go b/pkg/instance/instance.go index b5f44376c..e7ab3c9ec 100644 --- a/pkg/instance/instance.go +++ b/pkg/instance/instance.go @@ -82,7 +82,7 @@ func (env *Env) BuildKernel(compilerBin, userspaceDir, cmdlineFile, sysctlFile s if err := kernel.Build(cfg.KernelSrc, compilerBin, kernelConfig); err != nil { return osutil.PrependContext("kernel build failed", err) } - cfg.Vmlinux = filepath.Join(cfg.KernelSrc, "vmlinux") + cfg.KernelObj = cfg.KernelSrc cfg.Image = filepath.Join(cfg.Workdir, "syz-image") cfg.SSHKey = filepath.Join(cfg.Workdir, "syz-key") if err := kernel.CreateImage(cfg.TargetOS, cfg.TargetVMArch, cfg.Type, @@ -118,13 +118,11 @@ func (env *Env) Test(numVMs int, reproSyz, reproOpts, reproC []byte) ([]error, e if err := mgrconfig.Complete(env.cfg); err != nil { return nil, err } - reporter, err := report.NewReporter(env.cfg.TargetOS, env.cfg.Type, - env.cfg.KernelSrc, filepath.Dir(env.cfg.Vmlinux), nil, env.cfg.ParsedIgnores) + reporter, err := report.NewReporter(env.cfg) if err != nil { return nil, err } - vmEnv := mgrconfig.CreateVMEnv(env.cfg, false) - vmPool, err := vm.Create(env.cfg.Type, vmEnv) + vmPool, err := vm.Create(env.cfg, false) if err != nil { return nil, fmt.Errorf("failed to create VM pool: %v", err) } -- cgit mrf-deployment