1# Copyright 2016 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:custom_exec_properties.bzl", "LARGE_MACHINE") 16load("//bazel:grpc_build_system.bzl", "grpc_cc_test", "grpc_package") 17load("//test/core/test_util:grpc_fuzzer.bzl", "grpc_fuzz_test", "grpc_fuzzer", "grpc_proto_fuzzer") 18 19licenses(["notice"]) 20 21grpc_package(name = "test/core/transport/chttp2") 22 23grpc_proto_fuzzer( 24 name = "hpack_parser_fuzzer", 25 srcs = ["hpack_parser_fuzzer_test.cc"], 26 corpus = "hpack_parser_corpus", 27 external_deps = [ 28 "absl/log:check", 29 ], 30 proto = "hpack_parser_fuzzer.proto", 31 proto_deps = ["//test/core/test_util:fuzz_config_vars_proto"], 32 tags = ["no_windows"], 33 uses_polling = False, 34 deps = [ 35 "//:grpc", 36 "//test/core/test_util:fuzz_config_vars", 37 "//test/core/test_util:grpc_test_util", 38 "//test/core/test_util:proto_bit_gen", 39 ], 40) 41 42grpc_proto_fuzzer( 43 name = "hpack_sync_fuzzer", 44 srcs = ["hpack_sync_fuzzer.cc"], 45 corpus = "hpack_sync_corpus", 46 proto = "hpack_sync_fuzzer.proto", 47 proto_deps = ["//test/core/test_util:fuzz_config_vars_proto"], 48 tags = ["no_windows"], 49 uses_polling = False, 50 deps = [ 51 "//:grpc", 52 "//test/core/test_util:fuzz_config_vars", 53 "//test/core/test_util:grpc_test_util", 54 "//test/core/test_util:proto_bit_gen", 55 ], 56) 57 58grpc_proto_fuzzer( 59 name = "flow_control_fuzzer", 60 srcs = ["flow_control_fuzzer.cc"], 61 corpus = "flow_control_fuzzer_corpus", 62 external_deps = ["absl/log:check"], 63 language = "C++", 64 proto = "flow_control_fuzzer.proto", 65 proto_deps = ["//test/core/test_util:fuzz_config_vars_proto"], 66 tags = ["no_windows"], 67 uses_event_engine = False, 68 uses_polling = False, 69 deps = [ 70 "//:gpr", 71 "//src/core:chttp2_flow_control", 72 "//test/core/test_util:fuzz_config_vars", 73 ], 74) 75 76grpc_fuzzer( 77 name = "hpack_parser_input_size_fuzzer", 78 srcs = ["hpack_parser_input_size_fuzzer.cc"], 79 corpus = "hpack_parser_input_size_corpus", 80 external_deps = [ 81 "absl/cleanup", 82 "absl/status:statusor", 83 "absl/status", 84 "absl/random:mocking_bit_gen", 85 ], 86 tags = ["no_windows"], 87 uses_polling = False, 88 deps = [ 89 "//:grpc", 90 "//test/core/test_util:grpc_test_util", 91 "//test/core/test_util:grpc_test_util_base", 92 ], 93) 94 95grpc_fuzzer( 96 name = "decode_huff_fuzzer", 97 srcs = ["decode_huff_fuzzer.cc"], 98 corpus = "decode_huff_corpus", 99 external_deps = [ 100 "absl/types:optional", 101 "absl/strings", 102 ], 103 language = "C++", 104 tags = ["no_windows"], 105 deps = [ 106 "//:grpc", 107 "//src/core:decode_huff", 108 "//src/core:huffsyms", 109 ], 110) 111 112grpc_fuzzer( 113 name = "encode_decode_huff_fuzzer", 114 srcs = ["encode_decode_huff_fuzzer.cc"], 115 corpus = "encode_decode_huff_corpus", 116 external_deps = [ 117 "absl/types:optional", 118 "absl/strings", 119 ], 120 language = "C++", 121 tags = ["no_windows"], 122 deps = [ 123 "//:grpc", 124 "//src/core:decode_huff", 125 "//src/core:huffsyms", 126 ], 127) 128 129grpc_cc_test( 130 name = "alpn_test", 131 srcs = ["alpn_test.cc"], 132 external_deps = ["gtest"], 133 language = "C++", 134 deps = [ 135 "//:gpr", 136 "//:grpc", 137 "//test/core/test_util:grpc_test_util", 138 ], 139) 140 141grpc_cc_test( 142 name = "bin_decoder_test", 143 srcs = ["bin_decoder_test.cc"], 144 external_deps = [ 145 "absl/log:log", 146 "gtest", 147 ], 148 language = "C++", 149 uses_event_engine = False, 150 uses_polling = False, 151 deps = [ 152 "//:gpr", 153 "//:grpc", 154 "//src/core:slice", 155 "//test/core/test_util:grpc_test_util", 156 ], 157) 158 159grpc_cc_test( 160 name = "frame_test", 161 srcs = ["frame_test.cc"], 162 external_deps = ["gtest"], 163 language = "C++", 164 uses_event_engine = False, 165 uses_polling = False, 166 deps = [ 167 "//:chttp2_frame", 168 "//src/core:http2_errors", 169 ], 170) 171 172grpc_cc_test( 173 name = "bin_encoder_test", 174 srcs = ["bin_encoder_test.cc"], 175 external_deps = [ 176 "absl/log:log", 177 "gtest", 178 ], 179 language = "C++", 180 uses_event_engine = False, 181 uses_polling = False, 182 deps = [ 183 "//:gpr", 184 "//:grpc", 185 "//src/core:slice", 186 "//test/core/test_util:grpc_test_util", 187 ], 188) 189 190grpc_cc_test( 191 name = "ping_abuse_policy_test", 192 srcs = ["ping_abuse_policy_test.cc"], 193 external_deps = ["gtest"], 194 language = "C++", 195 uses_polling = False, 196 deps = [ 197 "//:gpr", 198 "//:grpc", 199 "//test/core/test_util:grpc_test_util", 200 "//test/core/test_util:grpc_test_util_base", 201 ], 202) 203 204grpc_cc_test( 205 name = "ping_rate_policy_test", 206 srcs = ["ping_rate_policy_test.cc"], 207 external_deps = ["gtest"], 208 language = "C++", 209 uses_polling = False, 210 deps = [ 211 "//:gpr", 212 "//:grpc", 213 "//test/core/test_util:grpc_test_util", 214 "//test/core/test_util:grpc_test_util_base", 215 ], 216) 217 218grpc_cc_test( 219 name = "ping_configuration_test", 220 srcs = ["ping_configuration_test.cc"], 221 external_deps = ["gtest"], 222 language = "C++", 223 uses_polling = False, 224 deps = [ 225 "//:gpr", 226 "//:grpc", 227 "//test/core/test_util:grpc_test_util", 228 "//test/core/test_util:grpc_test_util_base", 229 ], 230) 231 232grpc_cc_test( 233 name = "ping_callbacks_test", 234 srcs = ["ping_callbacks_test.cc"], 235 external_deps = [ 236 "gtest", 237 "absl/random", 238 ], 239 language = "C++", 240 uses_polling = False, 241 deps = [ 242 "//:gpr", 243 "//:grpc", 244 "//test/core/event_engine:mock_event_engine", 245 ], 246) 247 248grpc_cc_test( 249 name = "write_size_policy_test", 250 srcs = ["write_size_policy_test.cc"], 251 external_deps = [ 252 "gtest", 253 "absl/random", 254 ], 255 language = "C++", 256 uses_polling = False, 257 deps = [ 258 "//src/core:write_size_policy", 259 ], 260) 261 262grpc_cc_test( 263 name = "flow_control_test", 264 srcs = ["flow_control_test.cc"], 265 external_deps = [ 266 "absl/log:check", 267 "gtest", 268 ], 269 language = "C++", 270 tags = ["flow_control_test"], 271 uses_event_engine = False, 272 uses_polling = False, 273 deps = [ 274 "//src/core:chttp2_flow_control", 275 "//src/core:resource_quota", 276 ], 277) 278 279grpc_cc_test( 280 name = "graceful_shutdown_test", 281 srcs = ["graceful_shutdown_test.cc"], 282 external_deps = [ 283 "absl/log:check", 284 "gtest", 285 ], 286 language = "C++", 287 deps = [ 288 "//:gpr", 289 "//:grpc", 290 "//src/core:channel_args", 291 "//src/core:closure", 292 "//src/core:slice", 293 "//test/core/end2end:cq_verifier", 294 "//test/core/test_util:grpc_test_util", 295 ], 296) 297 298grpc_cc_test( 299 name = "hpack_encoder_test", 300 srcs = ["hpack_encoder_test.cc"], 301 external_deps = [ 302 "absl/log:log", 303 "gtest", 304 ], 305 language = "C++", 306 tags = ["hpack_test"], 307 uses_event_engine = False, 308 uses_polling = False, 309 deps = [ 310 "//:gpr", 311 "//:grpc", 312 "//test/core/test_util:grpc_test_util", 313 "//test/core/test_util:grpc_test_util_base", 314 ], 315) 316 317grpc_cc_test( 318 name = "hpack_parser_test", 319 srcs = ["hpack_parser_test.cc"], 320 external_deps = ["gtest"], 321 language = "C++", 322 tags = ["hpack_test"], 323 uses_event_engine = False, 324 uses_polling = False, 325 deps = [ 326 "//:gpr", 327 "//:grpc", 328 "//test/core/test_util:grpc_test_util", 329 "//test/core/test_util:grpc_test_util_base", 330 ], 331) 332 333grpc_cc_test( 334 name = "hpack_parser_table_test", 335 srcs = ["hpack_parser_table_test.cc"], 336 external_deps = ["gtest"], 337 language = "C++", 338 tags = ["hpack_test"], 339 uses_event_engine = False, 340 uses_polling = False, 341 deps = [ 342 "//:gpr", 343 "//:grpc", 344 "//test/core/test_util:grpc_test_util", 345 "//test/core/test_util:grpc_test_util_base", 346 ], 347) 348 349grpc_cc_test( 350 name = "streams_not_seen_test", 351 srcs = ["streams_not_seen_test.cc"], 352 external_deps = [ 353 "absl/log:check", 354 "gtest", 355 ], 356 language = "C++", 357 deps = [ 358 "//:channel_stack_builder", 359 "//:gpr", 360 "//:grpc", 361 "//src/core:channel_args", 362 "//src/core:closure", 363 "//src/core:slice", 364 "//test/core/end2end:cq_verifier", 365 "//test/core/test_util:grpc_test_util", 366 "//test/core/test_util:grpc_test_util_base", 367 ], 368) 369 370grpc_cc_test( 371 name = "settings_timeout_test", 372 srcs = ["settings_timeout_test.cc"], 373 external_deps = [ 374 "absl/log:check", 375 "absl/log:log", 376 "gtest", 377 ], 378 language = "C++", 379 deps = [ 380 "//:gpr", 381 "//:grpc", 382 "//src/core:closure", 383 "//test/core/test_util:grpc_test_util", 384 "//test/core/test_util:grpc_test_util_base", 385 ], 386) 387 388grpc_cc_test( 389 name = "too_many_pings_test", 390 timeout = "long", # Required for internal test infrastructure (cl/325757166) 391 srcs = ["too_many_pings_test.cc"], 392 external_deps = [ 393 "absl/log:check", 394 "absl/log:log", 395 "gtest", 396 ], 397 flaky = True, 398 shard_count = 7, 399 deps = [ 400 "//:gpr", 401 "//:grpc", 402 "//:grpc++", 403 "//src/core:channel_args", 404 "//test/core/end2end:cq_verifier", 405 "//test/core/test_util:grpc_test_util", 406 "//test/cpp/util:test_config", 407 "//test/cpp/util:test_util", 408 ], 409) 410 411grpc_cc_test( 412 name = "varint_test", 413 srcs = ["varint_test.cc"], 414 external_deps = [ 415 "absl/log:log", 416 "gtest", 417 ], 418 language = "C++", 419 uses_event_engine = False, 420 uses_polling = False, 421 deps = [ 422 "//:gpr", 423 "//:grpc", 424 "//test/core/test_util:grpc_test_util", 425 ], 426) 427 428grpc_cc_test( 429 name = "remove_stream_from_stalled_lists_test", 430 srcs = ["remove_stream_from_stalled_lists_test.cc"], 431 # use LARGE_MACHINE because this test needs a certaim amount 432 # of parallelism in order to reproduce the original crash that it's meant 433 # to regression test for (a crash which is fixed by 434 # https://github.com/grpc/grpc/pull/23984). Experiments show that if this 435 # test doesn't use LARGE_MACHINE, then it will almost never reproduce the 436 # intended crash (as it's meant to before the fix is applied). But with 437 # LARGE_MACHINE, it can reproduce at a high rate. 438 exec_properties = LARGE_MACHINE, 439 external_deps = [ 440 "absl/log:check", 441 "absl/log:log", 442 "gtest", 443 ], 444 language = "C++", 445 tags = [ 446 "flow_control_test", 447 "no_windows", 448 ], # LARGE_MACHINE is not configured for windows RBE 449 deps = [ 450 "//:gpr", 451 "//:grpc", 452 "//src/core:channel_args", 453 "//test/core/test_util:grpc_test_util", 454 ], 455) 456 457grpc_cc_test( 458 name = "stream_leak_with_queued_flow_control_update_test", 459 srcs = ["stream_leak_with_queued_flow_control_update_test.cc"], 460 external_deps = [ 461 "absl/log:check", 462 "absl/log:log", 463 "gtest", 464 ], 465 language = "C++", 466 deps = [ 467 "//:gpr", 468 "//:grpc", 469 "//src/core:channel_args", 470 "//test/core/test_util:grpc_test_util", 471 ], 472) 473 474grpc_cc_test( 475 name = "http2_settings_test", 476 srcs = [ 477 "http2_settings_test.cc", 478 ], 479 external_deps = [ 480 "gtest", 481 ], 482 language = "C++", 483 deps = [ 484 "//:gpr", 485 "//:grpc", 486 "//src/core:http2_settings", 487 "//test/core/test_util:grpc_test_util", 488 ], 489) 490 491grpc_cc_test( 492 name = "http2_client_transport_test", 493 srcs = ["http2_client_transport_test.cc"], 494 external_deps = ["gtest"], 495 language = "C++", 496 uses_polling = False, 497 deps = [ 498 "//:gpr", 499 "//:grpc", 500 "//:grpc_http2_client_transport", 501 "//test/core/test_util:grpc_test_util", 502 "//test/core/test_util:grpc_test_util_base", 503 "//test/core/transport/util:mock_promise_endpoint", 504 ], 505) 506 507grpc_cc_test( 508 name = "http2_server_transport_test", 509 srcs = ["http2_server_transport_test.cc"], 510 external_deps = ["gtest"], 511 language = "C++", 512 uses_polling = False, 513 deps = [ 514 "//:gpr", 515 "//:grpc", 516 "//:grpc_http2_server_transport", 517 "//test/core/test_util:grpc_test_util", 518 "//test/core/test_util:grpc_test_util_base", 519 "//test/core/transport/util:mock_promise_endpoint", 520 ], 521) 522 523grpc_cc_test( 524 name = "chttp2_server_listener_test", 525 srcs = ["chttp2_server_listener_test.cc"], 526 data = [ 527 "//src/core/tsi/test_creds:client.pem", 528 "//src/core/tsi/test_creds:server1.key", 529 "//src/core/tsi/test_creds:server1.pem", 530 ], 531 external_deps = ["gtest"], 532 language = "C++", 533 deps = [ 534 "//:gpr", 535 "//:grpc", 536 "//test/core/end2end:cq_verifier", 537 "//test/core/test_util:grpc_test_util", 538 "//test/core/test_util:grpc_test_util_base", 539 ], 540) 541 542grpc_fuzz_test( 543 name = "write_size_policy_fuzztest", 544 srcs = ["write_size_policy_fuzztest.cc"], 545 external_deps = [ 546 "fuzztest", 547 "fuzztest_main", 548 "gtest", 549 ], 550 deps = ["//src/core:write_size_policy"], 551) 552 553grpc_fuzz_test( 554 name = "hpack_encoder_timeout_test", 555 srcs = ["hpack_encoder_timeout_test.cc"], 556 external_deps = [ 557 "absl/random", 558 "fuzztest", 559 "fuzztest_main", 560 "gtest", 561 ], 562 deps = [ 563 "//:grpc_base", 564 "//:hpack_encoder", 565 "//:hpack_parser", 566 "//:ref_counted_ptr", 567 "//src/core:arena", 568 "//src/core:memory_quota", 569 "//src/core:metadata_batch", 570 "//src/core:resource_quota", 571 "//src/core:slice_buffer", 572 "//src/core:time", 573 ], 574) 575