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 15load("//bazel:grpc_build_system.bzl", "grpc_cc_binary", "grpc_cc_library", "grpc_cc_test", "grpc_package") 16 17grpc_package(name = "test/core/memory_usage") 18 19licenses(["notice"]) 20 21grpc_cc_library( 22 name = "memstats", 23 srcs = [ 24 "memstats.cc", 25 "memstats.h", 26 ], 27 hdrs = ["memstats.h"], 28 external_deps = [ 29 "absl/log:check", 30 "absl/types:optional", 31 ], 32 tags = [ 33 "bazel_only", 34 "no_mac", 35 "no_windows", 36 ], 37 deps = [ 38 "//:gpr", 39 ], 40) 41 42grpc_cc_binary( 43 name = "memory_usage_client", 44 srcs = ["client.cc"], 45 external_deps = [ 46 "absl/flags:flag", 47 "absl/flags:parse", 48 "absl/log:check", 49 "absl/log:log", 50 ], 51 tags = [ 52 "bazel_only", 53 "no_mac", 54 "no_windows", 55 ], 56 deps = [ 57 ":memstats", 58 "//:gpr", 59 "//:grpc", 60 "//src/core:channel_args", 61 "//src/core:chaotic_good_connector", 62 "//test/core/test_util:grpc_test_util", 63 "//test/core/test_util:grpc_test_util_base", 64 ], 65) 66 67grpc_cc_binary( 68 name = "memory_usage_server", 69 srcs = ["server.cc"], 70 external_deps = [ 71 "absl/flags:flag", 72 "absl/flags:parse", 73 "absl/log:check", 74 "absl/log:log", 75 ], 76 tags = [ 77 "bazel_only", 78 "no_mac", 79 "no_windows", 80 ], 81 deps = [ 82 ":memstats", 83 "//:gpr", 84 "//:grpc", 85 "//src/core:channel_args", 86 "//src/core:chaotic_good_server", 87 "//src/core:xds_enabled_server", 88 "//test/core/end2end:ssl_test_data", 89 "//test/core/test_util:grpc_test_util", 90 "//test/core/test_util:grpc_test_util_base", 91 ], 92) 93 94grpc_cc_binary( 95 name = "memory_usage_callback_client", 96 srcs = ["callback_client.cc"], 97 external_deps = [ 98 "absl/flags:flag", 99 "absl/flags:parse", 100 "absl/log:check", 101 "absl/log:log", 102 "absl/time", 103 ], 104 tags = [ 105 "bazel_only", 106 "no_mac", 107 "no_windows", 108 ], 109 deps = [ 110 ":memstats", 111 "//:gpr", 112 "//:grpc", 113 "//:grpc++", 114 "//:grpcpp_chaotic_good", 115 "//src/proto/grpc/testing:benchmark_service_cc_grpc", 116 "//test/core/end2end:ssl_test_data", 117 "//test/core/test_util:grpc_test_util", 118 "//test/core/test_util:grpc_test_util_base", 119 ], 120) 121 122grpc_cc_binary( 123 name = "memory_usage_callback_server", 124 srcs = ["callback_server.cc"], 125 external_deps = [ 126 "absl/flags:flag", 127 "absl/log:log", 128 "absl/flags:parse", 129 "absl/log:check", 130 ], 131 tags = [ 132 "bazel_only", 133 "no_mac", 134 "no_windows", 135 ], 136 deps = [ 137 ":memstats", 138 "//:gpr", 139 "//:grpc", 140 "//:grpc++", 141 "//:grpcpp_chaotic_good", 142 "//src/proto/grpc/testing:benchmark_service_cc_grpc", 143 "//test/core/end2end:ssl_test_data", 144 "//test/core/test_util:grpc_test_util", 145 "//test/core/test_util:grpc_test_util_base", 146 ], 147) 148 149MEMORY_USAGE_DATA = [ 150 ":memory_usage_callback_client", 151 ":memory_usage_callback_server", 152 ":memory_usage_client", 153 ":memory_usage_server", 154] 155 156MEMORY_USAGE_TAGS = [ 157 "bazel_only", 158 "no_mac", 159 "no_windows", 160] 161 162grpc_cc_test( 163 name = "memory_usage_test", 164 srcs = ["memory_usage_test.cc"], 165 data = MEMORY_USAGE_DATA, 166 external_deps = [ 167 "absl/algorithm:container", 168 "absl/flags:flag", 169 "absl/flags:parse", 170 "absl/log:log", 171 ], 172 language = "C++", 173 tags = MEMORY_USAGE_TAGS, 174 deps = [ 175 "//:gpr", 176 "//:grpc", 177 "//:subprocess", 178 "//test/core/test_util:grpc_test_util", 179 "//test/core/test_util:grpc_test_util_base", 180 "//test/cpp/end2end/xds:xds_utils", 181 ], 182) 183 184grpc_cc_binary( 185 name = "memory_usage", 186 srcs = ["memory_usage_test.cc"], 187 data = MEMORY_USAGE_DATA, 188 external_deps = [ 189 "absl/algorithm:container", 190 "absl/flags:flag", 191 "absl/flags:parse", 192 ], 193 language = "C++", 194 tags = MEMORY_USAGE_TAGS, 195 deps = [ 196 "//:gpr", 197 "//:grpc", 198 "//:subprocess", 199 "//test/core/test_util:grpc_test_util", 200 "//test/core/test_util:grpc_test_util_base", 201 "//test/cpp/end2end/xds:xds_utils", 202 ], 203) 204