Fix race in integration testlogger (#6556)

* Fix race in logger

* At testing end drop the reference to the last test.
This commit is contained in:
zeripath 2019-04-11 12:49:49 +01:00 committed by Lunny Xiao
parent 346036d47f
commit c02c6a144f
2 changed files with 23 additions and 0 deletions

View File

@ -81,6 +81,8 @@ func TestMain(m *testing.M) {
} }
exitCode := m.Run() exitCode := m.Run()
writerCloser.t = nil
if err = os.RemoveAll(setting.Indexer.IssuePath); err != nil { if err = os.RemoveAll(setting.Indexer.IssuePath); err != nil {
fmt.Printf("os.RemoveAll: %v\n", err) fmt.Printf("os.RemoveAll: %v\n", err)
os.Exit(1) os.Exit(1)

View File

@ -33,6 +33,27 @@ func (w *testLoggerWriterCloser) Write(p []byte) (int, error) {
if len(p) > 0 && p[len(p)-1] == '\n' { if len(p) > 0 && p[len(p)-1] == '\n' {
p = p[:len(p)-1] p = p[:len(p)-1]
} }
defer func() {
err := recover()
if err == nil {
return
}
var errString string
errErr, ok := err.(error)
if ok {
errString = errErr.Error()
} else {
errString, ok = err.(string)
}
if !ok {
panic(err)
}
if !strings.HasPrefix(errString, "Log in goroutine after ") {
panic(err)
}
}()
w.t.Log(string(p)) w.t.Log(string(p))
return len(p), nil return len(p), nil
} }