aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/instance
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-06-21 14:38:08 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-06-22 16:40:45 +0200
commit2a075d57ab619ae5333c823cc260a722ab0c47fe (patch)
tree0877143833caae9b98744a237b0e3a3694348a6b /pkg/instance
parentc31f96a8c65c0757078ea77218905c73fc1068d4 (diff)
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.
Diffstat (limited to 'pkg/instance')
-rw-r--r--pkg/instance/instance.go8
1 files changed, 3 insertions, 5 deletions
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)
}