1
0
mirror of https://github.com/golang/go synced 2024-11-17 10:14:46 -07:00

cmd/dist: handle -json flag in runPending (minimal)

The -json flag is new to Go 1.21, but missed skips in runPending.
This CL adds minimal code to fix that. CL 512115 cleans up a bit.

For #37486.
Fixes (via backport) #61557.

Change-Id: I53e426c9a5585b2703f0ff6661a0470e1993f960
Reviewed-on: https://go-review.googlesource.com/c/go/+/512719
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Austin Clements <austin@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
This commit is contained in:
Dmitri Shuralyov 2023-07-21 13:49:06 -04:00 committed by Gopher Robot
parent 8488309192
commit 68d50ca271

27
src/cmd/dist/test.go vendored
View File

@ -91,6 +91,29 @@ type work struct {
end chan bool end chan bool
} }
// printSkip prints a skip message for all of work.
func (w *work) printSkip(t *tester, msg string) {
if t.json {
type event struct {
Time time.Time
Action string
Package string
Output string `json:",omitempty"`
}
enc := json.NewEncoder(&w.out)
ev := event{Time: time.Now(), Package: w.dt.name, Action: "start"}
enc.Encode(ev)
ev.Action = "output"
ev.Output = msg
enc.Encode(ev)
ev.Action = "skip"
ev.Output = ""
enc.Encode(ev)
return
}
fmt.Fprintln(&w.out, msg)
}
// A distTest is a test run by dist test. // A distTest is a test run by dist test.
// Each test has a unique name and belongs to a group (heading) // Each test has a unique name and belongs to a group (heading)
type distTest struct { type distTest struct {
@ -1265,7 +1288,7 @@ func (t *tester) runPending(nextTest *distTest) {
go func(w *work) { go func(w *work) {
if !<-w.start { if !<-w.start {
timelog("skip", w.dt.name) timelog("skip", w.dt.name)
w.out.WriteString("skipped due to earlier error\n") w.printSkip(t, "skipped due to earlier error")
} else { } else {
timelog("start", w.dt.name) timelog("start", w.dt.name)
w.err = w.cmd.Run() w.err = w.cmd.Run()
@ -1276,7 +1299,7 @@ func (t *tester) runPending(nextTest *distTest) {
if isUnsupportedVMASize(w) { if isUnsupportedVMASize(w) {
timelog("skip", w.dt.name) timelog("skip", w.dt.name)
w.out.Reset() w.out.Reset()
w.out.WriteString("skipped due to unsupported VMA\n") w.printSkip(t, "skipped due to unsupported VMA")
w.err = nil w.err = nil
} }
} }