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/util:grpc_fuzzer.bzl", "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 proto = "hpack_parser_fuzzer.proto", 28 proto_deps = ["//test/core/util:fuzz_config_vars_proto"], 29 tags = ["no_windows"], 30 uses_polling = False, 31 deps = [ 32 "//:grpc", 33 "//test/core/util:fuzz_config_vars", 34 "//test/core/util:grpc_test_util", 35 "//test/core/util:proto_bit_gen", 36 ], 37) 38 39grpc_proto_fuzzer( 40 name = "hpack_sync_fuzzer", 41 srcs = ["hpack_sync_fuzzer.cc"], 42 corpus = "hpack_sync_corpus", 43 proto = "hpack_sync_fuzzer.proto", 44 proto_deps = ["//test/core/util:fuzz_config_vars_proto"], 45 tags = ["no_windows"], 46 uses_polling = False, 47 deps = [ 48 "//:grpc", 49 "//test/core/util:fuzz_config_vars", 50 "//test/core/util:grpc_test_util", 51 "//test/core/util:proto_bit_gen", 52 ], 53) 54 55grpc_proto_fuzzer( 56 name = "flow_control_fuzzer", 57 srcs = ["flow_control_fuzzer.cc"], 58 corpus = "flow_control_fuzzer_corpus", 59 language = "C++", 60 proto = "flow_control_fuzzer.proto", 61 proto_deps = ["//test/core/util:fuzz_config_vars_proto"], 62 tags = ["no_windows"], 63 uses_event_engine = False, 64 uses_polling = False, 65 deps = [ 66 "//:gpr", 67 "//src/core:chttp2_flow_control", 68 "//test/core/util:fuzz_config_vars", 69 ], 70) 71 72grpc_fuzzer( 73 name = "hpack_parser_input_size_fuzzer", 74 srcs = ["hpack_parser_input_size_fuzzer.cc"], 75 corpus = "hpack_parser_input_size_corpus", 76 external_deps = [ 77 "absl/cleanup", 78 "absl/status:statusor", 79 "absl/status", 80 "absl/random:mocking_bit_gen", 81 ], 82 tags = ["no_windows"], 83 uses_polling = False, 84 deps = [ 85 "//:grpc", 86 "//test/core/util:grpc_test_util", 87 "//test/core/util:grpc_test_util_base", 88 ], 89) 90 91grpc_fuzzer( 92 name = "decode_huff_fuzzer", 93 srcs = ["decode_huff_fuzzer.cc"], 94 corpus = "decode_huff_corpus", 95 external_deps = [ 96 "absl/types:optional", 97 "absl/strings", 98 ], 99 language = "C++", 100 tags = ["no_windows"], 101 deps = [ 102 "//:grpc", 103 "//src/core:decode_huff", 104 "//src/core:huffsyms", 105 ], 106) 107 108grpc_fuzzer( 109 name = "encode_decode_huff_fuzzer", 110 srcs = ["encode_decode_huff_fuzzer.cc"], 111 corpus = "encode_decode_huff_corpus", 112 external_deps = [ 113 "absl/types:optional", 114 "absl/strings", 115 ], 116 language = "C++", 117 tags = ["no_windows"], 118 deps = [ 119 "//:grpc", 120 "//src/core:decode_huff", 121 "//src/core:huffsyms", 122 ], 123) 124 125grpc_cc_test( 126 name = "alpn_test", 127 srcs = ["alpn_test.cc"], 128 external_deps = ["gtest"], 129 language = "C++", 130 deps = [ 131 "//:gpr", 132 "//:grpc", 133 "//test/core/util:grpc_test_util", 134 ], 135) 136 137grpc_cc_test( 138 name = "bin_decoder_test", 139 srcs = ["bin_decoder_test.cc"], 140 external_deps = ["gtest"], 141 language = "C++", 142 uses_event_engine = False, 143 uses_polling = False, 144 deps = [ 145 "//:gpr", 146 "//:grpc", 147 "//src/core:slice", 148 "//test/core/util:grpc_test_util", 149 ], 150) 151 152grpc_cc_test( 153 name = "frame_test", 154 srcs = ["frame_test.cc"], 155 external_deps = ["gtest"], 156 language = "C++", 157 uses_event_engine = False, 158 uses_polling = False, 159 deps = [ 160 "//:chttp2_frame", 161 "//src/core:http2_errors", 162 ], 163) 164 165grpc_cc_test( 166 name = "bin_encoder_test", 167 srcs = ["bin_encoder_test.cc"], 168 external_deps = ["gtest"], 169 language = "C++", 170 uses_event_engine = False, 171 uses_polling = False, 172 deps = [ 173 "//:gpr", 174 "//:grpc", 175 "//src/core:slice", 176 "//test/core/util:grpc_test_util", 177 ], 178) 179 180grpc_cc_test( 181 name = "ping_abuse_policy_test", 182 srcs = ["ping_abuse_policy_test.cc"], 183 external_deps = ["gtest"], 184 language = "C++", 185 uses_polling = False, 186 deps = [ 187 "//:gpr", 188 "//:grpc", 189 "//test/core/util:grpc_test_util", 190 "//test/core/util:grpc_test_util_base", 191 ], 192) 193 194grpc_cc_test( 195 name = "ping_rate_policy_test", 196 srcs = ["ping_rate_policy_test.cc"], 197 external_deps = ["gtest"], 198 language = "C++", 199 uses_polling = False, 200 deps = [ 201 "//:gpr", 202 "//:grpc", 203 "//test/core/util:grpc_test_util", 204 "//test/core/util:grpc_test_util_base", 205 ], 206) 207 208grpc_cc_test( 209 name = "ping_configuration_test", 210 srcs = ["ping_configuration_test.cc"], 211 external_deps = ["gtest"], 212 language = "C++", 213 uses_polling = False, 214 deps = [ 215 "//:gpr", 216 "//:grpc", 217 "//test/core/util:grpc_test_util", 218 "//test/core/util:grpc_test_util_base", 219 ], 220) 221 222grpc_cc_test( 223 name = "ping_callbacks_test", 224 srcs = ["ping_callbacks_test.cc"], 225 external_deps = [ 226 "gtest", 227 "absl/random", 228 ], 229 language = "C++", 230 uses_polling = False, 231 deps = [ 232 "//:gpr", 233 "//:grpc", 234 "//test/core/event_engine:mock_event_engine", 235 ], 236) 237 238grpc_cc_test( 239 name = "write_size_policy_test", 240 srcs = ["write_size_policy_test.cc"], 241 external_deps = [ 242 "gtest", 243 "absl/random", 244 ], 245 language = "C++", 246 uses_polling = False, 247 deps = [ 248 "//src/core:write_size_policy", 249 ], 250) 251 252grpc_cc_test( 253 name = "flow_control_test", 254 srcs = ["flow_control_test.cc"], 255 external_deps = [ 256 "gtest", 257 ], 258 language = "C++", 259 tags = ["flow_control_test"], 260 uses_event_engine = False, 261 uses_polling = False, 262 deps = [ 263 "//src/core:chttp2_flow_control", 264 "//src/core:resource_quota", 265 ], 266) 267 268grpc_cc_test( 269 name = "graceful_shutdown_test", 270 srcs = ["graceful_shutdown_test.cc"], 271 external_deps = ["gtest"], 272 language = "C++", 273 deps = [ 274 "//:gpr", 275 "//:grpc", 276 "//src/core:channel_args", 277 "//src/core:closure", 278 "//src/core:slice", 279 "//test/core/end2end:cq_verifier", 280 "//test/core/util:grpc_test_util", 281 ], 282) 283 284grpc_cc_test( 285 name = "hpack_encoder_test", 286 srcs = ["hpack_encoder_test.cc"], 287 external_deps = ["gtest"], 288 language = "C++", 289 tags = ["hpack_test"], 290 uses_event_engine = False, 291 uses_polling = False, 292 deps = [ 293 "//:gpr", 294 "//:grpc", 295 "//test/core/util:grpc_test_util", 296 "//test/core/util:grpc_test_util_base", 297 ], 298) 299 300grpc_cc_test( 301 name = "hpack_parser_test", 302 srcs = ["hpack_parser_test.cc"], 303 external_deps = ["gtest"], 304 language = "C++", 305 tags = ["hpack_test"], 306 uses_event_engine = False, 307 uses_polling = False, 308 deps = [ 309 "//:gpr", 310 "//:grpc", 311 "//test/core/util:grpc_test_util", 312 "//test/core/util:grpc_test_util_base", 313 ], 314) 315 316grpc_cc_test( 317 name = "hpack_parser_table_test", 318 srcs = ["hpack_parser_table_test.cc"], 319 external_deps = ["gtest"], 320 language = "C++", 321 tags = ["hpack_test"], 322 uses_event_engine = False, 323 uses_polling = False, 324 deps = [ 325 "//:gpr", 326 "//:grpc", 327 "//test/core/util:grpc_test_util", 328 "//test/core/util:grpc_test_util_base", 329 ], 330) 331 332grpc_cc_test( 333 name = "max_concurrent_streams_policy_test", 334 srcs = ["max_concurrent_streams_policy_test.cc"], 335 external_deps = ["gtest"], 336 language = "C++", 337 deps = [ 338 "//src/core:max_concurrent_streams_policy", 339 ], 340) 341 342grpc_cc_test( 343 name = "streams_not_seen_test", 344 srcs = ["streams_not_seen_test.cc"], 345 external_deps = ["gtest"], 346 language = "C++", 347 deps = [ 348 "//:channel_stack_builder", 349 "//:gpr", 350 "//:grpc", 351 "//src/core:channel_args", 352 "//src/core:closure", 353 "//src/core:slice", 354 "//test/core/end2end:cq_verifier", 355 "//test/core/util:grpc_test_util", 356 "//test/core/util:grpc_test_util_base", 357 ], 358) 359 360grpc_cc_test( 361 name = "settings_timeout_test", 362 srcs = ["settings_timeout_test.cc"], 363 external_deps = [ 364 "gtest", 365 ], 366 language = "C++", 367 deps = [ 368 "//:gpr", 369 "//:grpc", 370 "//src/core:closure", 371 "//test/core/util:grpc_test_util", 372 "//test/core/util:grpc_test_util_base", 373 ], 374) 375 376grpc_cc_test( 377 name = "too_many_pings_test", 378 timeout = "long", # Required for internal test infrastructure (cl/325757166) 379 srcs = ["too_many_pings_test.cc"], 380 external_deps = ["gtest"], 381 flaky = True, 382 shard_count = 7, 383 deps = [ 384 "//:gpr", 385 "//:grpc", 386 "//:grpc++", 387 "//src/core:channel_args", 388 "//test/core/end2end:cq_verifier", 389 "//test/core/util:grpc_test_util", 390 "//test/cpp/util:test_config", 391 "//test/cpp/util:test_util", 392 ], 393) 394 395grpc_cc_test( 396 name = "varint_test", 397 srcs = ["varint_test.cc"], 398 external_deps = ["gtest"], 399 language = "C++", 400 uses_event_engine = False, 401 uses_polling = False, 402 deps = [ 403 "//:gpr", 404 "//:grpc", 405 "//test/core/util:grpc_test_util", 406 ], 407) 408 409grpc_cc_test( 410 name = "remove_stream_from_stalled_lists_test", 411 srcs = ["remove_stream_from_stalled_lists_test.cc"], 412 # use LARGE_MACHINE because this test needs a certaim amount 413 # of parallelism in order to reproduce the original crash that it's meant 414 # to regression test for (a crash which is fixed by 415 # https://github.com/grpc/grpc/pull/23984). Experiments show that if this 416 # test doesn't use LARGE_MACHINE, then it will almost never reproduce the 417 # intended crash (as it's meant to before the fix is applied). But with 418 # LARGE_MACHINE, it can reproduce at a high rate. 419 exec_properties = LARGE_MACHINE, 420 external_deps = [ 421 "gtest", 422 ], 423 language = "C++", 424 tags = [ 425 "flow_control_test", 426 "no_windows", 427 ], # LARGE_MACHINE is not configured for windows RBE 428 deps = [ 429 "//:gpr", 430 "//:grpc", 431 "//src/core:channel_args", 432 "//test/core/util:grpc_test_util", 433 ], 434) 435 436grpc_cc_test( 437 name = "stream_leak_with_queued_flow_control_update_test", 438 srcs = ["stream_leak_with_queued_flow_control_update_test.cc"], 439 external_deps = [ 440 "gtest", 441 ], 442 language = "C++", 443 deps = [ 444 "//:gpr", 445 "//:grpc", 446 "//src/core:channel_args", 447 "//test/core/util:grpc_test_util", 448 ], 449) 450 451grpc_cc_test( 452 name = "http2_settings_test", 453 srcs = [ 454 "http2_settings_test.cc", 455 ], 456 external_deps = [ 457 "gtest", 458 ], 459 language = "C++", 460 deps = [ 461 "//:gpr", 462 "//:grpc", 463 "//src/core:http2_settings", 464 "//test/core/util:grpc_test_util", 465 ], 466) 467