MCPcopy
hub / github.com/grpc/grpc-go / performRPCs

Function performRPCs

interop/stress/client/main.go:225–266  ·  view source on GitHub ↗

performRPCs uses weightedRandomTestSelector to select test case and runs the tests.

(gauge *gauge, conn *grpc.ClientConn, selector *weightedRandomTestSelector, stop <-chan bool)

Source from the content-addressed store, hash-verified

223
224// performRPCs uses weightedRandomTestSelector to select test case and runs the tests.
225func performRPCs(gauge *gauge, conn *grpc.ClientConn, selector *weightedRandomTestSelector, stop <-chan bool) {
226 client := testgrpc.NewTestServiceClient(conn)
227 var numCalls int64
228 ctx := context.Background()
229 startTime := time.Now()
230 for {
231 test := selector.getNextTest()
232 switch test {
233 case "empty_unary":
234 interop.DoEmptyUnaryCall(ctx, client)
235 case "large_unary":
236 interop.DoLargeUnaryCall(ctx, client)
237 case "client_streaming":
238 interop.DoClientStreaming(ctx, client)
239 case "server_streaming":
240 interop.DoServerStreaming(ctx, client)
241 case "ping_pong":
242 interop.DoPingPong(ctx, client)
243 case "empty_stream":
244 interop.DoEmptyStream(ctx, client)
245 case "timeout_on_sleeping_server":
246 interop.DoTimeoutOnSleepingServer(ctx, client)
247 case "cancel_after_begin":
248 interop.DoCancelAfterBegin(ctx, client)
249 case "cancel_after_first_response":
250 interop.DoCancelAfterFirstResponse(ctx, client)
251 case "status_code_and_message":
252 interop.DoStatusCodeAndMessage(ctx, client)
253 case "custom_metadata":
254 interop.DoCustomMetadata(ctx, client)
255 }
256 numCalls++
257 defer func() { atomic.AddInt64(&totalNumCalls, numCalls) }()
258 gauge.set(int64(float64(numCalls) / time.Since(startTime).Seconds()))
259
260 select {
261 case <-stop:
262 return
263 default:
264 }
265 }
266}
267
268func logParameterInfo(addresses []string, tests []testCaseWithWeight) {
269 logger.Infof("server_addresses: %s", *serverAddresses)

Callers 1

mainFunction · 0.70

Calls 14

DoEmptyUnaryCallFunction · 0.92
DoLargeUnaryCallFunction · 0.92
DoClientStreamingFunction · 0.92
DoServerStreamingFunction · 0.92
DoPingPongFunction · 0.92
DoEmptyStreamFunction · 0.92
DoCancelAfterBeginFunction · 0.92
DoStatusCodeAndMessageFunction · 0.92
DoCustomMetadataFunction · 0.92
NowMethod · 0.80

Tested by

no test coverage detected