mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
testing: report the failing test in a late log panic
Updates #29388 Change-Id: Icb0e6048d05fde7a5486b923ff62147edb5c8dac Reviewed-on: https://go-review.googlesource.com/c/157617 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Damien Neil <dneil@google.com>
This commit is contained in:
parent
0456036e28
commit
006a5e7d00
2 changed files with 62 additions and 10 deletions
|
|
@ -618,17 +618,20 @@ func (c *common) log(s string) {
|
|||
func (c *common) logDepth(s string, depth int) {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
// If this test has already finished try and log this message with our parent
|
||||
// with this test name tagged so we know where it came from.
|
||||
// If we don't have a parent panic.
|
||||
if c.done {
|
||||
if c.parent != nil {
|
||||
c.parent.logDepth(s, depth+1)
|
||||
} else {
|
||||
panic("Log in goroutine after " + c.name + " has completed")
|
||||
}
|
||||
} else {
|
||||
if !c.done {
|
||||
c.output = append(c.output, c.decorate(s, depth+1)...)
|
||||
} else {
|
||||
// This test has already finished. Try and log this message
|
||||
// with our parent. If we don't have a parent, panic.
|
||||
for parent := c.parent; parent != nil; parent = parent.parent {
|
||||
parent.mu.Lock()
|
||||
defer parent.mu.Unlock()
|
||||
if !parent.done {
|
||||
parent.output = append(parent.output, parent.decorate(s, depth+1)...)
|
||||
return
|
||||
}
|
||||
}
|
||||
panic("Log in goroutine after " + c.name + " has completed")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue