From 30cb7f98cd1aba45565123caf4cbd73772bb8b58 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Wed, 6 Nov 2019 17:59:11 +0100 Subject: pkg/bisect: detect wrong bisections Detect bisection to merge commits and to commits that don't affect kernel binary (comments, other arches, whitespaces, etc). Such bisections are not reported in emails (but shown on web). Update #1271 --- pkg/instance/instance.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'pkg/instance/instance.go') diff --git a/pkg/instance/instance.go b/pkg/instance/instance.go index e5370d7ee..ccb5265d1 100644 --- a/pkg/instance/instance.go +++ b/pkg/instance/instance.go @@ -27,9 +27,9 @@ import ( "github.com/google/syzkaller/vm" ) -type BuilderTester interface { +type Env interface { BuildSyzkaller(string, string) error - BuildKernel(string, string, string, string, []byte) (string, error) + BuildKernel(string, string, string, string, []byte) (string, string, error) Test(numVMs int, reproSyz, reproOpts, reproC []byte) ([]error, error) } @@ -37,7 +37,7 @@ type env struct { cfg *mgrconfig.Config } -func NewEnv(cfg *mgrconfig.Config) (BuilderTester, error) { +func NewEnv(cfg *mgrconfig.Config) (Env, error) { if !vm.AllowsOvercommit(cfg.Type) { return nil, fmt.Errorf("test instances are not supported for %v VMs", cfg.Type) } @@ -89,7 +89,7 @@ func (env *env) BuildSyzkaller(repo, commit string) error { } func (env *env) BuildKernel(compilerBin, userspaceDir, cmdlineFile, sysctlFile string, kernelConfig []byte) ( - string, error) { + string, string, error) { imageDir := filepath.Join(env.cfg.Workdir, "image") params := &build.Params{ TargetOS: env.cfg.TargetOS, @@ -103,17 +103,18 @@ func (env *env) BuildKernel(compilerBin, userspaceDir, cmdlineFile, sysctlFile s SysctlFile: sysctlFile, Config: kernelConfig, } - if _, err := build.Image(params); err != nil { - return "", err + kernelSign, err := build.Image(params) + if err != nil { + return "", "", err } if err := SetConfigImage(env.cfg, imageDir, true); err != nil { - return "", err + return "", "", err } kernelConfigFile := filepath.Join(imageDir, "kernel.config") if !osutil.IsExist(kernelConfigFile) { kernelConfigFile = "" } - return kernelConfigFile, nil + return kernelConfigFile, kernelSign, nil } func SetConfigImage(cfg *mgrconfig.Config, imageDir string, reliable bool) error { -- cgit mrf-deployment