Skip to content

Commit a39f7de

Browse files
author
Mladen Rusev
committed
add intermediate buffer
1 parent e38f94c commit a39f7de

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

coverage_server.go

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,42 @@
11
package main
22

33
import (
4+
"bytes"
45
"log"
56
"net/http"
67
"runtime/coverage"
78
)
89

910
func startCoverageServer() {
10-
//log.Println("Coverage build detected. Starting private admin server on localhost:8081...")
1111
adminMux := http.NewServeMux()
1212

1313
adminMux.HandleFunc("/_debug/coverage/download", func(w http.ResponseWriter, r *http.Request) {
1414
log.Println("{\n \"message\": \"Received request to download coverage counter data...\"\n}")
15+
16+
var buffer bytes.Buffer
17+
18+
// Attempt to write the coverage counters to the buffer.
19+
if err := coverage.WriteCounters(&buffer); err != nil {
20+
log.Printf("Error writing coverage counters to buffer: %v", err)
21+
// Inform the client that an internal error occurred.
22+
http.Error(w, "Failed to generate coverage report", http.StatusInternalServerError)
23+
return
24+
}
25+
26+
// Check if any data was written to the buffer.
27+
if buffer.Len() == 0 {
28+
log.Println("Coverage data is empty. No counters were written.")
29+
} else {
30+
log.Printf("Successfully wrote %d bytes of coverage data to the buffer.", buffer.Len())
31+
}
32+
33+
// If successful, proceed to write the buffer's content to the actual HTTP response.
1534
w.Header().Set("Content-Type", "application/octet-stream")
1635
w.Header().Set("Content-Disposition", `attachment; filename="coverage.out"`)
1736

18-
if err := coverage.WriteCounters(w); err != nil {
19-
log.Printf("Error writing coverage counters to response: %v", err)
37+
// Write the captured coverage data from the buffer to the response writer.
38+
if _, err := w.Write(buffer.Bytes()); err != nil {
39+
log.Printf("Error writing coverage data from buffer to response: %v", err)
2040
}
2141
})
2242

0 commit comments

Comments
 (0)