GitHub - elgohr/stop-and-go: Testing helper for concurrency
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) } }