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_binary", "grpc_cc_library", "grpc_cc_test", "grpc_package") 18load("//test/cpp/qps:qps_benchmark_script.bzl", "json_run_localhost_batch", "qps_json_driver_batch") 19load("//bazel:custom_exec_properties.bzl", "LARGE_MACHINE") 20 21grpc_package(name = "test/cpp/qps") 22 23grpc_cc_library( 24 name = "parse_json", 25 srcs = ["parse_json.cc"], 26 hdrs = ["parse_json.h"], 27 external_deps = ["protobuf"], 28 deps = ["//:grpc++"], 29) 30 31grpc_cc_library( 32 name = "qps_worker_impl", 33 srcs = [ 34 "client_async.cc", 35 "client_callback.cc", 36 "client_sync.cc", 37 "qps_server_builder.cc", 38 "qps_worker.cc", 39 "server_async.cc", 40 "server_callback.cc", 41 "server_sync.cc", 42 ], 43 hdrs = [ 44 "client.h", 45 "qps_server_builder.h", 46 "qps_worker.h", 47 "server.h", 48 ], 49 external_deps = [ 50 "gflags", 51 ], 52 deps = [ 53 ":histogram", 54 ":interarrival", 55 ":usage_timer", 56 "//:grpc", 57 "//:grpc++", 58 "//:grpc++_core_stats", 59 "//src/proto/grpc/testing:benchmark_service_proto", 60 "//src/proto/grpc/testing:control_proto", 61 "//src/proto/grpc/testing:payloads_proto", 62 "//src/proto/grpc/testing:worker_service_proto", 63 "//test/core/end2end:ssl_test_data", 64 "//test/core/util:grpc_test_util", 65 "//test/cpp/util:test_config", 66 "//test/cpp/util:test_util", 67 ], 68) 69 70grpc_cc_library( 71 name = "driver_impl", 72 srcs = [ 73 "driver.cc", 74 "report.cc", 75 ], 76 hdrs = [ 77 "driver.h", 78 "report.h", 79 ], 80 deps = [ 81 ":histogram", 82 ":parse_json", 83 ":qps_worker_impl", 84 "//:grpc++", 85 "//src/proto/grpc/testing:control_proto", 86 "//src/proto/grpc/testing:messages_proto", 87 "//src/proto/grpc/testing:report_qps_scenario_service_proto", 88 "//src/proto/grpc/testing:worker_service_proto", 89 "//test/core/util:grpc_test_util", 90 "//test/cpp/util:test_util", 91 ], 92) 93 94grpc_cc_library( 95 name = "benchmark_config", 96 srcs = [ 97 "benchmark_config.cc", 98 ], 99 hdrs = [ 100 "benchmark_config.h", 101 ], 102 external_deps = [ 103 "gflags", 104 ], 105 deps = [ 106 ":driver_impl", 107 ":histogram", 108 "//:grpc++", 109 "//src/proto/grpc/testing:control_proto", 110 ], 111) 112 113grpc_cc_library( 114 name = "histogram", 115 hdrs = [ 116 "histogram.h", 117 "stats.h", 118 ], 119 deps = ["//test/core/util:grpc_test_util"], 120) 121 122grpc_cc_binary( 123 name = "qps_json_driver", 124 srcs = ["qps_json_driver.cc"], 125 external_deps = [ 126 "gflags", 127 ], 128 deps = [ 129 ":benchmark_config", 130 ":driver_impl", 131 "//:grpc++", 132 "//test/cpp/util:test_config", 133 "//test/cpp/util:test_util", 134 ], 135) 136 137grpc_cc_test( 138 name = "inproc_sync_unary_ping_pong_test", 139 srcs = ["inproc_sync_unary_ping_pong_test.cc"], 140 deps = [ 141 ":benchmark_config", 142 ":driver_impl", 143 "//:grpc++", 144 "//test/cpp/util:test_config", 145 "//test/cpp/util:test_util", 146 ], 147) 148 149grpc_cc_library( 150 name = "interarrival", 151 hdrs = ["interarrival.h"], 152 deps = ["//:grpc++"], 153) 154 155qps_json_driver_batch() 156 157json_run_localhost_batch() 158 159grpc_cc_test( 160 name = "qps_interarrival_test", 161 srcs = ["qps_interarrival_test.cc"], 162 uses_polling = False, 163 deps = [ 164 ":histogram", 165 ":interarrival", 166 "//test/cpp/util:test_config", 167 ], 168) 169 170grpc_cc_test( 171 name = "qps_openloop_test", 172 srcs = ["qps_openloop_test.cc"], 173 exec_properties = LARGE_MACHINE, 174 tags = ["no_windows"], # LARGE_MACHINE is not configured for windows RBE 175 deps = [ 176 ":benchmark_config", 177 ":driver_impl", 178 ":qps_worker_impl", 179 "//test/cpp/util:test_config", 180 "//test/cpp/util:test_util", 181 ], 182) 183 184grpc_cc_test( 185 name = "secure_sync_unary_ping_pong_test", 186 srcs = ["secure_sync_unary_ping_pong_test.cc"], 187 deps = [ 188 ":benchmark_config", 189 ":driver_impl", 190 "//:grpc++", 191 "//test/cpp/util:test_config", 192 "//test/cpp/util:test_util", 193 ], 194) 195 196grpc_cc_library( 197 name = "usage_timer", 198 srcs = ["usage_timer.cc"], 199 hdrs = ["usage_timer.h"], 200 deps = ["//:gpr"], 201) 202 203grpc_cc_binary( 204 name = "qps_worker", 205 srcs = ["worker.cc"], 206 deps = [ 207 ":qps_worker_impl", 208 "//:grpc++", 209 "//test/core/util:grpc_test_util", 210 "//test/cpp/util:test_config", 211 "//test/cpp/util:test_util", 212 ], 213) 214