aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/instance/instance.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/instance/instance.go')
-rw-r--r--pkg/instance/instance.go29
1 files changed, 19 insertions, 10 deletions
diff --git a/pkg/instance/instance.go b/pkg/instance/instance.go
index b697ab926..b393991d0 100644
--- a/pkg/instance/instance.go
+++ b/pkg/instance/instance.go
@@ -29,7 +29,7 @@ import (
type Env interface {
BuildSyzkaller(string, string) (string, error)
- BuildKernel(string, string, string, string, string, string, []byte) (string, build.ImageDetails, error)
+ BuildKernel(*BuildKernelConfig) (string, build.ImageDetails, error)
Test(numVMs int, reproSyz, reproOpts, reproC []byte) ([]EnvTestResult, error)
}
@@ -38,6 +38,16 @@ type env struct {
optionalFlags bool
}
+type BuildKernelConfig struct {
+ CompilerBin string
+ LinkerBin string
+ CcacheBin string
+ UserspaceDir string
+ CmdlineFile string
+ SysctlFile string
+ KernelConfig []byte
+}
+
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)
@@ -114,8 +124,7 @@ func (env *env) BuildSyzkaller(repoURL, commit string) (string, error) {
return buildLog, nil
}
-func (env *env) BuildKernel(compilerBin, linkerBin, ccacheBin, userspaceDir, cmdlineFile, sysctlFile string,
- kernelConfig []byte) (
+func (env *env) BuildKernel(buildCfg *BuildKernelConfig) (
string, build.ImageDetails, error) {
imageDir := filepath.Join(env.cfg.Workdir, "image")
params := build.Params{
@@ -124,13 +133,13 @@ func (env *env) BuildKernel(compilerBin, linkerBin, ccacheBin, userspaceDir, cmd
VMType: env.cfg.Type,
KernelDir: env.cfg.KernelSrc,
OutputDir: imageDir,
- Compiler: compilerBin,
- Linker: linkerBin,
- Ccache: ccacheBin,
- UserspaceDir: userspaceDir,
- CmdlineFile: cmdlineFile,
- SysctlFile: sysctlFile,
- Config: kernelConfig,
+ Compiler: buildCfg.CompilerBin,
+ Linker: buildCfg.LinkerBin,
+ Ccache: buildCfg.CcacheBin,
+ UserspaceDir: buildCfg.UserspaceDir,
+ CmdlineFile: buildCfg.CmdlineFile,
+ SysctlFile: buildCfg.SysctlFile,
+ Config: buildCfg.KernelConfig,
}
details, err := build.Image(params)
if err != nil {