diff options
| author | Taras Madan <tarasmadan@google.com> | 2024-08-13 12:57:24 +0200 |
|---|---|---|
| committer | Taras Madan <tarasmadan@google.com> | 2024-08-14 11:49:26 +0000 |
| commit | 64d0e756ef01c499a6bd2ca2e8b2eb073330c010 (patch) | |
| tree | 474a2075a05e77230f264faac49076589dfbcdde /tools/syz-cover | |
| parent | f4c454d3823b7a6b645f3fb1585b4af4411b11a3 (diff) | |
tools/syz-cover: add toolFileCover
Diffstat (limited to 'tools/syz-cover')
| -rw-r--r-- | tools/syz-cover/syz-cover.go | 49 |
1 files changed, 42 insertions, 7 deletions
diff --git a/tools/syz-cover/syz-cover.go b/tools/syz-cover/syz-cover.go index 9446dffd8..6832596e5 100644 --- a/tools/syz-cover/syz-cover.go +++ b/tools/syz-cover/syz-cover.go @@ -23,8 +23,10 @@ package main import ( "bufio" "bytes" + "context" "encoding/json" "flag" + "fmt" "os" "os/exec" "strconv" @@ -54,18 +56,29 @@ var ( flagDateTo = flag.String("to", civil.DateOf(time.Now()).String(), "heatmap date to(optional)") flagProjectID = flag.String("project", "syzkaller", "spanner db project name") + flagForFile = flag.String("for-file", "", "[optional]show file coverage") + flagRepo = flag.String("repo", "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git", + "[optional] repo to be used by -for-file") + flagCommit = flag.String("commit", "", "commit to be used by -for-file") + flagNamespace = flag.String("namespace", "upstream", "[optional] used by -for-file") ) +func parseDates() (civil.Date, civil.Date) { + dateFrom, errDateFrom := civil.ParseDate(*flagDateFrom) + if errDateFrom != nil { + tool.Failf("failed to parse date from: %v", errDateFrom.Error()) + } + dateTo, errDateTo := civil.ParseDate(*flagDateTo) + if errDateTo != nil { + tool.Failf("failed to parse date to: %v", errDateTo.Error()) + } + return dateFrom, dateTo +} + func toolBuildNsHeatmap() { buf := new(bytes.Buffer) - var dateFrom, dateTo civil.Date + dateFrom, dateTo := parseDates() var err error - if dateFrom, err = civil.ParseDate(*flagDateFrom); err != nil { - tool.Failf("failed to parse date from: %v", err.Error()) - } - if dateTo, err = civil.ParseDate(*flagDateTo); err != nil { - tool.Failf("failed to parse date to: %v", err.Error()) - } switch *flagNsHeatmapGroupBy { case "dir": if err = cover.DoDirHeatMap(buf, *flagProjectID, *flagNsHeatmap, dateFrom, dateTo); err != nil { @@ -83,8 +96,30 @@ func toolBuildNsHeatmap() { } } +func toolFileCover() { + dateFrom, dateTo := parseDates() + details, err := cover.RendFileCoverage( + context.Background(), + *flagNamespace, + *flagRepo, + *flagCommit, + *flagForFile, + dateFrom, + dateTo, + cover.RendTextLine, + ) + if err != nil { + tool.Fail(err) + } + fmt.Println(details) +} + func main() { defer tool.Init()() + if *flagForFile != "" { + toolFileCover() + return + } if *flagNsHeatmap != "" { toolBuildNsHeatmap() return |
