diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-05-14 13:47:44 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-05-14 13:47:44 +0200 |
| commit | d131f1b9fc0e6b3a2b326bd2fd4fa647a46b0c78 (patch) | |
| tree | 2cb74ebf25fb913ae09bd0e080e97db1cb2708e4 | |
| parent | 477728038c7fcef8ed4a6ef6381a8ca60ec99e14 (diff) | |
pkg/instance: relax syzkaller path check
Only check that syzkaller path is in GOPATH if we are going to build it.
syz-ci image testing does not have syzkaller path in GOPATH,
but it also does not build syzkaller.
| -rw-r--r-- | pkg/instance/instance.go | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/pkg/instance/instance.go b/pkg/instance/instance.go index 163821c37..eb9a06205 100644 --- a/pkg/instance/instance.go +++ b/pkg/instance/instance.go @@ -27,8 +27,7 @@ import ( ) type Env struct { - cfg *mgrconfig.Config - gopath string + cfg *mgrconfig.Config } func NewEnv(cfg *mgrconfig.Config) (*Env, error) { @@ -46,32 +45,32 @@ func NewEnv(cfg *mgrconfig.Config) (*Env, error) { if cfg.Syzkaller == "" { return nil, fmt.Errorf("syzkaller path is empty") } - srcIndex := strings.LastIndex(cfg.Syzkaller, "/src/") - if srcIndex == -1 { - return nil, fmt.Errorf("syzkaller path %q is not in GOPATH", cfg.Syzkaller) - } if err := osutil.MkdirAll(cfg.Workdir); err != nil { return nil, fmt.Errorf("failed to create tmp dir: %v", err) } env := &Env{ - cfg: cfg, - gopath: cfg.Syzkaller[:srcIndex], + cfg: cfg, } return env, nil } func (env *Env) BuildSyzkaller(repo, commit string) error { - if _, err := git.CheckoutCommit(env.cfg.Syzkaller, repo, commit); err != nil { + cfg := env.cfg + srcIndex := strings.LastIndex(cfg.Syzkaller, "/src/") + if srcIndex == -1 { + return fmt.Errorf("syzkaller path %q is not in GOPATH", cfg.Syzkaller) + } + if _, err := git.CheckoutCommit(cfg.Syzkaller, repo, commit); err != nil { return fmt.Errorf("failed to checkout syzkaller repo: %v", err) } cmd := osutil.Command("make", "target") - cmd.Dir = env.cfg.Syzkaller + cmd.Dir = cfg.Syzkaller cmd.Env = append([]string{}, os.Environ()...) cmd.Env = append(cmd.Env, - "GOPATH="+env.gopath, - "TARGETOS="+env.cfg.TargetOS, - "TARGETVMARCH="+env.cfg.TargetVMArch, - "TARGETARCH="+env.cfg.TargetArch, + "GOPATH="+cfg.Syzkaller[:srcIndex], + "TARGETOS="+cfg.TargetOS, + "TARGETVMARCH="+cfg.TargetVMArch, + "TARGETARCH="+cfg.TargetArch, ) if _, err := osutil.Run(time.Hour, cmd); err != nil { return fmt.Errorf("syzkaller build failed: %v", err) |
