1# Copyright 2017 gRPC authors. 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15licenses(["notice"]) # Apache v2 16 17load("//bazel:grpc_build_system.bzl", "grpc_cc_test", "grpc_cc_library", "grpc_cc_binary", "grpc_package") 18load("//test/cpp/qps:qps_benchmark_script.bzl", "qps_json_driver_batch", "json_run_localhost_batch") 19 20grpc_package(name = "test/cpp/qps") 21 22grpc_cc_library( 23 name = "parse_json", 24 srcs = ["parse_json.cc"], 25 hdrs = ["parse_json.h"], 26 external_deps = ["protobuf"], 27 deps = ["//:grpc++"], 28) 29 30grpc_cc_library( 31 name = "qps_worker_impl", 32 srcs = [ 33 "client_async.cc", 34 "client_sync.cc", 35 "qps_server_builder.cc", 36 "qps_worker.cc", 37 "server_async.cc", 38 "server_sync.cc", 39 ], 40 hdrs = [ 41 "client.h", 42 "qps_server_builder.h", 43 "qps_worker.h", 44 "server.h", 45 ], 46 external_deps = [ 47 "gflags", 48 ], 49 deps = [ 50 ":histogram", 51 ":interarrival", 52 ":usage_timer", 53 "//:grpc", 54 "//:grpc++", 55 "//:grpc++_core_stats", 56 "//src/proto/grpc/testing:benchmark_service_proto", 57 "//src/proto/grpc/testing:control_proto", 58 "//src/proto/grpc/testing:payloads_proto", 59 "//src/proto/grpc/testing:worker_service_proto", 60 "//test/core/end2end:ssl_test_data", 61 "//test/core/util:gpr_test_util", 62 "//test/core/util:grpc_test_util", 63 "//test/cpp/util:test_config", 64 "//test/cpp/util:test_util", 65 ], 66) 67 68grpc_cc_library( 69 name = "driver_impl", 70 srcs = [ 71 "driver.cc", 72 "report.cc", 73 ], 74 hdrs = [ 75 "driver.h", 76 "report.h", 77 ], 78 deps = [ 79 ":histogram", 80 ":parse_json", 81 ":qps_worker_impl", 82 "//:grpc++", 83 "//src/proto/grpc/testing:control_proto", 84 "//src/proto/grpc/testing:messages_proto", 85 "//src/proto/grpc/testing:report_qps_scenario_service_proto", 86 "//src/proto/grpc/testing:worker_service_proto", 87 "//test/core/util:gpr_test_util", 88 "//test/core/util:grpc_test_util", 89 "//test/cpp/util:test_util", 90 ], 91) 92 93grpc_cc_library( 94 name = "benchmark_config", 95 srcs = [ 96 "benchmark_config.cc", 97 ], 98 hdrs = [ 99 "benchmark_config.h", 100 ], 101 external_deps = [ 102 "gflags", 103 ], 104 deps = [ 105 ":driver_impl", 106 ":histogram", 107 "//:grpc++", 108 "//src/proto/grpc/testing:control_proto", 109 ], 110) 111 112grpc_cc_library( 113 name = "histogram", 114 hdrs = [ 115 "histogram.h", 116 "stats.h", 117 ], 118 deps = ["//test/core/util:grpc_test_util"], 119) 120 121grpc_cc_binary( 122 name = "qps_json_driver", 123 srcs = ["qps_json_driver.cc"], 124 external_deps = [ 125 "gflags", 126 ], 127 deps = [ 128 ":benchmark_config", 129 ":driver_impl", 130 "//:grpc++", 131 "//test/cpp/util:test_config", 132 "//test/cpp/util:test_util", 133 ], 134) 135 136grpc_cc_test( 137 name = "inproc_sync_unary_ping_pong_test", 138 srcs = ["inproc_sync_unary_ping_pong_test.cc"], 139 deps = [ 140 ":benchmark_config", 141 ":driver_impl", 142 "//:grpc++", 143 "//test/cpp/util:test_config", 144 "//test/cpp/util:test_util", 145 ], 146) 147 148grpc_cc_library( 149 name = "interarrival", 150 hdrs = ["interarrival.h"], 151 deps = ["//:grpc++"], 152) 153 154qps_json_driver_batch() 155 156json_run_localhost_batch() 157 158grpc_cc_test( 159 name = "qps_interarrival_test", 160 srcs = ["qps_interarrival_test.cc"], 161 deps = [ 162 ":histogram", 163 ":interarrival", 164 "//test/cpp/util:test_config", 165 ], 166) 167 168grpc_cc_test( 169 name = "qps_openloop_test", 170 srcs = ["qps_openloop_test.cc"], 171 data = ["//third_party/toolchains:RBE_USE_MACHINE_TYPE_LARGE"], 172 deps = [ 173 ":benchmark_config", 174 ":driver_impl", 175 ":qps_worker_impl", 176 "//test/cpp/util:test_config", 177 "//test/cpp/util:test_util", 178 ], 179) 180 181grpc_cc_test( 182 name = "secure_sync_unary_ping_pong_test", 183 srcs = ["secure_sync_unary_ping_pong_test.cc"], 184 deps = [ 185 ":benchmark_config", 186 ":driver_impl", 187 "//:grpc++", 188 "//test/cpp/util:test_config", 189 "//test/cpp/util:test_util", 190 ], 191) 192 193grpc_cc_library( 194 name = "usage_timer", 195 srcs = ["usage_timer.cc"], 196 hdrs = ["usage_timer.h"], 197 deps = ["//:gpr"], 198) 199 200grpc_cc_binary( 201 name = "qps_worker", 202 srcs = ["worker.cc"], 203 deps = [ 204 ":qps_worker_impl", 205 "//:grpc++", 206 "//test/core/util:gpr_test_util", 207 "//test/core/util:grpc_test_util", 208 "//test/cpp/util:test_config", 209 "//test/cpp/util:test_util", 210 ], 211) 212