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