aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorTaras Madan <tarasmadan@google.com>2024-02-21 15:57:39 +0100
committerTaras Madan <tarasmadan@google.com>2024-02-26 13:40:58 +0000
commit34642b76bd94b7e7600efd0aaeba1c09f65926fe (patch)
treeb1ee129f8ff0ef0e23af48fa9ba37f32a0191e45 /pkg
parentedd6a5e964598ffc78ee22374d8e0dd3326fb6a2 (diff)
html.go: refactor httpCoverCover
Diffstat (limited to 'pkg')
-rw-r--r--pkg/cover/html.go20
1 files changed, 9 insertions, 11 deletions
diff --git a/pkg/cover/html.go b/pkg/cover/html.go
index 8cb9e7511..956a9bc24 100644
--- a/pkg/cover/html.go
+++ b/pkg/cover/html.go
@@ -13,7 +13,6 @@ import (
"html/template"
"io"
"math"
- "net/http"
"os"
"path/filepath"
"sort"
@@ -185,8 +184,8 @@ func fileLineContents(file *file, lines [][]byte) lineCoverExport {
return lce
}
-func (rg *ReportGenerator) DoRawCoverFiles(w http.ResponseWriter, progs []Prog, coverFilter map[uint32]uint32) error {
- progs = fixUpPCs(rg.target.Arch, progs, coverFilter)
+func (rg *ReportGenerator) DoRawCoverFiles(w io.Writer, params CoverHandlerParams) error {
+ progs := fixUpPCs(rg.target.Arch, params.Progs, params.CoverFilter)
if err := rg.lazySymbolize(progs); err != nil {
return err
}
@@ -201,7 +200,6 @@ func (rg *ReportGenerator) DoRawCoverFiles(w http.ResponseWriter, progs []Prog,
return fl.PC < fr.PC
})
- w.Header().Set("Content-Type", "text/plain; charset=utf-8")
buf := bufio.NewWriter(w)
fmt.Fprintf(buf, "PC,Module,Offset,Filename,Inline,StartLine,EndLine\n")
for _, frame := range resFrames {
@@ -213,8 +211,8 @@ func (rg *ReportGenerator) DoRawCoverFiles(w http.ResponseWriter, progs []Prog,
return nil
}
-func (rg *ReportGenerator) DoRawCover(w http.ResponseWriter, progs []Prog, coverFilter map[uint32]uint32) {
- progs = fixUpPCs(rg.target.Arch, progs, coverFilter)
+func (rg *ReportGenerator) DoRawCover(w io.Writer, params CoverHandlerParams) error {
+ progs := fixUpPCs(rg.target.Arch, params.Progs, params.CoverFilter)
var pcs []uint64
if len(progs) == 1 && rg.rawCoverEnabled {
pcs = append([]uint64{}, progs[0].PCs...)
@@ -234,16 +232,16 @@ func (rg *ReportGenerator) DoRawCover(w http.ResponseWriter, progs []Prog, cover
})
}
- w.Header().Set("Content-Type", "text/plain; charset=utf-8")
buf := bufio.NewWriter(w)
for _, pc := range pcs {
fmt.Fprintf(buf, "0x%x\n", pc)
}
buf.Flush()
+ return nil
}
-func (rg *ReportGenerator) DoFilterPCs(w http.ResponseWriter, progs []Prog, coverFilter map[uint32]uint32) {
- progs = fixUpPCs(rg.target.Arch, progs, coverFilter)
+func (rg *ReportGenerator) DoFilterPCs(w io.Writer, params CoverHandlerParams) error {
+ progs := fixUpPCs(rg.target.Arch, params.Progs, params.CoverFilter)
var pcs []uint64
uniquePCs := make(map[uint64]bool)
for _, prog := range progs {
@@ -252,7 +250,7 @@ func (rg *ReportGenerator) DoFilterPCs(w http.ResponseWriter, progs []Prog, cove
continue
}
uniquePCs[pc] = true
- if coverFilter[uint32(pc)] != 0 {
+ if params.CoverFilter[uint32(pc)] != 0 {
pcs = append(pcs, pc)
}
}
@@ -261,12 +259,12 @@ func (rg *ReportGenerator) DoFilterPCs(w http.ResponseWriter, progs []Prog, cove
return pcs[i] < pcs[j]
})
- w.Header().Set("Content-Type", "text/plain; charset=utf-8")
buf := bufio.NewWriter(w)
for _, pc := range pcs {
fmt.Fprintf(buf, "0x%x\n", pc)
}
buf.Flush()
+ return nil
}
type fileStats struct {