aboutsummaryrefslogtreecommitdiffstats
path: root/tools/syz-cover
diff options
context:
space:
mode:
authorJoey Jiao <joeyjiaojg@qq.com>2023-06-26 14:01:39 +0800
committerAleksandr Nogikh <nogikh@google.com>2023-07-04 16:43:58 +0000
commit0a696517375e14db148edec48d23e1702cbe0513 (patch)
treee3e2a74fe97f9566ecd60cc259c72a04d5501ba1 /tools/syz-cover
parent17a98177e6c7e217936f052ee54b58543a4ca9e8 (diff)
tools/syz-cover: read params from config file
Change-Id: If0b88b3d1b4bd6a90609e9429200da76d09244a1
Diffstat (limited to 'tools/syz-cover')
-rw-r--r--tools/syz-cover/syz-cover.go34
1 files changed, 8 insertions, 26 deletions
diff --git a/tools/syz-cover/syz-cover.go b/tools/syz-cover/syz-cover.go
index a28d8db5d..014a9392b 100644
--- a/tools/syz-cover/syz-cover.go
+++ b/tools/syz-cover/syz-cover.go
@@ -13,7 +13,7 @@
//
// Usage:
//
-// syz-cover [-os=OS -arch=ARCH -kernel_src=. -kernel_obj=.] rawcover.file*
+// syz-cover -config config_file rawcover.file*
package main
import (
@@ -24,25 +24,19 @@ import (
"fmt"
"os"
"os/exec"
- "runtime"
"strconv"
"strings"
"github.com/google/syzkaller/pkg/cover"
"github.com/google/syzkaller/pkg/host"
+ "github.com/google/syzkaller/pkg/mgrconfig"
"github.com/google/syzkaller/pkg/osutil"
"github.com/google/syzkaller/pkg/tool"
- "github.com/google/syzkaller/sys/targets"
)
func main() {
var (
- flagOS = flag.String("os", runtime.GOOS, "target os")
- flagArch = flag.String("arch", runtime.GOARCH, "target arch")
- flagVM = flag.String("vm", "", "VM type")
- flagKernelSrc = flag.String("kernel_src", "", "path to kernel sources")
- flagKernelBuildSrc = flag.String("kernel_build_src", "", "path to kernel image's build dir (optional)")
- flagKernelObj = flag.String("kernel_obj", "", "path to kernel build/obj dir")
+ flagConfig = flag.String("config", "", "configuration file")
flagModules = flag.String("modules", "", "modules info obtained from /modules (optional)")
flagExportCSV = flag.String("csv", "", "export coverage data in csv format (optional)")
flagExportLineJSON = flag.String("json", "", "export coverage data with source line info in json format (optional)")
@@ -55,21 +49,9 @@ func main() {
flag.PrintDefaults()
os.Exit(1)
}
- if *flagKernelSrc == "" {
- *flagKernelSrc = "."
- }
- *flagKernelSrc = osutil.Abs(*flagKernelSrc)
- if *flagKernelObj == "" {
- *flagKernelObj = *flagKernelSrc
- }
- *flagKernelObj = osutil.Abs(*flagKernelObj)
- if *flagKernelBuildSrc == "" {
- *flagKernelBuildSrc = *flagKernelSrc
- }
- *flagKernelBuildSrc = osutil.Abs(*flagKernelBuildSrc)
- target := targets.Get(*flagOS, *flagArch)
- if target == nil {
- tool.Failf("unknown target %v/%v", *flagOS, *flagArch)
+ cfg, err := mgrconfig.LoadFile(*flagConfig)
+ if err != nil {
+ tool.Fail(err)
}
pcs, err := readPCs(flag.Args())
if err != nil {
@@ -83,8 +65,8 @@ func main() {
}
modules = m
}
- rg, err := cover.MakeReportGenerator(target, *flagVM, *flagKernelObj,
- *flagKernelSrc, *flagKernelBuildSrc, nil, nil, modules, false)
+ rg, err := cover.MakeReportGenerator(cfg.SysTarget, cfg.Type, cfg.KernelObj,
+ cfg.KernelSrc, cfg.KernelBuildSrc, nil, nil, modules, false)
if err != nil {
tool.Fail(err)
}