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_library", "grpc_cc_binary", "grpc_cc_test", "grpc_package")
18
19grpc_package(
20    name = "test/cpp/util",
21    visibility = "public",
22)
23
24grpc_cc_library(
25    name = "test_config",
26    srcs = [
27        "test_config_cc.cc",
28    ],
29    hdrs = [
30        "test_config.h",
31    ],
32    external_deps = [
33        "gflags",
34    ],
35    deps = [
36        "//:gpr",
37    ],
38)
39
40grpc_cc_library(
41    name = "grpc++_proto_reflection_desc_db",
42    srcs = [
43        "proto_reflection_descriptor_database.cc",
44    ],
45    hdrs = [
46        "proto_reflection_descriptor_database.h",
47    ],
48    deps = [
49        "//:grpc++",
50        "//:grpc++_config_proto",
51        "//src/proto/grpc/reflection/v1alpha:reflection_proto",
52    ],
53)
54
55GRPCXX_TESTUTIL_SRCS = [
56    "byte_buffer_proto_helper.cc",
57    "string_ref_helper.cc",
58    "subprocess.cc",
59]
60
61GRPCXX_TESTUTIL_HDRS = [
62    "byte_buffer_proto_helper.h",
63    "string_ref_helper.h",
64    "subprocess.h",
65]
66
67grpc_cc_library(
68    name = "test_util",
69    srcs = GRPCXX_TESTUTIL_SRCS + [
70        "create_test_channel.cc",
71        "test_credentials_provider.cc",
72    ],
73    hdrs = GRPCXX_TESTUTIL_HDRS + [
74        "create_test_channel.h",
75        "test_credentials_provider.h",
76    ],
77    external_deps = [
78        "protobuf",
79    ],
80    deps = [
81        "//:grpc++",
82        "//test/core/end2end:ssl_test_data",
83        "//test/core/util:grpc_test_util",
84    ],
85)
86
87grpc_cc_library(
88    name = "channel_trace_proto_helper",
89    testonly = 1,
90    srcs = [
91        "channel_trace_proto_helper.cc",
92    ],
93    hdrs = [
94        "channel_trace_proto_helper.h",
95    ],
96    deps = [
97        "//:grpc++",
98        "//src/proto/grpc/channelz:channelz_proto",
99    ],
100    external_deps = [
101        "gtest",
102        "protobuf",
103    ],
104)
105
106grpc_cc_library(
107    name = "test_util_unsecure",
108    srcs = GRPCXX_TESTUTIL_SRCS,
109    hdrs = GRPCXX_TESTUTIL_HDRS,
110    external_deps = [
111        "protobuf",
112    ],
113    deps = [
114        "//:grpc++_unsecure",
115        "//test/core/util:grpc_test_util_unsecure",
116    ],
117)
118
119grpc_cc_library(
120    name = "grpc_cli_libs",
121    srcs = [
122        "cli_call.cc",
123        "cli_credentials.cc",
124        "grpc_tool.cc",
125        "proto_file_parser.cc",
126        "service_describer.cc",
127    ],
128    hdrs = [
129        "cli_call.h",
130        "cli_credentials.h",
131        "config_grpc_cli.h",
132        "grpc_tool.h",
133        "proto_file_parser.h",
134        "service_describer.h",
135    ],
136    external_deps = [
137        "gflags",
138        "protobuf",
139        "protobuf_clib",
140    ],
141    deps = [
142        ":grpc++_proto_reflection_desc_db",
143        "//:grpc++",
144        "//src/proto/grpc/reflection/v1alpha:reflection_proto",
145    ],
146)
147
148grpc_cc_library(
149    name = "metrics_server_lib",
150    srcs = [
151        "metrics_server.cc",
152    ],
153    hdrs = [
154        "metrics_server.h",
155    ],
156    deps = [
157        "//:grpc++",
158        "//src/proto/grpc/testing:metrics_proto",
159    ],
160)
161
162grpc_cc_test(
163    name = "grpc_tool_test",
164    srcs = [
165        "grpc_tool_test.cc",
166    ],
167    data = [
168        "//src/proto/grpc/testing:echo.proto",
169        "//src/proto/grpc/testing:echo_messages.proto",
170    ],
171    external_deps = [
172        "gtest",
173    ],
174    deps = [
175        ":grpc_cli_libs",
176        ":test_util",
177        "//:grpc++_reflection",
178        "//src/proto/grpc/testing:echo_messages_proto",
179        "//src/proto/grpc/testing:echo_proto",
180        "//test/core/end2end:ssl_test_data",
181        "//test/core/util:grpc_test_util",
182    ],
183)
184
185grpc_cc_test(
186    name = "byte_buffer_test",
187    srcs = [
188        "byte_buffer_test.cc",
189    ],
190    external_deps = [
191        "gtest",
192    ],
193    deps = [
194        ":test_util",
195    ],
196)
197
198grpc_cc_test(
199    name = "slice_test",
200    srcs = [
201        "slice_test.cc",
202    ],
203    external_deps = [
204        "gtest",
205    ],
206    deps = [
207        ":test_util",
208    ],
209)
210
211grpc_cc_test(
212    name = "string_ref_test",
213    srcs = [
214        "string_ref_test.cc",
215    ],
216    external_deps = [
217        "gtest",
218    ],
219    deps = [
220        "//:grpc++",
221        "//test/core/util:gpr_test_util",
222    ],
223)
224
225grpc_cc_test(
226    name = "time_test",
227    srcs = [
228        "time_test.cc",
229    ],
230    external_deps = [
231        "gtest",
232    ],
233    deps = [
234        ":test_util",
235    ],
236)
237
238grpc_cc_test(
239    name = "cli_call_test",
240    srcs = [
241        "cli_call_test.cc",
242    ],
243    external_deps = [
244        "gtest",
245    ],
246    deps = [
247        ":grpc_cli_libs",
248        ":test_util",
249        "//src/proto/grpc/testing:echo_proto",
250        "//test/core/util:grpc_test_util",
251    ],
252)
253
254grpc_cc_test(
255    name = "error_details_test",
256    srcs = [
257        "error_details_test.cc",
258    ],
259    external_deps = [
260        "gtest",
261    ],
262    deps = [
263        "//:grpc++_error_details",
264        "//src/proto/grpc/testing:echo_messages_proto",
265        "//test/core/util:gpr_test_util",
266    ],
267)
268
269grpc_cc_binary(
270    name = "grpc_cli",
271    srcs = [
272        "grpc_cli.cc",
273    ],
274    external_deps = [
275        "gflags",
276    ],
277    deps = [
278        ":grpc_cli_libs",
279        ":grpc++_proto_reflection_desc_db",
280        ":test_config",
281        "//:grpc++",
282        "//src/proto/grpc/reflection/v1alpha:reflection_proto",
283    ],
284)
285