diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2019-11-06 17:59:11 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2019-11-07 11:07:03 +0100 |
| commit | 30cb7f98cd1aba45565123caf4cbd73772bb8b58 (patch) | |
| tree | d43386f633ef60f4314d9d8ae2b02b0dea4af370 /pkg/instance/instance.go | |
| parent | f15876118387bb9e4c079f29d06394b36e393180 (diff) | |
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
Diffstat (limited to 'pkg/instance/instance.go')
| -rw-r--r-- | pkg/instance/instance.go | 17 |
1 files changed, 9 insertions, 8 deletions
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 { |
