mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
testing: capture testname on --- PASS and --- FAIL lines
This fixes an issue raised at https://github.com/golang/go/issues/38458#issuecomment-635617670 in which --- PASS and --- FAIL lines would not trigger --- CONT lines of other tests. Change-Id: I0d8cc54d682a370d0a6ea6816a11b2e462a92efe Reviewed-on: https://go-review.googlesource.com/c/go/+/235997 Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
This commit is contained in:
parent
a9cc1051c1
commit
ba6ccf3b04
2 changed files with 44 additions and 6 deletions
39
src/cmd/go/testdata/script/test_chatty_parallel_success_sleepy.txt
vendored
Normal file
39
src/cmd/go/testdata/script/test_chatty_parallel_success_sleepy.txt
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
# Run parallel chatty tests. Assert on CONT lines. This test makes sure that
|
||||
# multiple parallel outputs have the appropriate CONT lines between them.
|
||||
go test -parallel 3 chatty_parallel_test.go -v
|
||||
|
||||
stdout '--- PASS: TestFast \([0-9.]{4}s\)\n=== CONT TestSlow\n chatty_parallel_test.go:31: this is the second TestSlow log\n--- PASS: TestSlow \([0-9.]{4}s\)'
|
||||
|
||||
-- chatty_parallel_test.go --
|
||||
package chatty_paralell_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
var (
|
||||
run = make(chan struct{})
|
||||
afterFirstLog = make(chan struct{})
|
||||
afterPass = make(chan struct{})
|
||||
)
|
||||
|
||||
func TestFast(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
<-afterFirstLog
|
||||
t.Cleanup(func() {
|
||||
close(afterPass)
|
||||
})
|
||||
}
|
||||
|
||||
func TestSlow(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
t.Logf("this is the first TestSlow log")
|
||||
close(afterFirstLog)
|
||||
|
||||
<-afterPass
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
t.Logf("this is the second TestSlow log")
|
||||
}
|
||||
|
|
@ -353,15 +353,14 @@ func (p *testPrinter) Print(testName, out string) {
|
|||
}
|
||||
|
||||
func (p *testPrinter) Fprint(w io.Writer, testName, out string) {
|
||||
if !p.chatty || strings.HasPrefix(out, "--- PASS") || strings.HasPrefix(out, "--- FAIL") {
|
||||
fmt.Fprint(w, out)
|
||||
return
|
||||
}
|
||||
|
||||
p.lastNameMu.Lock()
|
||||
defer p.lastNameMu.Unlock()
|
||||
|
||||
if strings.HasPrefix(out, "=== CONT") || strings.HasPrefix(out, "=== RUN") {
|
||||
if !p.chatty ||
|
||||
strings.HasPrefix(out, "--- PASS") ||
|
||||
strings.HasPrefix(out, "--- FAIL") ||
|
||||
strings.HasPrefix(out, "=== CONT") ||
|
||||
strings.HasPrefix(out, "=== RUN") {
|
||||
p.lastName = testName
|
||||
fmt.Fprint(w, out)
|
||||
return
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue