diff --git a/integration/v3_watch_test.go b/integration/v3_watch_test.go index 2de2db4c4..9fe2b8024 100644 --- a/integration/v3_watch_test.go +++ b/integration/v3_watch_test.go @@ -479,8 +479,11 @@ func TestV3WatchCurrentPutOverlap(t *testing.T) { // last mod_revision that will be observed nrRevisions := 32 // first revision already allocated as empty revision + var wg sync.WaitGroup for i := 1; i < nrRevisions; i++ { + wg.Add(1) go func() { + defer wg.Done() kvc := toGRPC(clus.RandClient()).KV req := &pb.PutRequest{Key: []byte("foo"), Value: []byte("bar")} if _, err := kvc.Put(context.TODO(), req); err != nil { @@ -540,6 +543,8 @@ func TestV3WatchCurrentPutOverlap(t *testing.T) { if rok, nr := waitResponse(wStream, time.Second); !rok { t.Errorf("unexpected pb.WatchResponse is received %+v", nr) } + + wg.Wait() } // TestV3WatchEmptyKey ensures synced watchers see empty key PUTs as PUT events