xref: /aosp_15_r20/external/grpc-grpc/test/core/util/BUILD (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
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_library", "grpc_cc_test", "grpc_package", "grpc_proto_library")
16
17licenses(["notice"])
18
19grpc_package(
20    name = "test/core/util",
21    visibility = "public",
22)
23
24grpc_cc_library(
25    name = "grpc_suppressions",
26    data = [
27        "lsan_suppressions.txt",
28        "tsan_suppressions.txt",
29        "ubsan_suppressions.txt",
30    ],
31)
32
33TEST_UTILS_THAT_USE_GRPC_H_SOURCES = [
34    "port.cc",
35    "port_isolated_runtime_environment.cc",
36    "port_server_client.cc",
37    "reconnect_server.cc",
38    "test_config.cc",
39    "test_tcp_server.cc",
40]
41
42TEST_UTILS_THAT_USE_GRPC_H_HEADERS = [
43    "port.h",
44    "reconnect_server.h",
45    "port_server_client.h",
46    "test_config.h",
47    "test_tcp_server.h",
48]
49
50grpc_cc_library(
51    name = "proto_bit_gen",
52    language = "c++",
53    public_hdrs = ["proto_bit_gen.h"],
54    deps = ["//:gpr_platform"],
55)
56
57grpc_cc_library(
58    name = "grpc_test_util_base",
59    srcs = [
60        "cmdline.cc",
61        "fuzzer_util.cc",
62        "grpc_profiler.cc",
63        "histogram.cc",
64        "mock_endpoint.cc",
65        "parse_hexstring.cc",
66        "resolve_localhost_ip46.cc",
67        "slice_splitter.cc",
68        "tracer_util.cc",
69    ],
70    hdrs = [
71        "cmdline.h",
72        "evaluate_args_test_util.h",
73        "fuzzer_util.h",
74        "grpc_profiler.h",
75        "histogram.h",
76        "mock_authorization_endpoint.h",
77        "mock_endpoint.h",
78        "parse_hexstring.h",
79        "resolve_localhost_ip46.h",
80        "slice_splitter.h",
81        "tracer_util.h",
82    ],
83    external_deps = [
84        "absl/status:statusor",
85        "absl/strings",
86        "absl/strings:str_format",
87        "absl/types:span",
88    ],
89    language = "C++",
90    tags = ["nofixdeps"],
91    deps = [
92        "//:debug_location",
93        "//:gpr",
94        "//:grpc_base",
95        "//:grpc_security_base",
96        "//:grpc_trace",
97        "//:iomgr_timer",
98        "//:ref_counted_ptr",
99        "//src/core:arena",
100        "//src/core:closure",
101        "//src/core:grpc_authorization_base",
102        "//src/core:grpc_sockaddr",
103        "//src/core:iomgr_fwd",
104        "//src/core:memory_quota",
105        "//src/core:resolved_address",
106        "//src/core:resource_quota",
107        "//src/core:slice",
108        "//src/core:slice_refcount",
109        "//src/core:time",
110        "//src/core:useful",
111    ],
112)
113
114grpc_cc_library(
115    name = "grpc_test_util",
116    srcs = TEST_UTILS_THAT_USE_GRPC_H_SOURCES + ["tls_utils.cc"],
117    hdrs = TEST_UTILS_THAT_USE_GRPC_H_HEADERS + ["tls_utils.h"],
118    external_deps = [
119        "absl/base:core_headers",
120        "absl/debugging:failure_signal_handler",
121        "absl/status",
122        "absl/status:statusor",
123        "absl/strings",
124        "absl/strings:str_format",
125    ],
126    language = "C++",
127    deps = [
128        "build",
129        "stack_tracer",
130        "//:config",
131        "//:exec_ctx",
132        "//:gpr",
133        "//:grpc",
134        "//:grpc_public_hdrs",
135        "//:grpc_security_base",
136        "//:httpcli",
137        "//:orphanable",
138        "//:ref_counted_ptr",
139        "//:tsi_ssl_credentials",
140        "//:uri_parser",
141        "//src/core:channel_args_endpoint_config",
142        "//src/core:channel_args_preconditioning",
143        "//src/core:closure",
144        "//src/core:error",
145        "//src/core:gpr_atm",
146        "//src/core:grpc_sockaddr",
147        "//src/core:iomgr_fwd",
148        "//src/core:iomgr_port",
149        "//src/core:load_file",
150        "//src/core:resolved_address",
151        "//src/core:slice",
152        "//src/core:slice_refcount",
153        "//src/core:status_helper",
154        "//src/core:time",
155        "//test/core/event_engine:test_init",
156    ],
157    alwayslink = 1,
158)
159
160grpc_cc_library(
161    name = "grpc_test_util_unsecure",
162    srcs = TEST_UTILS_THAT_USE_GRPC_H_SOURCES,
163    hdrs = TEST_UTILS_THAT_USE_GRPC_H_HEADERS,
164    external_deps = [
165        "absl/debugging:failure_signal_handler",
166        "absl/status",
167        "absl/status:statusor",
168        "absl/strings",
169        "absl/strings:str_format",
170    ],
171    language = "C++",
172    deps = [
173        "build",
174        "stack_tracer",
175        "//:config",
176        "//:exec_ctx",
177        "//:gpr",
178        "//:grpc_security_base",
179        "//:grpc_unsecure",
180        "//:httpcli",
181        "//:orphanable",
182        "//:ref_counted_ptr",
183        "//:uri_parser",
184        "//src/core:channel_args_endpoint_config",
185        "//src/core:channel_args_preconditioning",
186        "//src/core:closure",
187        "//src/core:error",
188        "//src/core:gpr_atm",
189        "//src/core:grpc_sockaddr",
190        "//src/core:iomgr_fwd",
191        "//src/core:iomgr_port",
192        "//src/core:resolved_address",
193        "//src/core:status_helper",
194        "//src/core:time",
195        "//test/core/event_engine:test_init",
196    ],
197    alwayslink = 1,
198)
199
200grpc_cc_test(
201    name = "cmdline_test",
202    srcs = ["cmdline_test.cc"],
203    external_deps = ["gtest"],
204    language = "C++",
205    uses_event_engine = False,
206    uses_polling = False,
207    deps = [
208        "grpc_test_util",
209        "grpc_test_util_base",
210        "//:gpr",
211        "//src/core:useful",
212    ],
213)
214
215grpc_cc_library(
216    name = "fuzzer_corpus_test",
217    testonly = 1,
218    srcs = ["fuzzer_corpus_test.cc"],
219    external_deps = [
220        "absl/flags:flag",
221        "gtest",
222    ],
223    linkstatic = True,
224    tags = [
225        "no_windows",
226        "nofixdeps",
227    ],
228    deps = [
229        ":grpc_test_util",
230        "//:grpc",
231        "//test/cpp/util:test_config",
232    ],
233)
234
235grpc_cc_test(
236    name = "histogram_test",
237    srcs = ["histogram_test.cc"],
238    external_deps = ["gtest"],
239    language = "C++",
240    tags = ["nofixdeps"],
241    uses_event_engine = False,
242    uses_polling = False,
243    deps = [
244        "grpc_test_util",
245        "grpc_test_util_base",
246        "//:gpr",
247    ],
248)
249
250sh_library(
251    name = "fuzzer_one_entry_runner",
252    srcs = ["fuzzer_one_entry_runner.sh"],
253)
254
255grpc_cc_library(
256    name = "stack_tracer",
257    srcs = [
258        "stack_tracer.cc",
259    ],
260    hdrs = [
261        "stack_tracer.h",
262    ],
263    external_deps = [
264        "absl/debugging:stacktrace",
265        "absl/debugging:symbolize",
266    ],
267    language = "C++",
268    deps = [
269        "//:gpr_platform",
270        "//src/core:examine_stack",
271    ],
272)
273
274grpc_cc_test(
275    name = "stack_tracer_test",
276    srcs = [
277        "stack_tracer_test.cc",
278    ],
279    external_deps = [
280        "absl/strings",
281        "gtest",
282    ],
283    language = "C++",
284    # TODO(https://github.com/grpc/grpc/issues/24627): Disable this on Windows
285    tags = ["no_windows"],
286    uses_event_engine = False,
287    uses_polling = False,
288    deps = [
289        "grpc_test_util",
290        "stack_tracer",
291        "//:gpr",
292    ],
293)
294
295grpc_cc_library(
296    name = "test_lb_policies",
297    testonly = 1,
298    srcs = ["test_lb_policies.cc"],
299    hdrs = ["test_lb_policies.h"],
300    external_deps = [
301        "absl/status",
302        "absl/status:statusor",
303        "absl/strings",
304        "absl/types:variant",
305    ],
306    deps = [
307        "//:config",
308        "//:endpoint_addresses",
309        "//:gpr",
310        "//:grpc",
311        "//:grpc_client_channel",
312        "//:oob_backend_metric",
313        "//:orphanable",
314        "//:parse_address",
315        "//:ref_counted_ptr",
316        "//:uri_parser",
317        "//src/core:channel_args",
318        "//src/core:delegating_helper",
319        "//src/core:error",
320        "//src/core:grpc_backend_metric_data",
321        "//src/core:json",
322        "//src/core:json_util",
323        "//src/core:lb_policy",
324        "//src/core:lb_policy_factory",
325        "//src/core:lb_policy_registry",
326        "//src/core:pollset_set",
327        "//src/core:resolved_address",
328        "//src/core:status_helper",
329        "//src/core:subchannel_interface",
330        "//src/core:time",
331    ],
332)
333
334grpc_cc_library(
335    name = "fake_udp_and_tcp_server",
336    srcs = ["fake_udp_and_tcp_server.cc"],
337    hdrs = ["fake_udp_and_tcp_server.h"],
338    external_deps = [
339        "absl/status:statusor",
340        "absl/strings",
341    ],
342    language = "C++",
343    deps = [
344        "grpc_test_util",
345        "//:gpr",
346        "//:grpc",
347        "//:sockaddr_utils",
348        "//src/core:resolved_address",
349    ],
350)
351
352grpc_cc_library(
353    name = "fake_udp_and_tcp_server_unsecure",
354    srcs = ["fake_udp_and_tcp_server.cc"],
355    hdrs = ["fake_udp_and_tcp_server.h"],
356    external_deps = [
357        "absl/status:statusor",
358        "absl/strings",
359    ],
360    language = "C++",
361    deps = [
362        "grpc_test_util_unsecure",
363        "//:gpr",
364        "//:grpc",
365        "//:sockaddr_utils",
366        "//src/core:resolved_address",
367    ],
368)
369
370grpc_cc_library(
371    name = "socket_use_after_close_detector",
372    testonly = True,
373    srcs = ["socket_use_after_close_detector.cc"],
374    hdrs = ["socket_use_after_close_detector.h"],
375    external_deps = ["gtest"],
376    language = "C++",
377    deps = [
378        "grpc_test_util",
379        "//:gpr",
380        "//:grpc",
381        "//src/core:grpc_sockaddr",
382    ],
383)
384
385grpc_cc_library(
386    name = "socket_use_after_close_detector_unsecure",
387    testonly = True,
388    srcs = ["socket_use_after_close_detector.cc"],
389    hdrs = ["socket_use_after_close_detector.h"],
390    external_deps = ["gtest"],
391    language = "C++",
392    deps = [
393        "grpc_test_util_unsecure",
394        "//:gpr",
395        "//:grpc",
396        "//src/core:grpc_sockaddr",
397    ],
398)
399
400grpc_cc_library(
401    name = "build",
402    srcs = ["build.cc"],
403    hdrs = ["build.h"],
404)
405
406grpc_cc_library(
407    name = "osa_distance",
408    srcs = ["osa_distance.cc"],
409    hdrs = ["osa_distance.h"],
410    external_deps = ["absl/strings"],
411)
412
413grpc_cc_test(
414    name = "osa_distance_test",
415    srcs = ["osa_distance_test.cc"],
416    external_deps = ["gtest"],
417    deps = ["osa_distance"],
418)
419
420grpc_cc_library(
421    name = "scoped_env_var",
422    testonly = True,
423    hdrs = ["scoped_env_var.h"],
424    deps = [
425        "//:gpr_platform",
426        "//src/core:env",
427    ],
428)
429
430grpc_proto_library(
431    name = "fuzz_config_vars_proto",
432    srcs = ["fuzz_config_vars.proto"],
433    has_services = False,
434)
435
436grpc_cc_library(
437    name = "fuzz_config_vars",
438    srcs = ["fuzz_config_vars.cc"],
439    hdrs = ["fuzz_config_vars.h"],
440    external_deps = ["absl/types:optional"],
441    deps = [
442        "fuzz_config_vars_helpers",
443        "fuzz_config_vars_proto",
444        "//:config_vars",
445        "//:gpr_platform",
446    ],
447)
448
449grpc_cc_library(
450    name = "fuzz_config_vars_helpers",
451    srcs = ["fuzz_config_vars_helpers.cc"],
452    hdrs = ["fuzz_config_vars_helpers.h"],
453    external_deps = ["absl/strings"],
454    deps = [
455        "//:gpr_platform",
456        "//src/core:experiments",
457    ],
458)
459
460grpc_cc_library(
461    name = "audit_logging_utils",
462    srcs = ["audit_logging_utils.cc"],
463    hdrs = ["audit_logging_utils.h"],
464    external_deps = [
465        "absl/status:statusor",
466        "absl/strings",
467    ],
468    deps = [
469        "//:gpr",
470        "//:gpr_platform",
471        "//:grpc",
472        "//src/core:json_writer",
473    ],
474)
475
476grpc_proto_library(
477    name = "fuzzing_channel_args_proto",
478    srcs = ["fuzzing_channel_args.proto"],
479    has_services = False,
480)
481
482grpc_cc_library(
483    name = "fuzzing_channel_args",
484    srcs = ["fuzzing_channel_args.cc"],
485    hdrs = ["fuzzing_channel_args.h"],
486    deps = [
487        "fuzzing_channel_args_proto",
488        "//:gpr_platform",
489        "//:ref_counted_ptr",
490        "//src/core:channel_args",
491        "//src/core:resource_quota",
492    ],
493)
494
495grpc_cc_library(
496    name = "fake_stats_plugin",
497    testonly = True,
498    srcs = ["fake_stats_plugin.cc"],
499    hdrs = ["fake_stats_plugin.h"],
500    external_deps = [
501        "absl/container:flat_hash_map",
502        "absl/functional:any_invocable",
503        "absl/status",
504        "absl/strings",
505        "absl/types:optional",
506        "absl/types:span",
507        "gtest",
508    ],
509    deps = [
510        "//:grpc",
511        "//src/core:examine_stack",
512        "//src/core:metrics",
513    ],
514)
515