Commit 59440b8b authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent 084908f3
...@@ -263,24 +263,6 @@ func Verify(t *testing.T, f func(t *T)) { ...@@ -263,24 +263,6 @@ func Verify(t *testing.T, f func(t *T)) {
} }
// fatalfInNonMain should be called for fatal cases in non-main goroutines instead of panic.
//
// we don't panic because it will stop the process and prevent the main
// goroutine to print detailed reason for e.g. deadlock or other error.
var fatalLogMu sync.Mutex
func (t *T) fatalfInNonMain(format string, argv ...interface{}) {
t.Helper()
// serialize fatal log+traceback printout, so that such printouts from
// multiple goroutines do not get intermixed.
fatalLogMu.Lock()
defer fatalLogMu.Unlock()
t.Logf(format, argv...)
t.Logf("%s\n", debug.Stack())
runtime.Goexit()
}
// T overrides FailNow/Fatal/Fatalf to also cancel all in-progress sends. // T overrides FailNow/Fatal/Fatalf to also cancel all in-progress sends.
func (t *T) FailNow() { func (t *T) FailNow() {
t.Helper() t.Helper()
...@@ -512,3 +494,21 @@ func (t *T) expect1(stream string, eventExpect interface{}) *_Msg { ...@@ -512,3 +494,21 @@ func (t *T) expect1(stream string, eventExpect interface{}) *_Msg {
return msg return msg
} }
// fatalfInNonMain should be called for fatal cases in non-main goroutines instead of panic.
//
// we don't panic because it will stop the process and prevent the main
// goroutine to print detailed reason for e.g. deadlock or other error.
var fatalLogMu sync.Mutex
func (t *T) fatalfInNonMain(format string, argv ...interface{}) {
t.Helper()
// serialize fatal log+traceback printout, so that such printouts from
// multiple goroutines do not get intermixed.
fatalLogMu.Lock()
defer fatalLogMu.Unlock()
t.Logf(format, argv...)
t.Logf("%s\n", debug.Stack())
runtime.Goexit()
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment