diff options
| author | Taras Madan <tarasmadan@google.com> | 2024-08-29 13:05:00 +0200 |
|---|---|---|
| committer | Taras Madan <tarasmadan@google.com> | 2024-08-29 12:10:57 +0000 |
| commit | d40170b23b86bd4799ea08920a643f15e63f98ec (patch) | |
| tree | a55653bc42dc4cde6537f49c340a7f1b48d93731 /pkg | |
| parent | 9bd464fceeaf3432dae1d1598586454ad21fb42a (diff) | |
pkg/covermerger: we don't need branch info
The first versions of this code used branches for git checkout.
Later the git repos were merged and branch info usage was reduced.
The latest changes switched the code from branch checkout to commit checkout.
There is no need in branch info anymore and I don't see any use-cases for it.
Diffstat (limited to 'pkg')
| -rw-r--r-- | pkg/cover/file.go | 2 | ||||
| -rw-r--r-- | pkg/covermerger/covermerger.go | 13 | ||||
| -rw-r--r-- | pkg/covermerger/covermerger_test.go | 12 | ||||
| -rw-r--r-- | pkg/covermerger/file_line_merger.go | 20 | ||||
| -rw-r--r-- | pkg/covermerger/provider_monorepo.go | 22 | ||||
| -rw-r--r-- | pkg/covermerger/provider_web.go | 8 |
6 files changed, 32 insertions, 45 deletions
diff --git a/pkg/cover/file.go b/pkg/cover/file.go index 524963aaf..c692dd70a 100644 --- a/pkg/cover/file.go +++ b/pkg/cover/file.go @@ -39,7 +39,7 @@ func RendFileCoverage(c context.Context, ns, repo, forCommit, sourceCommit, file } config := &covermerger.Config{ Jobs: 1, - Base: covermerger.RepoBranchCommit{ + Base: covermerger.RepoCommit{ Repo: repo, Commit: forCommit, }, diff --git a/pkg/covermerger/covermerger.go b/pkg/covermerger/covermerger.go index 35ac58b92..7f5eeeadd 100644 --- a/pkg/covermerger/covermerger.go +++ b/pkg/covermerger/covermerger.go @@ -28,14 +28,13 @@ const ( type FileRecord struct { FilePath string - RepoBranchCommit + RepoCommit StartLine int HitCount int } -type RepoBranchCommit struct { +type RepoCommit struct { Repo string - Branch string Commit string } @@ -52,9 +51,9 @@ type FileCoverageMerger interface { func batchFileData(c *Config, targetFilePath string, records []*FileRecord) (*MergeResult, error) { log.Logf(1, "processing %d records for %s", len(records), targetFilePath) - repoBranchCommitsMap := make(map[RepoBranchCommit]bool) + repoBranchCommitsMap := make(map[RepoCommit]bool) for _, record := range records { - repoBranchCommitsMap[record.RepoBranchCommit] = true + repoBranchCommitsMap[record.RepoCommit] = true } repoBranchCommitsMap[c.Base] = true repoBranchCommits := maps.Keys(repoBranchCommitsMap) @@ -82,8 +81,6 @@ func makeRecord(fields, schema []string) (*FileRecord, error) { record.FilePath = val case KeyKernelRepo: record.Repo = val - case KeyKernelBranch: - record.Branch = val case KeyKernelCommit: record.Commit = val case KeyStartLine: @@ -110,7 +107,7 @@ type Config struct { Jobs int Workdir string skipRepoClone bool - Base RepoBranchCommit + Base RepoCommit FileVersProvider FileVersProvider StoreDetails bool } diff --git a/pkg/covermerger/covermerger_test.go b/pkg/covermerger/covermerger_test.go index becb3e9c9..f01599bf6 100644 --- a/pkg/covermerger/covermerger_test.go +++ b/pkg/covermerger/covermerger_test.go @@ -22,7 +22,6 @@ func TestAggregateStreamData(t *testing.T) { bqTable string simpleAggregation string baseRepo string - baseBranch string baseCommit string } tests := []Test{ @@ -32,7 +31,6 @@ func TestAggregateStreamData(t *testing.T) { bqTable: readFileOrFail(t, testsPath+"/aesni-intel_glue/bqTable.txt"), simpleAggregation: readFileOrFail(t, testsPath+"/aesni-intel_glue/merge_result.txt"), baseRepo: "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git", - baseBranch: "master", baseCommit: "fe46a7dd189e25604716c03576d05ac8a5209743", }, { @@ -48,7 +46,6 @@ samp_time,1,360,arch,b1,ci-mock,git://repo,master,commit1,delete_code.c,func1,2, } }`, baseRepo: "git://repo", - baseBranch: "master", baseCommit: "commit2", }, { @@ -63,7 +60,6 @@ samp_time,1,360,arch,b1,ci-mock,git://repo,master,commit1,delete_file.c,func1,2, } }`, baseRepo: "git://repo", - baseBranch: "master", baseCommit: "commit2", }, { @@ -80,7 +76,6 @@ samp_time,1,360,arch,b1,ci-mock,git://repo,master,commit1,change_line.c,func1,3, } }`, baseRepo: "git://repo", - baseBranch: "master", baseCommit: "commit2", }, { @@ -96,7 +91,6 @@ samp_time,1,360,arch,b1,ci-mock,git://repo,master,commit1,add_line.c,func1,2,0,2 } }`, baseRepo: "git://repo", - baseBranch: "master", baseCommit: "commit2", }, { @@ -113,7 +107,6 @@ samp_time,1,360,arch,b1,ci-mock,git://repo,master,commit2,not_changed.c,func1,4, } }`, baseRepo: "git://repo", - baseBranch: "master", baseCommit: "commit2", }, } @@ -124,9 +117,8 @@ samp_time,1,360,arch,b1,ci-mock,git://repo,master,commit2,not_changed.c,func1,4, Jobs: 2, Workdir: test.workdir, skipRepoClone: true, - Base: RepoBranchCommit{ + Base: RepoCommit{ Repo: test.baseRepo, - Branch: test.baseBranch, Commit: test.baseCommit, }, FileVersProvider: &fileVersProviderMock{}, @@ -143,7 +135,7 @@ samp_time,1,360,arch,b1,ci-mock,git://repo,master,commit2,not_changed.c,func1,4, type fileVersProviderMock struct{} -func (m *fileVersProviderMock) GetFileVersions(c *Config, targetFilePath string, rbcs []RepoBranchCommit, +func (m *fileVersProviderMock) GetFileVersions(c *Config, targetFilePath string, rbcs []RepoCommit, ) (fileVersions, error) { res := make(fileVersions) for _, rbc := range rbcs { diff --git a/pkg/covermerger/file_line_merger.go b/pkg/covermerger/file_line_merger.go index c9e990b39..95d226adf 100644 --- a/pkg/covermerger/file_line_merger.go +++ b/pkg/covermerger/file_line_merger.go @@ -6,7 +6,7 @@ package covermerger import "github.com/google/syzkaller/pkg/log" func makeFileLineCoverMerger( - fvs fileVersions, base RepoBranchCommit, storeDetails bool) FileCoverageMerger { + fvs fileVersions, base RepoCommit, storeDetails bool) FileCoverageMerger { baseFile := "" baseFileExists := false for rbc, fv := range fvs { @@ -26,8 +26,8 @@ func makeFileLineCoverMerger( }, rbcToFile: fvs, baseFile: baseFile, - matchers: make(map[RepoBranchCommit]*LineToLineMatcher), - lostFrames: map[RepoBranchCommit]int64{}, + matchers: make(map[RepoCommit]*LineToLineMatcher), + lostFrames: map[RepoCommit]int64{}, } if storeDetails { a.MergeResult.LineDetails = make(map[int][]*FileRecord) @@ -42,18 +42,18 @@ type FileLineCoverMerger struct { *MergeResult rbcToFile fileVersions baseFile string - matchers map[RepoBranchCommit]*LineToLineMatcher - lostFrames map[RepoBranchCommit]int64 + matchers map[RepoCommit]*LineToLineMatcher + lostFrames map[RepoCommit]int64 } func (a *FileLineCoverMerger) Add(record *FileRecord) { - if a.matchers[record.RepoBranchCommit] == nil { + if a.matchers[record.RepoCommit] == nil { if record.HitCount > 0 { - a.lostFrames[record.RepoBranchCommit]++ + a.lostFrames[record.RepoCommit]++ } return } - if targetLine := a.matchers[record.RepoBranchCommit].SameLinePos(record.StartLine); targetLine != -1 { + if targetLine := a.matchers[record.RepoCommit].SameLinePos(record.StartLine); targetLine != -1 { a.HitCounts[targetLine] += record.HitCount if a.LineDetails != nil { a.LineDetails[targetLine] = append(a.LineDetails[targetLine], record) @@ -63,8 +63,8 @@ func (a *FileLineCoverMerger) Add(record *FileRecord) { func (a *FileLineCoverMerger) Result() *MergeResult { for rbc, lostFrames := range a.lostFrames { - log.Logf(1, "\t[warn] lost %d frames from rbc(%s, %s, %s)", - lostFrames, rbc.Repo, rbc.Branch, rbc.Commit) + log.Logf(1, "\t[warn] lost %d frames from repoCommit(%s, %s)", + lostFrames, rbc.Repo, rbc.Commit) } return a.MergeResult } diff --git a/pkg/covermerger/provider_monorepo.go b/pkg/covermerger/provider_monorepo.go index 9f1740e51..32da2f8a5 100644 --- a/pkg/covermerger/provider_monorepo.go +++ b/pkg/covermerger/provider_monorepo.go @@ -13,19 +13,19 @@ import ( ) type FileVersProvider interface { - GetFileVersions(c *Config, targetFilePath string, rbcs []RepoBranchCommit, + GetFileVersions(c *Config, targetFilePath string, rbcs []RepoCommit, ) (fileVersions, error) } type monoRepo struct { - repoCommits map[RepoBranchCommit]struct{} + repoCommits map[RepoCommit]struct{} mu sync.RWMutex repo vcs.Repo } -type fileVersions map[RepoBranchCommit]string +type fileVersions map[RepoCommit]string -func (mr *monoRepo) GetFileVersions(c *Config, targetFilePath string, rbcs []RepoBranchCommit, +func (mr *monoRepo) GetFileVersions(c *Config, targetFilePath string, rbcs []RepoCommit, ) (fileVersions, error) { mr.mu.RLock() if !mr.allRepoCommitsPresent(rbcs) { @@ -48,7 +48,7 @@ func (mr *monoRepo) GetFileVersions(c *Config, targetFilePath string, rbcs []Rep return res, nil } -func (mr *monoRepo) allRepoCommitsPresent(rbcs []RepoBranchCommit) bool { +func (mr *monoRepo) allRepoCommitsPresent(rbcs []RepoCommit) bool { for _, rbc := range rbcs { if !mr.repoCommitPresent(rbc) { return false @@ -57,15 +57,13 @@ func (mr *monoRepo) allRepoCommitsPresent(rbcs []RepoBranchCommit) bool { return true } -func (mr *monoRepo) repoCommitPresent(rbc RepoBranchCommit) bool { - rbc.Branch = "" +func (mr *monoRepo) repoCommitPresent(rbc RepoCommit) bool { _, ok := mr.repoCommits[rbc] return ok } -func (mr *monoRepo) addRepoCommit(rbc RepoBranchCommit) { - log.Logf(0, "cloning repo: %s, branch: %s, commit %s", rbc.Repo, rbc.Branch, rbc.Commit) - rbc.Branch = "" +func (mr *monoRepo) addRepoCommit(rbc RepoCommit) { + log.Logf(0, "cloning repo: %s, commit %s", rbc.Repo, rbc.Commit) mr.repoCommits[rbc] = struct{}{} if rbc.Repo == "" || rbc.Commit == "" { panic("repo and commit are needed") @@ -79,7 +77,7 @@ func (mr *monoRepo) addRepoCommit(rbc RepoBranchCommit) { func MakeMonoRepo(workdir string) FileVersProvider { rbcPath := workdir + "/repos/linux_kernels" mr := &monoRepo{ - repoCommits: map[RepoBranchCommit]struct{}{}, + repoCommits: map[RepoCommit]struct{}{}, } var err error if mr.repo, err = vcs.NewRepo(targets.Linux, "none", rbcPath); err != nil { @@ -88,7 +86,7 @@ func MakeMonoRepo(workdir string) FileVersProvider { return mr } -func (mr *monoRepo) cloneCommits(rbcs []RepoBranchCommit) { +func (mr *monoRepo) cloneCommits(rbcs []RepoCommit) { mr.mu.Lock() defer mr.mu.Unlock() for _, rbc := range rbcs { diff --git a/pkg/covermerger/provider_web.go b/pkg/covermerger/provider_web.go index e992f85b5..18addd6ee 100644 --- a/pkg/covermerger/provider_web.go +++ b/pkg/covermerger/provider_web.go @@ -14,7 +14,7 @@ import ( type webGit struct { } -func (mr *webGit) GetFileVersions(c *Config, targetFilePath string, rbcs []RepoBranchCommit, +func (mr *webGit) GetFileVersions(c *Config, targetFilePath string, rbcs []RepoCommit, ) (fileVersions, error) { res := make(fileVersions) for _, rbc := range rbcs { @@ -68,12 +68,12 @@ func MakeWebGit() FileVersProvider { } func GetFileVersion(filePath, repo, commit string) (string, error) { - rbc := RepoBranchCommit{repo, "", commit} + repoCommit := RepoCommit{repo, commit} files, err := MakeWebGit().GetFileVersions(nil, filePath, - []RepoBranchCommit{rbc}) + []RepoCommit{repoCommit}) if err != nil { return "", fmt.Errorf("failed to GetFileVersions: %w", err) } - return files[rbc], nil + return files[repoCommit], nil } |
