aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/instance
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2019-11-06 17:59:11 +0100
committerDmitry Vyukov <dvyukov@google.com>2019-11-07 11:07:03 +0100
commit30cb7f98cd1aba45565123caf4cbd73772bb8b58 (patch)
treed43386f633ef60f4314d9d8ae2b02b0dea4af370 /pkg/instance
parentf15876118387bb9e4c079f29d06394b36e393180 (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')
-rw-r--r--pkg/instance/instance.go17
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 {