diff options
| author | Taras Madan <tarasmadan@google.com> | 2024-12-05 10:08:44 +0100 |
|---|---|---|
| committer | Taras Madan <tarasmadan@google.com> | 2024-12-12 08:44:14 +0000 |
| commit | 941924ebb4fc1ba15d5d3f12730ce32d7a6ace5f (patch) | |
| tree | b5d43ae7a180c34ceebda49e1eee276c2080fc3f /pkg/covermerger | |
| parent | 035bb8e062dc88e848028048b5805e4c39bcdc47 (diff) | |
pkg/covermerger: aggregate data per-manager
It enables us to see the manager unique coverage.
Diffstat (limited to 'pkg/covermerger')
| -rw-r--r-- | pkg/covermerger/bq_csv_reader.go | 6 | ||||
| -rw-r--r-- | pkg/covermerger/covermerger.go | 12 | ||||
| -rw-r--r-- | pkg/covermerger/covermerger_test.go | 2 |
3 files changed, 13 insertions, 7 deletions
diff --git a/pkg/covermerger/bq_csv_reader.go b/pkg/covermerger/bq_csv_reader.go index 187da1812..ef9a4e879 100644 --- a/pkg/covermerger/bq_csv_reader.go +++ b/pkg/covermerger/bq_csv_reader.go @@ -64,15 +64,15 @@ func (r *bqCSVReader) InitNsRecords(ctx context.Context, ns, filePath, commit st compression = "GZIP") AS ( SELECT - kernel_repo, kernel_branch, kernel_commit, file_path, sl, SUM(hit_count) as hit_count + kernel_repo, kernel_branch, kernel_commit, file_path, manager, sl, SUM(hit_count) as hit_count FROM syzkaller.syzbot_coverage.`+"`%s`"+` WHERE TIMESTAMP_TRUNC(timestamp, DAY) >= "%s" AND TIMESTAMP_TRUNC(timestamp, DAY) <= "%s" AND version = 1 AND starts_with(file_path, "%s") %s - GROUP BY file_path, kernel_commit, kernel_repo, kernel_branch, sl - ORDER BY file_path + GROUP BY file_path, manager, kernel_commit, kernel_repo, kernel_branch, sl + ORDER BY file_path, manager ); `, gsURI, ns, from.String(), to.String(), filePath, selectCommit)) job, err := q.Run(ctx) diff --git a/pkg/covermerger/covermerger.go b/pkg/covermerger/covermerger.go index 5af6162a3..8fc058ddd 100644 --- a/pkg/covermerger/covermerger.go +++ b/pkg/covermerger/covermerger.go @@ -24,6 +24,7 @@ const ( KeyFilePath = "file_path" KeyStartLine = "sl" KeyHitCount = "hit_count" + KeyManager = "manager" ) type FileRecord struct { @@ -31,6 +32,7 @@ type FileRecord struct { RepoCommit StartLine int HitCount int + Manager string } type RepoCommit struct { @@ -87,6 +89,8 @@ func makeRecord(fields, schema []string) (*FileRecord, error) { record.StartLine, err = readIntField(key, val) case KeyHitCount: record.HitCount, err = readIntField(key, val) + case KeyManager: + record.Manager = val } if err != nil { return nil, err @@ -124,7 +128,9 @@ func isSchema(fields, schema []string) bool { return true } -func MergeCSVData(config *Config, reader io.Reader) (map[string]*MergeResult, error) { +type FilesMergeResults map[string]*MergeResult + +func MergeCSVData(config *Config, reader io.Reader) (FilesMergeResults, error) { var schema []string csvReader := csv.NewReader(reader) if fields, err := csvReader.Read(); err != nil { @@ -172,10 +178,10 @@ type FileRecords struct { records []*FileRecord } -func mergeChanData(c *Config, recordChan <-chan *FileRecord) (map[string]*MergeResult, error) { +func mergeChanData(c *Config, recordChan <-chan *FileRecord) (FilesMergeResults, error) { g, ctx := errgroup.WithContext(context.Background()) frecordChan := groupFileRecords(recordChan, ctx) - stat := make(map[string]*MergeResult) + stat := make(FilesMergeResults) var mu sync.Mutex for i := 0; i < c.Jobs; i++ { g.Go(func() error { diff --git a/pkg/covermerger/covermerger_test.go b/pkg/covermerger/covermerger_test.go index 286f58737..a8b2a3ca8 100644 --- a/pkg/covermerger/covermerger_test.go +++ b/pkg/covermerger/covermerger_test.go @@ -125,7 +125,7 @@ samp_time,1,360,arch,b1,ci-mock,git://repo,master,commit2,not_changed.c,func1,4, strings.NewReader(test.bqTable), ) assert.Nil(t, err) - var expectedAggregation map[string]*MergeResult + var expectedAggregation FilesMergeResults assert.Nil(t, json.Unmarshal([]byte(test.simpleAggregation), &expectedAggregation)) assert.Equal(t, expectedAggregation, aggregation) }) |
