aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/cover/report.go
diff options
context:
space:
mode:
authorJoey Jiao <joeyjiaojg@gmail.com>2021-07-13 08:10:40 +0800
committerDmitry Vyukov <dvyukov@google.com>2021-07-14 20:01:00 +0200
commitb9a2f64e4081e5f8f66f00ebb376068d4064daee (patch)
tree9839ef85d2c0a47cb9353aa15a66b3c5b01a998d /pkg/cover/report.go
parent94e0b7079acc1c1ab28a2043fd21321c978f1529 (diff)
all: add /modulecover page
Diffstat (limited to 'pkg/cover/report.go')
-rw-r--r--pkg/cover/report.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/pkg/cover/report.go b/pkg/cover/report.go
index c7d96b703..788603119 100644
--- a/pkg/cover/report.go
+++ b/pkg/cover/report.go
@@ -49,6 +49,7 @@ func MakeReportGenerator(target *targets.Target, vm, objDir, srcDir, buildDir st
}
type file struct {
+ module string
filename string
lines map[int]line
functions []*function
@@ -76,6 +77,7 @@ func (rg *ReportGenerator) prepareFileMap(progs []Prog) (map[string]*file, error
files := make(map[string]*file)
for _, unit := range rg.Units {
files[unit.Name] = &file{
+ module: unit.Module.Name,
filename: unit.Path,
lines: make(map[int]line),
totalPCs: len(unit.PCs),
@@ -92,7 +94,7 @@ func (rg *ReportGenerator) prepareFileMap(progs []Prog) (map[string]*file, error
}
matchedPC := false
for _, frame := range rg.Frames {
- f := getFile(files, frame.Name, frame.Path)
+ f := getFile(files, frame.Name, frame.Path, frame.Module.Name)
ln := f.lines[frame.StartLine]
coveredBy := progPCs[frame.PC]
if len(coveredBy) == 0 {
@@ -190,10 +192,11 @@ func (rg *ReportGenerator) lazySymbolize(progs []Prog) error {
return nil
}
-func getFile(files map[string]*file, name, path string) *file {
+func getFile(files map[string]*file, name, path, module string) *file {
f := files[name]
if f == nil {
f = &file{
+ module: module,
filename: path,
lines: make(map[int]line),
// Special mark for header files, if a file does not have coverage at all it is not shown.