in continuous_load_testing/client.go [216:238]
func ExecuteFullDuplexCalls(ctx context.Context, tc test.TestServiceClient) error {
stream, err := tc.FullDuplexCall(ctx)
if err != nil {
return fmt.Errorf("%v.FullDuplexCall(_) = _, %v", tc, err)
}
for i := 0; i < *numOfRequests; i++ {
req := &messages.StreamingOutputCallRequest{}
if err = stream.Send(req); err != nil {
return fmt.Errorf("%v has error %v while sending %v", stream, err, req)
}
_, err := stream.Recv()
if err != nil {
return fmt.Errorf("%v.Recv() = %v", stream, err)
}
}
if err = stream.CloseSend(); err != nil {
return fmt.Errorf("error closing send stream: %v", err)
}
if _, err = stream.Recv(); err != io.EOF {
return fmt.Errorf("stream didn't complete successfully: %v", err)
}
return nil
}