GitHub - elgohr/stop-and-go: Testing helper for concurrency (original) (raw)
func TestExample(t *testing.T) { w1 := wait.NewWaiter(time.Second) w2 := wait.NewWaiter(time.Second) w3 := wait.NewWaiter(time.Second)
ts1 := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
w2.Done()
}))
defer ts1.Close()
go func() {
w3.Done()
}()
go func() {
if _, err := http.Get(ts1.URL); err != nil {
t.Error(err)
}
w1.Done()
}()
if err := wait.For(
constraint.NoOrder(w3),
constraint.Before(w1, w2),
); err != nil {
t.Error(err)
}}