in infra/blueprint-test/pkg/utils/poll.go [37:66]
func PollE(t testing.TB, condition func() (bool, error), numRetries int, interval time.Duration) error {
if numRetries < 0 {
return &PollParameterError{"invalid value for numRetries. Must be >= 0"}
}
if interval <= 0 {
return &PollParameterError{"invalid value for interval. Must be > 0"}
}
retry, err := condition()
for count := 0; retry && count <= numRetries; count++ {
time.Sleep(interval)
if err != nil {
GetLoggerFromT().Logf(t, "Received error while polling: %v", err)
}
GetLoggerFromT().Logf(t, "Retrying... %d", count+1)
retry, err = condition()
}
if err != nil {
return &PollConditionError{err: err, numRetries: numRetries}
}
if retry {
return &PollRetryLimitExceededError{interval: interval, numRetries: numRetries}
}
return nil
}