26 lines
351 B
Go
26 lines
351 B
Go
package testutil
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
)
|
|
|
|
const (
|
|
wait = 25 * time.Millisecond
|
|
timeout = 5 * time.Second
|
|
)
|
|
|
|
func WaitForResult(f func() (bool, error)) error {
|
|
stop := time.Now().Add(timeout)
|
|
for {
|
|
ok, err := f()
|
|
if ok {
|
|
return nil
|
|
}
|
|
if time.Now().After(stop) {
|
|
return fmt.Errorf("timeout: %s", err)
|
|
}
|
|
time.Sleep(wait)
|
|
}
|
|
}
|