diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2020-09-14 08:47:56 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-09-14 10:38:36 +0200 |
| commit | 605d25b511f02ef747a46a21d94ddc3077d0b7a0 (patch) | |
| tree | fda2ee665df0ba054b685d356f3938aaa578a21b | |
| parent | bf14d79b03223b0a9178c69b033355a73b5ed7b2 (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.go | 15 | ||||
| -rw-r--r-- | syz-ci/manager.go | 7 | ||||
| -rw-r--r-- | syz-ci/syz-ci.go | 3 | ||||
| -rw-r--r-- | syz-ci/updater.go | 1 |
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 { |
