Merge pull request #1412 from stretchr/fix-flaky-TestEventuallyIssue805

assert: fix TestEventuallyTimeout
pull/1450/head
Sean Marciniak 2024-01-26 13:58:29 +10:30 committed by GitHub
commit 9b9a3b48b1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 16 additions and 2 deletions

View File

@ -2869,12 +2869,26 @@ func TestNeverTrue(t *testing.T) {
False(t, Never(mockT, condition, 100*time.Millisecond, 20*time.Millisecond))
}
func TestEventuallyIssue805(t *testing.T) {
// Check that a long running condition doesn't block Eventually.
// See issue 805 (and its long tail of following issues)
func TestEventuallyTimeout(t *testing.T) {
mockT := new(testing.T)
NotPanics(t, func() {
condition := func() bool { <-time.After(time.Millisecond); return true }
done, done2 := make(chan struct{}), make(chan struct{})
// A condition function that returns after the Eventually timeout
condition := func() bool {
// Wait until Eventually times out and terminates
<-done
close(done2)
return true
}
False(t, Eventually(mockT, condition, time.Millisecond, time.Microsecond))
close(done)
<-done2
})
}