in continuous_load_testing/client.go [240:264]
func ExecuteHalfDuplexCalls(ctx context.Context, tc test.TestServiceClient) error {
stream, err := tc.HalfDuplexCall(ctx)
if err != nil {
return fmt.Errorf("%v.HalfDuplexCall(_) = _, %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)
}
}
if err = stream.CloseSend(); err != nil {
return fmt.Errorf("%v.CloseSend() got %v, want %v", stream, err, nil)
}
for i := 0; i < *numOfRequests; i++ {
_, err := stream.Recv()
if err != nil {
return fmt.Errorf("%v.Recv() = %v", stream, err)
}
}
if _, err = stream.Recv(); err != io.EOF {
return fmt.Errorf("%v failed to complete the HalfDuplexCalls: %v", stream, err)
}
return nil
}