Skip to content

Commit bd21d54

Browse files
committed
parser/gotest: Add Package to Event
This allows each event to belong to a package, if we know it in advance.
1 parent f6f9df4 commit bd21d54

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

parser/gotest/event.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
package gotest
22

3-
import "time"
3+
import (
4+
"time"
5+
6+
"github.com/jstemmer/go-junit-report/v2/parser/gotest/internal/reader"
7+
)
48

59
// Event is a single event in a Go test or benchmark.
610
type Event struct {
711
Type string `json:"type"`
812

913
Name string `json:"name,omitempty"`
14+
Package string `json:"pkg,omitempty"`
1015
Result string `json:"result,omitempty"`
1116
Duration time.Duration `json:"duration,omitempty"`
1217
Data string `json:"data,omitempty"`
@@ -23,3 +28,10 @@ type Event struct {
2328
BytesPerOp int64 `json:"benchmark_bytes_per_op,omitempty"`
2429
AllocsPerOp int64 `json:"benchmark_allocs_per_op,omitempty"`
2530
}
31+
32+
func (e *Event) applyMetadata(m *reader.Metadata) {
33+
if e == nil || m == nil {
34+
return
35+
}
36+
e.Package = m.Package
37+
}

parser/gotest/gotest.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ func (p *Parser) Parse(r io.Reader) (gtr.Report, error) {
136136
func (p *Parser) parse(r reader.LineReader) (gtr.Report, error) {
137137
p.events = nil
138138
for {
139-
line, _, err := r.ReadLine()
139+
line, metadata, err := r.ReadLine()
140140
if err == io.EOF {
141141
break
142142
} else if err != nil {
@@ -160,6 +160,7 @@ func (p *Parser) parse(r reader.LineReader) (gtr.Report, error) {
160160
}
161161

162162
for _, ev := range evs {
163+
ev.applyMetadata(metadata)
163164
p.events = append(p.events, ev)
164165
}
165166
}

0 commit comments

Comments
 (0)