mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
testing: failfast fails fast when Fatal called
When a test calls t.Fatal()/t.Fatalf(), only deferred code will execute. Increment the failure count as part of a deferred call. Fixes #24412 Change-Id: Ibb154015fcd3d0fb7739718fdda8c9ad22f9e896 Reviewed-on: https://go-review.googlesource.com/101035 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
6d5ebc7022
commit
d0925228d7
3 changed files with 16 additions and 3 deletions
|
|
@ -731,6 +731,10 @@ func tRunner(t *T, fn func(t *T)) {
|
|||
// a call to runtime.Goexit, record the duration and send
|
||||
// a signal saying that the test is done.
|
||||
defer func() {
|
||||
if t.failed {
|
||||
atomic.AddUint32(&numFailed, 1)
|
||||
}
|
||||
|
||||
if t.raceErrors+race.Errors() > 0 {
|
||||
t.Errorf("race detected during execution of test")
|
||||
}
|
||||
|
|
@ -790,9 +794,7 @@ func tRunner(t *T, fn func(t *T)) {
|
|||
t.raceErrors = -race.Errors()
|
||||
fn(t)
|
||||
|
||||
if t.failed {
|
||||
atomic.AddUint32(&numFailed, 1)
|
||||
}
|
||||
// code beyond here will not be executed when FailNow is invoked
|
||||
t.finished = true
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue