• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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