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