-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Labels
Description
Here's an idea for an API to make it easier to wait for a given condition to become true:
package quicktest
import "github.com/rogpeppe/retry"
// Eventually calls its provided function repeatedly,
// passing its returned value to the checker c until the checker
// succeeds.
//
// The retry argument governs how often the function is
// called; if it's nil, the default strategy is to use an exponential
// backoff that times out after about 5s.
//
// For example:
//
// qt.Assert(t, func() int64 {
// return atomic.LoadInt64(&foo)
// }, qt.Eventually(qt.Equals, nil), int64(1234))
func Eventually(c Checker, retry *retry.Strategy) Checker
// EventuallyStable is like Eventually except that it also runs the checker
// for a time after the checker succeeds to make sure that it doesn't
// fail again. The stableRetry argument governs how that is done;
// the default is to run for about 100ms.
//
// In general stableRetry should complete in a much shorter
// period of time than retry because it will always be run to completion.
func EventuallyStable(c Checker, retry, stableRetry *retry.Strategy) Checker
Reactions are currently unavailable