integration: submit keys concurrently with watcher streaming

Tests for races between producer and consumer on watcher
This commit is contained in:
Anthony Romano 2016-01-15 10:57:33 -08:00
parent 9b5313a97c
commit 9aea99cd6e

View File

@ -369,17 +369,20 @@ func TestV3WatchFromCurrentRevision(t *testing.T) {
t.Fatalf("#%d: wAPI.Watch error: %v", i, err)
}
go func() {
for _, k := range tt.putKeys {
kvc := pb.NewKVClient(clus.RandConn())
req := &pb.PutRequest{Key: []byte(k), Value: []byte("bar")}
if _, err := kvc.Put(context.TODO(), req); err != nil {
t.Fatalf("#%d: couldn't put key (%v)", i, err)
}
}
}()
if err := wStream.Send(tt.watchRequest); err != nil {
t.Fatalf("#%d: wStream.Send error: %v", i, err)
}
kvc := pb.NewKVClient(clus.RandConn())
for _, k := range tt.putKeys {
if _, err := kvc.Put(context.TODO(), &pb.PutRequest{Key: []byte(k), Value: []byte("bar")}); err != nil {
t.Fatalf("#%d: couldn't put key (%v)", i, err)
}
}
var createdWatchId int64
for j, wresp := range tt.wresps {
resp, err := wStream.Recv()