mirror of
https://github.com/Twigpine/zero.git
synced 2026-11-09 18:08:31 -10:00
24 lines
608 B
Go
24 lines
608 B
Go
// Package testutil provides small, shared helpers for tests across the
|
|
// codebase.
|
|
package testutil
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
// WaitFor polls cond until it returns true, or fails the test if it does not
|
|
// become true within a generous deadline. what names the condition being
|
|
// waited for so a timeout failure message is actionable.
|
|
func WaitFor(t *testing.T, what string, cond func() bool) {
|
|
t.Helper()
|
|
deadline := time.Now().Add(5 * time.Second)
|
|
for time.Now().Before(deadline) {
|
|
if cond() {
|
|
return
|
|
}
|
|
time.Sleep(5 * time.Millisecond)
|
|
}
|
|
t.Fatalf("timed out waiting for %s", what)
|
|
}
|