diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2020-12-02 12:03:36 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-12-02 12:39:40 +0100 |
| commit | 8c9190ef9ef69993519136740a4e67c74f45fdb3 (patch) | |
| tree | 51855774870e37887eb9d3f2d4949da6249d98c6 | |
| parent | eff43e99da12c6de1965548a619c3013b8ee791e (diff) | |
pkg/cover: fix file coverage percent calculation
If coverage contains some PCs that's don't map to coverage callbacks,
we can get file coverage >100% because total PCs are filtered against
all coverage callbacks, while actual coverage is not.
Filter actual coverage as well.
| -rw-r--r-- | pkg/cover/report.go | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/pkg/cover/report.go b/pkg/cover/report.go index 5cf753738..53184955b 100644 --- a/pkg/cover/report.go +++ b/pkg/cover/report.go @@ -263,13 +263,14 @@ func (rg *ReportGenerator) prepareFileMap(progs []Prog) (map[string]*file, error } } for _, s := range rg.symbols { + f := files[s.unit.name] covered := 0 for _, pc := range s.pcs { if coveredPCs[pc] { covered++ + f.covered++ } } - f := files[s.unit.name] f.functions = append(f.functions, &function{ name: s.name, pcs: len(s.pcs), @@ -298,7 +299,6 @@ func (rg *ReportGenerator) lazySymbolize(files map[string]*file, progs []Prog) e if s == nil { continue } - files[s.unit.name].covered++ if !s.symbolized && !symbolizeSymbols[s] { symbolizeSymbols[s] = true symbolizePCs = append(symbolizePCs, s.pcs...) |
