diff --git a/src/github.com/matrix-org/dendrite/common/test/client.go b/src/github.com/matrix-org/dendrite/common/test/client.go index be61f67d5..509a3aa5a 100644 --- a/src/github.com/matrix-org/dendrite/common/test/client.go +++ b/src/github.com/matrix-org/dendrite/common/test/client.go @@ -129,8 +129,12 @@ func (r *Request) Run(label string, timeout time.Duration, serverCmdChan chan er // - the server to exit with an error (error sent on serverCmdChan) // - our test timeout to expire // We don't need to clean up since the main() function handles that in the event we panic + var testPassed bool select { case <-time.After(timeout): + if testPassed { + break + } fmt.Printf("==TESTING== %v TIMEOUT\n", label) if reqErr := r.LastErr.Get(); reqErr != nil { fmt.Println("Last /sync request error:") @@ -146,6 +150,7 @@ func (r *Request) Run(label string, timeout time.Duration, serverCmdChan chan er panic(err) } case <-done: + testPassed = true fmt.Printf("==TESTING== %v PASSED\n", label) } }