diff options
| author | Taras Madan <tarasmadan@google.com> | 2024-07-17 10:05:09 +0200 |
|---|---|---|
| committer | Taras Madan <tarasmadan@google.com> | 2024-07-17 09:48:42 +0000 |
| commit | e94834c03d8bd189227351a69bdd395f45ddbd5a (patch) | |
| tree | 96bafa114597d0af9aec9cd643aef9ad55f5aa43 /pkg/cover | |
| parent | 215bec2d0092e093aeaa7baeea4b670277102694 (diff) | |
syz-cover: add subsystems heatmap
Diffstat (limited to 'pkg/cover')
| -rw-r--r-- | pkg/cover/heatmap.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/pkg/cover/heatmap.go b/pkg/cover/heatmap.go index 7745a1d49..2582de7d7 100644 --- a/pkg/cover/heatmap.go +++ b/pkg/cover/heatmap.go @@ -15,6 +15,8 @@ import ( "cloud.google.com/go/civil" "cloud.google.com/go/spanner" "github.com/google/syzkaller/pkg/spanner/coveragedb" + "github.com/google/syzkaller/pkg/subsystem" + _ "github.com/google/syzkaller/pkg/subsystem/lists" "golang.org/x/exp/maps" "google.golang.org/api/iterator" ) @@ -174,6 +176,28 @@ func DoHeatMap(w io.Writer, projectID, ns string, dateFrom, dateTo civil.Date) e return heatmapTemplate.Execute(w, templateData) } +func DoSubsystemsHeatMap(w io.Writer, projectID, ns string, dateFrom, dateTo civil.Date) error { + covAndDates, err := filesCoverageAndDates(context.Background(), projectID, ns, dateFrom, dateTo) + if err != nil { + panic(err) + } + ssMatcher := subsystem.MakePathMatcher(subsystem.GetList("linux")) + var ssCovAndDates []*fileCoverageAndDate + for _, cad := range covAndDates { + for _, ss := range ssMatcher.Match(cad.Filepath) { + newRecord := fileCoverageAndDate{ + Filepath: ss.Name + "/" + cad.Filepath, + Instrumented: cad.Instrumented, + Covered: cad.Covered, + Dateto: cad.Dateto, + } + ssCovAndDates = append(ssCovAndDates, &newRecord) + } + } + templateData := filesCoverageToTemplateData(ssCovAndDates) + return heatmapTemplate.Execute(w, templateData) +} + func approximateInstrumented(points int64) string { dim := "_" if points > 10000 { |
