aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKris Alder <kalder@google.com>2023-10-17 11:43:11 -0700
committerAleksandr Nogikh <nogikh@google.com>2023-10-19 17:06:09 +0000
commit4f9b680bf7d56a0023c4ec0e87207c77de7d276a (patch)
tree5527e86b6d3889c3f97c12552387c97dbe48bb41
parent42e1d5241be0f7564d28dbd5f704d67c77d4dd74 (diff)
syz-ci: add kernel_src_suffix field to config
This is used to add a suffix to the kernel_src config field. This is used in Android where kernel source is under .../kernel/aosp/.
-rw-r--r--syz-ci/jobs.go3
-rw-r--r--syz-ci/manager.go4
-rw-r--r--syz-ci/syz-ci.go3
3 files changed, 10 insertions, 0 deletions
diff --git a/syz-ci/jobs.go b/syz-ci/jobs.go
index b2d996cf4..d8092ad0e 100644
--- a/syz-ci/jobs.go
+++ b/syz-ci/jobs.go
@@ -366,6 +366,9 @@ func (jp *JobProcessor) process(job *Job) *dashapi.JobDoneReq {
*mgrcfg = *mgr.managercfg
mgrcfg.Workdir = filepath.Join(dir, "workdir")
mgrcfg.KernelSrc = filepath.Join(dir, "kernel")
+ if mgr.mgrcfg.KernelSrcSuffix != "" {
+ mgrcfg.KernelSrc = filepath.Join(dir, "kernel", mgr.mgrcfg.KernelSrcSuffix)
+ }
mgrcfg.Syzkaller = filepath.Join(dir, "gopath", "src", "github.com", "google", "syzkaller")
os.RemoveAll(mgrcfg.Workdir)
defer os.RemoveAll(mgrcfg.Workdir)
diff --git a/syz-ci/manager.go b/syz-ci/manager.go
index 306081ad6..b1746184a 100644
--- a/syz-ci/manager.go
+++ b/syz-ci/manager.go
@@ -143,6 +143,10 @@ func createManager(cfg *Config, mgrcfg *ManagerConfig, stop chan struct{},
debug: debug,
}
+ if mgrcfg.KernelSrcSuffix != "" {
+ mgr.kernelDir = path.Join(kernelDir, mgrcfg.KernelSrcSuffix)
+ }
+
os.RemoveAll(mgr.currentDir)
return mgr, nil
}
diff --git a/syz-ci/syz-ci.go b/syz-ci/syz-ci.go
index ad4a45523..7beb6ad88 100644
--- a/syz-ci/syz-ci.go
+++ b/syz-ci/syz-ci.go
@@ -178,6 +178,9 @@ type ManagerConfig struct {
Ccache string `json:"ccache"`
Userspace string `json:"userspace"`
KernelConfig string `json:"kernel_config"`
+ // KernelSrcSuffiz adds a suffix to the kernel_src manager config. This is needed for cases where
+ // the kernel source root as reported in the coverage UI is a subdirectory of the VCS root.
+ KernelSrcSuffix string `json:"kernel_src_suffix"`
// Build-type-specific parameters.
// Parameters for concrete types are in Config type in pkg/build/TYPE.go, e.g. pkg/build/android.go.
Build json.RawMessage `json:"build"`