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_binary", "grpc_cc_library", "grpc_cc_test", "grpc_package") 16 17licenses(["notice"]) 18 19grpc_package( 20 name = "test/cpp/interop", 21 visibility = "public", 22) 23 24grpc_cc_library( 25 name = "server_helper_lib", 26 srcs = [ 27 "server_helper.cc", 28 ], 29 hdrs = [ 30 "server_helper.h", 31 ], 32 external_deps = [ 33 "absl/flags:flag", 34 ], 35 language = "C++", 36 deps = [ 37 "//test/cpp/util:test_util", 38 ], 39) 40 41grpc_cc_binary( 42 name = "grpclb_fallback_test", 43 srcs = [ 44 "grpclb_fallback_test.cc", 45 ], 46 external_deps = [ 47 "absl/flags:flag", 48 "absl/log:check", 49 "absl/log:log", 50 "absl/time:time", 51 ], 52 language = "C++", 53 tags = ["no_windows"], 54 deps = [ 55 "//:grpc++", 56 "//src/proto/grpc/testing:empty_cc_proto", 57 "//src/proto/grpc/testing:messages_cc_proto", 58 "//src/proto/grpc/testing:test_cc_grpc", 59 "//test/cpp/util:test_config", 60 "//test/cpp/util:test_util", 61 ], 62) 63 64grpc_cc_binary( 65 name = "interop_server", 66 srcs = [ 67 "interop_server_bootstrap.cc", 68 ], 69 external_deps = [ 70 "absl/flags:flag", 71 "absl/log:check", 72 ], 73 language = "C++", 74 deps = [ 75 ":interop_server_lib", 76 "//:grpc++", 77 "//test/cpp/util:test_util", 78 ], 79) 80 81grpc_cc_library( 82 name = "interop_server_lib", 83 srcs = [ 84 "interop_server.cc", 85 ], 86 external_deps = [ 87 "absl/log:check", 88 ], 89 language = "C++", 90 deps = [ 91 ":server_helper_lib", 92 "//:grpcpp_orca_service", 93 "//src/proto/grpc/testing:empty_cc_proto", 94 "//src/proto/grpc/testing:messages_cc_proto", 95 "//src/proto/grpc/testing:test_cc_grpc", 96 "//test/cpp/util:test_config", 97 ], 98) 99 100grpc_cc_library( 101 name = "client_helper_lib", 102 srcs = [ 103 "client_helper.cc", 104 "interop_client.cc", 105 ], 106 hdrs = [ 107 "client_helper.h", 108 "interop_client.h", 109 ], 110 external_deps = [ 111 "absl/flags:flag", 112 "absl/log:check", 113 "absl/log:log", 114 ], 115 language = "C++", 116 deps = [ 117 ":backend_metrics_lb_policy", 118 "//src/proto/grpc/testing:empty_cc_proto", 119 "//src/proto/grpc/testing:messages_cc_proto", 120 "//src/proto/grpc/testing:test_cc_grpc", 121 "//test/core/security:oauth2_utils", 122 "//test/cpp/util:test_config", 123 "//test/cpp/util:test_util", 124 ], 125) 126 127grpc_cc_library( 128 name = "interop_client_main", 129 srcs = [ 130 "client.cc", 131 ], 132 external_deps = [ 133 "absl/flags:flag", 134 ], 135 language = "C++", 136 deps = [ 137 ":client_helper_lib", 138 ], 139) 140 141grpc_cc_binary( 142 name = "interop_client", 143 external_deps = ["absl/log:check"], 144 language = "C++", 145 deps = [ 146 ":interop_client_main", 147 "//:grpc++", 148 "//test/cpp/util:test_util", 149 ], 150) 151 152grpc_cc_binary( 153 name = "metrics_client", 154 srcs = ["metrics_client.cc"], 155 external_deps = [ 156 "absl/flags:flag", 157 ], 158 language = "C++", 159 deps = [ 160 "//:grpc++", 161 "//test/core/test_util:grpc_test_util", 162 "//test/cpp/util:metrics_server_lib", 163 "//test/cpp/util:test_config", 164 ], 165) 166 167grpc_cc_binary( 168 name = "reconnect_interop_client", 169 srcs = [ 170 "reconnect_interop_client.cc", 171 ], 172 external_deps = [ 173 "absl/flags:flag", 174 "absl/log:check", 175 ], 176 deps = [ 177 ":client_helper_lib", 178 "//:grpc++", 179 "//test/core/test_util:grpc_test_util", 180 ], 181) 182 183grpc_cc_binary( 184 name = "reconnect_interop_server", 185 srcs = [ 186 "reconnect_interop_server.cc", 187 ], 188 external_deps = [ 189 "absl/flags:flag", 190 "absl/log:check", 191 ], 192 language = "C++", 193 deps = [ 194 ":interop_server_lib", 195 "//:grpc++", 196 "//test/core/test_util:grpc_test_util", 197 ], 198) 199 200grpc_cc_binary( 201 name = "stress_test", 202 srcs = [ 203 "stress_interop_client.cc", 204 "stress_interop_client.h", 205 "stress_test.cc", 206 ], 207 external_deps = [ 208 "absl/flags:flag", 209 "absl/log:check", 210 "absl/log:globals", 211 "absl/log:log", 212 ], 213 deps = [ 214 ":client_helper_lib", 215 "//:grpc++", 216 "//test/cpp/util:metrics_server_lib", 217 "//test/cpp/util:test_config", 218 ], 219) 220 221grpc_cc_binary( 222 name = "interop_test", 223 srcs = ["interop_test.cc"], 224 data = [ 225 ":interop_client", 226 ":interop_server", 227 ], 228 external_deps = [ 229 "absl/flags:flag", 230 ], 231 tags = ["no_windows"], 232 deps = [ 233 "//:gpr", 234 "//:grpc", 235 "//:grpc++", 236 "//test/core/test_util:grpc_test_util", 237 "//test/cpp/util:test_config", 238 "//test/cpp/util:test_util", 239 ], 240) 241 242sh_test( 243 name = "interop_test_with_metadata_log", 244 srcs = [ 245 "interop_test_with_metadata_log.sh", 246 ], 247 data = [ 248 ":interop_test", 249 ], 250 tags = ["no_windows"], 251) 252 253grpc_cc_library( 254 name = "xds_stats_watcher", 255 srcs = ["xds_stats_watcher.cc"], 256 hdrs = ["xds_stats_watcher.h"], 257 external_deps = [ 258 "absl/log:check", 259 ], 260 deps = [ 261 ":rpc_behavior_lb_policy", 262 "//:grpc++", 263 "//:grpc++_reflection", 264 "//:grpcpp_admin", 265 "//src/proto/grpc/testing:empty_cc_proto", 266 "//src/proto/grpc/testing:messages_cc_proto", 267 "//src/proto/grpc/testing:test_cc_grpc", 268 "//test/core/test_util:grpc_test_util", 269 "//test/cpp/util:test_config", 270 ], 271) 272 273grpc_cc_test( 274 name = "xds_stats_watcher_test", 275 srcs = [ 276 "xds_stats_watcher_test.cc", 277 ], 278 external_deps = ["gtest"], 279 deps = [":xds_stats_watcher"], 280) 281 282grpc_cc_binary( 283 name = "xds_interop_client", 284 srcs = [ 285 "xds_interop_client.cc", 286 ], 287 external_deps = [ 288 "absl/flags:flag", 289 "absl/log:check", 290 "otel/exporters/prometheus:prometheus_exporter", 291 "otel/sdk/src/metrics", 292 ], 293 deps = [ 294 ":rpc_behavior_lb_policy", 295 ":xds_stats_watcher", 296 "//:grpc++", 297 "//:grpc++_reflection", 298 "//:grpcpp_admin", 299 "//:grpcpp_csm_observability", 300 "//src/proto/grpc/testing:empty_cc_proto", 301 "//src/proto/grpc/testing:messages_cc_proto", 302 "//src/proto/grpc/testing:test_cc_grpc", 303 "//test/core/test_util:grpc_test_util", 304 "//test/cpp/util:test_config", 305 ], 306) 307 308grpc_cc_library( 309 name = "xds_interop_server_lib", 310 testonly = True, 311 srcs = [ 312 "pre_stop_hook_server.cc", 313 "xds_interop_server_lib.cc", 314 ], 315 hdrs = [ 316 "pre_stop_hook_server.h", 317 "xds_interop_server_lib.h", 318 ], 319 deps = [ 320 "//:grpc++", 321 "//:grpc++_reflection", 322 "//:grpcpp_admin", 323 "//src/proto/grpc/testing:empty_cc_proto", 324 "//src/proto/grpc/testing:messages_cc_proto", 325 "//src/proto/grpc/testing:test_cc_grpc", 326 "//test/cpp/end2end:test_health_check_service_impl", 327 ], 328) 329 330grpc_cc_binary( 331 name = "xds_interop_server", 332 testonly = True, 333 srcs = [ 334 "xds_interop_server.cc", 335 ], 336 external_deps = [ 337 "absl/flags:flag", 338 "otel/exporters/prometheus:prometheus_exporter", 339 "otel/sdk/src/metrics", 340 ], 341 deps = [ 342 ":xds_interop_server_lib", 343 "//:grpc++", 344 "//:grpcpp_csm_observability", 345 "//test/core/test_util:grpc_test_util", 346 "//test/cpp/end2end:test_health_check_service_impl", 347 "//test/cpp/util:test_config", 348 ], 349) 350 351grpc_cc_test( 352 name = "pre_stop_hook_server_test", 353 srcs = [ 354 "pre_stop_hook_server_test.cc", 355 ], 356 external_deps = ["gtest"], 357 deps = [ 358 ":xds_interop_server_lib", 359 "//:grpc++", 360 "//src/proto/grpc/testing:istio_echo_cc_grpc", 361 "//test/core/test_util:grpc_test_util", 362 "//test/cpp/util:test_config", 363 ], 364) 365 366grpc_cc_test( 367 name = "xds_interop_server_test", 368 srcs = [ 369 "xds_interop_server_test.cc", 370 ], 371 external_deps = ["gtest"], 372 deps = [ 373 ":xds_interop_server_lib", 374 "//:grpc++", 375 "//src/proto/grpc/testing:istio_echo_cc_grpc", 376 "//test/core/test_util:grpc_test_util", 377 "//test/cpp/util:test_config", 378 ], 379) 380 381grpc_cc_library( 382 name = "istio_echo_server_lib", 383 srcs = [ 384 "istio_echo_server_lib.cc", 385 ], 386 hdrs = ["istio_echo_server_lib.h"], 387 deps = [ 388 "//:grpc++", 389 "//src/proto/grpc/testing:istio_echo_cc_grpc", 390 ], 391) 392 393grpc_cc_binary( 394 name = "istio_echo_server", 395 srcs = [ 396 "istio_echo_server.cc", 397 ], 398 external_deps = [ 399 "absl/flags:flag", 400 ], 401 deps = [ 402 ":istio_echo_server_lib", 403 "//:grpc++", 404 "//:grpc++_reflection", 405 "//:grpcpp_admin", 406 "//src/proto/grpc/testing:istio_echo_cc_grpc", 407 "//test/core/test_util:grpc_test_util", 408 "//test/cpp/util:test_config", 409 ], 410) 411 412grpc_cc_test( 413 name = "istio_echo_server_test", 414 srcs = [ 415 "istio_echo_server_test.cc", 416 ], 417 external_deps = ["gtest"], 418 deps = [ 419 ":istio_echo_server_lib", 420 "//:grpc++", 421 "//src/proto/grpc/testing:istio_echo_cc_grpc", 422 "//test/core/test_util:grpc_test_util", 423 "//test/cpp/util:test_config", 424 ], 425) 426 427grpc_cc_binary( 428 name = "http2_client", 429 srcs = [ 430 "http2_client.cc", 431 "http2_client.h", 432 ], 433 external_deps = [ 434 "absl/flags:flag", 435 "absl/log:check", 436 "absl/log:log", 437 ], 438 deps = [ 439 "//:grpc++", 440 "//src/proto/grpc/testing:empty_cc_proto", 441 "//src/proto/grpc/testing:messages_cc_proto", 442 "//src/proto/grpc/testing:test_cc_grpc", 443 "//test/core/test_util:grpc_test_util", 444 "//test/cpp/util:test_config", 445 "//test/cpp/util:test_util", 446 ], 447) 448 449grpc_cc_binary( 450 name = "xds_federation_client", 451 srcs = [ 452 "xds_federation_client.cc", 453 ], 454 external_deps = [ 455 "absl/flags:flag", 456 "absl/log:check", 457 ], 458 language = "C++", 459 deps = [ 460 ":client_helper_lib", 461 "//:grpc++", 462 "//test/cpp/util:test_config", 463 ], 464) 465 466grpc_cc_binary( 467 name = "observability_interop_server", 468 srcs = [ 469 "observability_interop_server_bootstrap.cc", 470 ], 471 external_deps = [ 472 "absl/flags:flag", 473 ], 474 language = "C++", 475 tags = ["nobuilder"], 476 deps = [ 477 ":interop_server_lib", 478 "//:grpc++", 479 "//:grpcpp_gcp_observability", 480 "//test/cpp/util:test_util", 481 ], 482) 483 484grpc_cc_library( 485 name = "observability_interop_client_main", 486 srcs = [ 487 "observability_client.cc", 488 ], 489 external_deps = [ 490 "absl/flags:flag", 491 "otel/exporters/prometheus:prometheus_exporter", 492 "otel/sdk/src/metrics", 493 ], 494 language = "C++", 495 tags = ["nobuilder"], 496 deps = [ 497 ":client_helper_lib", 498 "//:grpcpp_gcp_observability", 499 "//src/cpp/ext/otel:otel_plugin", 500 ], 501) 502 503grpc_cc_binary( 504 name = "observability_interop_client", 505 language = "C++", 506 tags = ["nobuilder"], 507 deps = [ 508 ":observability_interop_client_main", 509 "//:grpc++", 510 "//test/cpp/util:test_util", 511 ], 512) 513 514grpc_cc_binary( 515 name = "observability_interop_test", 516 srcs = ["interop_test.cc"], 517 data = [ 518 ":observability_interop_client", 519 ":observability_interop_server", 520 ], 521 external_deps = [ 522 "absl/flags:flag", 523 ], 524 tags = [ 525 "no_windows", 526 "nobuilder", 527 ], 528 deps = [ 529 "//:gpr", 530 "//:grpc", 531 "//:grpc++", 532 "//test/core/test_util:grpc_test_util", 533 "//test/cpp/util:test_config", 534 "//test/cpp/util:test_util", 535 ], 536) 537 538grpc_cc_library( 539 name = "backend_metrics_lb_policy", 540 srcs = [ 541 "backend_metrics_lb_policy.cc", 542 ], 543 hdrs = [ 544 "backend_metrics_lb_policy.h", 545 ], 546 external_deps = [ 547 "absl/log:check", 548 ], 549 language = "C++", 550 tags = ["nobuilder"], 551 deps = [ 552 "//:grpc", 553 "//:grpc++", 554 "//src/proto/grpc/testing:messages_cc_proto", 555 ], 556) 557 558grpc_cc_test( 559 name = "backend_metrics_lb_policy_test", 560 srcs = [ 561 "backend_metrics_lb_policy_test.cc", 562 ], 563 external_deps = ["gtest"], 564 deps = [ 565 ":backend_metrics_lb_policy", 566 "//:grpc++", 567 "//:grpcpp_orca_service", 568 "//src/proto/grpc/testing:test_cc_grpc", 569 "//test/core/test_util:grpc_test_util", 570 "//test/cpp/util:test_config", 571 ], 572) 573 574grpc_cc_library( 575 name = "rpc_behavior_lb_policy", 576 srcs = [ 577 "rpc_behavior_lb_policy.cc", 578 ], 579 hdrs = [ 580 "rpc_behavior_lb_policy.h", 581 ], 582 external_deps = [ 583 "absl/log:check", 584 ], 585 language = "C++", 586 tags = ["nobuilder"], 587 deps = [ 588 "//:grpc", 589 "//:grpc++", 590 ], 591) 592