aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-09-14 08:47:56 +0200
committerDmitry Vyukov <dvyukov@google.com>2020-09-14 10:38:36 +0200
commit605d25b511f02ef747a46a21d94ddc3077d0b7a0 (patch)
treefda2ee665df0ba054b685d356f3938aaa578a21b
parentbf14d79b03223b0a9178c69b033355a73b5ed7b2 (diff)
syz-ci: fix seeds copying
1. Copy seeds from syzkaller checkout into syzkaller build dir. They need to be stable. 2. Make the code generic (current is linux-specific). 3. Don't copy seeds to workdir/seeds. We can load them directly from sys/OS/test. There are some unresolved comments for LinkDir on #2053 anyway. Follow up to #2053
-rw-r--r--pkg/osutil/osutil.go15
-rw-r--r--syz-ci/manager.go7
-rw-r--r--syz-ci/syz-ci.go3
-rw-r--r--syz-ci/updater.go1
4 files changed, 3 insertions, 23 deletions
diff --git a/pkg/osutil/osutil.go b/pkg/osutil/osutil.go
index 340c51de5..cd6a1cce7 100644
--- a/pkg/osutil/osutil.go
+++ b/pkg/osutil/osutil.go
@@ -235,21 +235,6 @@ func LinkFiles(srcDir, dstDir string, files map[string]bool) error {
return nil
}
-// LinkDir creates soft links from dstDir to srcDir.
-// All other files in dstDir are removed.
-func LinkDir(srcDir, dstDir string) error {
- if err := os.RemoveAll(dstDir); err != nil {
- return err
- }
- if err := MkdirAll(dstDir); err != nil {
- return err
- }
- if err := os.Symlink(srcDir, dstDir); err != nil {
- return err
- }
- return nil
-}
-
func MkdirAll(dir string) error {
return os.MkdirAll(dir, DefaultDirPerm)
}
diff --git a/syz-ci/manager.go b/syz-ci/manager.go
index f58857873..99a2ec44a 100644
--- a/syz-ci/manager.go
+++ b/syz-ci/manager.go
@@ -79,7 +79,7 @@ type Manager struct {
stop chan struct{}
}
-func createManager(cfg *Config, mgrcfg *ManagerConfig, stop chan struct{}, syzLinuxTestDir string) (*Manager, error) {
+func createManager(cfg *Config, mgrcfg *ManagerConfig, stop chan struct{}) (*Manager, error) {
dir := osutil.Abs(filepath.Join("managers", mgrcfg.Name))
if err := osutil.MkdirAll(dir); err != nil {
log.Fatal(err)
@@ -127,11 +127,6 @@ func createManager(cfg *Config, mgrcfg *ManagerConfig, stop chan struct{}, syzLi
stop: stop,
}
- // Copy test files into the current manager workdir.
- if err := osutil.LinkDir(syzLinuxTestDir, filepath.Join(dir, "workdir", "seeds")); err != nil {
- log.Fatal(err)
- }
-
os.RemoveAll(mgr.currentDir)
return mgr, nil
}
diff --git a/syz-ci/syz-ci.go b/syz-ci/syz-ci.go
index 7b4019375..faa51f4fc 100644
--- a/syz-ci/syz-ci.go
+++ b/syz-ci/syz-ci.go
@@ -170,10 +170,9 @@ func main() {
wg.Done()
}()
- syzLinuxTestDir := filepath.Join(updater.syzkallerDir, "sys", "linux", "test")
var managers []*Manager
for _, mgrcfg := range cfg.Managers {
- mgr, err := createManager(cfg, mgrcfg, stop, syzLinuxTestDir)
+ mgr, err := createManager(cfg, mgrcfg, stop)
if err != nil {
log.Logf(0, "failed to create manager %v: %v", mgrcfg.Name, err)
continue
diff --git a/syz-ci/updater.go b/syz-ci/updater.go
index 7ffe33efe..dd89f8d53 100644
--- a/syz-ci/updater.go
+++ b/syz-ci/updater.go
@@ -72,6 +72,7 @@ func NewSyzUpdater(cfg *Config) *SyzUpdater {
"tag": true, // contains syzkaller repo git hash
"bin/syz-ci": true, // these are just copied from syzkaller dir
"bin/syz-manager": true,
+ "sys/*/test/*": true,
}
targets := make(map[string]bool)
for _, mgr := range cfg.Managers {