performRPCs uses weightedRandomTestSelector to select test case and runs the tests.
(gauge *gauge, conn *grpc.ClientConn, selector *weightedRandomTestSelector, stop <-chan bool)
| 223 | |
| 224 | // performRPCs uses weightedRandomTestSelector to select test case and runs the tests. |
| 225 | func 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 | |
| 268 | func logParameterInfo(addresses []string, tests []testCaseWithWeight) { |
| 269 | logger.Infof("server_addresses: %s", *serverAddresses) |
no test coverage detected