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