1# Copyright 2020 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( 16 "//bazel:grpc_build_system.bzl", 17 "grpc_cc_library", 18 "grpc_cc_test", 19 "grpc_package", 20) 21load("//test/core/test_util:grpc_fuzzer.bzl", "grpc_proto_fuzzer") 22 23grpc_package(name = "test/core/xds") 24 25licenses(["notice"]) 26 27grpc_cc_test( 28 name = "xds_bootstrap_test", 29 srcs = ["xds_bootstrap_test.cc"], 30 external_deps = [ 31 "gtest", 32 ], 33 language = "C++", 34 uses_event_engine = False, 35 uses_polling = False, 36 deps = [ 37 "//:gpr", 38 "//src/core:grpc_xds_client", 39 "//src/core:xds_server_grpc", 40 "//test/core/test_util:grpc_test_util", 41 ], 42) 43 44grpc_cc_test( 45 name = "certificate_provider_store_test", 46 srcs = ["certificate_provider_store_test.cc"], 47 external_deps = [ 48 "absl/log:check", 49 "gtest", 50 ], 51 language = "C++", 52 uses_event_engine = False, 53 uses_polling = False, 54 deps = [ 55 "//:gpr", 56 "//:grpc", 57 "//test/core/test_util:grpc_test_util", 58 ], 59) 60 61grpc_cc_test( 62 name = "file_watcher_certificate_provider_factory_test", 63 srcs = ["file_watcher_certificate_provider_factory_test.cc"], 64 external_deps = ["gtest"], 65 language = "C++", 66 uses_event_engine = False, 67 uses_polling = False, 68 deps = [ 69 "//:gpr", 70 "//:grpc", 71 "//test/core/test_util:grpc_test_util", 72 ], 73) 74 75grpc_cc_test( 76 name = "xds_certificate_provider_test", 77 srcs = ["xds_certificate_provider_test.cc"], 78 external_deps = ["gtest"], 79 language = "C++", 80 uses_event_engine = False, 81 uses_polling = False, 82 deps = [ 83 "//:gpr", 84 "//:grpc", 85 "//test/core/test_util:grpc_test_util", 86 ], 87) 88 89grpc_cc_test( 90 name = "xds_lb_policy_registry_test", 91 srcs = ["xds_lb_policy_registry_test.cc"], 92 external_deps = ["gtest"], 93 language = "C++", 94 uses_event_engine = False, 95 uses_polling = False, 96 deps = [ 97 "//:gpr", 98 "//:grpc", 99 "//test/core/test_util:grpc_test_util", 100 "//test/core/test_util:scoped_env_var", 101 "//test/cpp/util:grpc_cli_utils", 102 "@com_github_cncf_xds//xds/type/v3:pkg_cc_proto", 103 "@envoy_api//envoy/config/cluster/v3:pkg_cc_proto", 104 "@envoy_api//envoy/config/core/v3:pkg_cc_proto", 105 "@envoy_api//envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3:pkg_cc_proto", 106 "@envoy_api//envoy/extensions/load_balancing_policies/pick_first/v3:pkg_cc_proto", 107 "@envoy_api//envoy/extensions/load_balancing_policies/ring_hash/v3:pkg_cc_proto", 108 "@envoy_api//envoy/extensions/load_balancing_policies/round_robin/v3:pkg_cc_proto", 109 "@envoy_api//envoy/extensions/load_balancing_policies/wrr_locality/v3:pkg_cc_proto", 110 ], 111) 112 113grpc_cc_test( 114 name = "xds_audit_logger_registry_test", 115 srcs = ["xds_audit_logger_registry_test.cc"], 116 external_deps = ["gtest"], 117 language = "C++", 118 uses_event_engine = False, 119 uses_polling = False, 120 deps = [ 121 "//:gpr", 122 "//:grpc", 123 "//src/core:grpc_audit_logging", 124 "//test/core/test_util:grpc_test_util", 125 "//test/cpp/util:grpc_cli_utils", 126 "@com_github_cncf_xds//xds/type/v3:pkg_cc_proto", 127 "@envoy_api//envoy/config/rbac/v3:pkg_cc_proto", 128 "@envoy_api//envoy/extensions/filters/http/rbac/v3:pkg_cc_proto", 129 "@envoy_api//envoy/extensions/rbac/audit_loggers/stream/v3:pkg_cc_proto", 130 ], 131) 132 133grpc_cc_library( 134 name = "xds_transport_fake", 135 testonly = True, 136 srcs = ["xds_transport_fake.cc"], 137 hdrs = ["xds_transport_fake.h"], 138 external_deps = [ 139 "absl/log:check", 140 "absl/log:log", 141 "absl/strings", 142 "absl/types:optional", 143 ], 144 language = "C++", 145 deps = [ 146 "//:orphanable", 147 "//:ref_counted_ptr", 148 "//:xds_client", 149 "//test/core/event_engine/fuzzing_event_engine", 150 "//test/core/test_util:grpc_test_util", 151 ], 152) 153 154grpc_cc_library( 155 name = "xds_client_test_peer", 156 hdrs = ["xds_client_test_peer.h"], 157 external_deps = [ 158 "absl/functional:function_ref", 159 ], 160 language = "C++", 161 deps = [ 162 "//:xds_client", 163 ], 164) 165 166grpc_cc_test( 167 name = "xds_client_test", 168 srcs = ["xds_client_test.cc"], 169 external_deps = ["gtest"], 170 language = "C++", 171 uses_event_engine = True, 172 uses_polling = False, 173 deps = [ 174 ":xds_client_test_peer", 175 ":xds_transport_fake", 176 "//:grpc++_codegen_proto", 177 "//:grpc++_config_proto", 178 "//:xds_client", 179 "//test/core/event_engine:event_engine_test_utils", 180 "//test/core/event_engine/fuzzing_event_engine", 181 "//test/core/test_util:grpc_test_util", 182 "//test/core/test_util:scoped_env_var", 183 "@envoy_api//envoy/config/core/v3:pkg_cc_proto", 184 "@envoy_api//envoy/service/discovery/v3:pkg_cc_proto", 185 "@envoy_api//envoy/service/status/v3:pkg_cc_proto", 186 ], 187) 188 189grpc_proto_fuzzer( 190 name = "xds_client_fuzzer", 191 srcs = ["xds_client_fuzzer.cc"], 192 corpus = "xds_client_corpora", 193 external_deps = ["absl/log:log"], 194 language = "C++", 195 proto = "xds_client_fuzzer.proto", 196 proto_deps = [ 197 "//test/core/event_engine/fuzzing_event_engine:fuzzing_event_engine_proto", 198 "@envoy_api//envoy/service/discovery/v3:pkg", 199 ], 200 tags = ["no_windows"], 201 uses_event_engine = True, 202 uses_polling = False, 203 deps = [ 204 ":xds_client_test_peer", 205 ":xds_transport_fake", 206 "//src/core:grpc_xds_client", 207 "//test/core/test_util:grpc_test_util", 208 "//test/core/event_engine/fuzzing_event_engine", 209 "//test/core/event_engine:event_engine_test_utils", 210 # These proto deps are needed to ensure that we can read these 211 # resource types out of the google.protobuf.Any fields in the 212 # textproto files in the corpora. 213 "@envoy_api//envoy/config/cluster/v3:pkg_cc_proto", 214 "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", 215 "@envoy_api//envoy/config/listener/v3:pkg_cc_proto", 216 "@envoy_api//envoy/config/route/v3:pkg_cc_proto", 217 "@envoy_api//envoy/extensions/filters/http/router/v3:pkg_cc_proto", 218 "@envoy_api//envoy/extensions/filters/network/http_connection_manager/v3:pkg_cc_proto", 219 ], 220) 221 222grpc_cc_test( 223 name = "xds_common_types_test", 224 srcs = ["xds_common_types_test.cc"], 225 external_deps = ["gtest"], 226 language = "C++", 227 uses_event_engine = False, 228 uses_polling = False, 229 deps = [ 230 "//:gpr", 231 "//:grpc", 232 "//src/core:grpc_xds_client", 233 "//test/core/test_util:grpc_test_util", 234 "//test/core/test_util:scoped_env_var", 235 "//test/cpp/util:grpc_cli_utils", 236 "@com_github_cncf_xds//udpa/type/v1:pkg_cc_proto", 237 "@com_github_cncf_xds//xds/type/v3:pkg_cc_proto", 238 "@envoy_api//envoy/extensions/transport_sockets/tls/v3:pkg_cc_proto", 239 "@envoy_api//envoy/type/matcher/v3:pkg_cc_proto", 240 ], 241) 242 243grpc_cc_test( 244 name = "xds_metadata_test", 245 srcs = ["xds_metadata_test.cc"], 246 external_deps = ["gtest"], 247 language = "C++", 248 uses_event_engine = False, 249 uses_polling = False, 250 deps = [ 251 "//:gpr", 252 "//:grpc", 253 "//src/core:grpc_xds_client", 254 "//test/core/test_util:grpc_test_util", 255 "//test/core/test_util:scoped_env_var", 256 "@envoy_api//envoy/config/core/v3:pkg_cc_proto", 257 "@envoy_api//envoy/extensions/filters/http/gcp_authn/v3:pkg_cc_proto", 258 ], 259) 260 261grpc_cc_test( 262 name = "xds_http_filters_test", 263 srcs = ["xds_http_filters_test.cc"], 264 external_deps = [ 265 "absl/log:check", 266 "gtest", 267 ], 268 language = "C++", 269 uses_event_engine = False, 270 uses_polling = False, 271 deps = [ 272 "//:gpr", 273 "//:grpc", 274 "//test/core/test_util:grpc_test_util", 275 "//test/core/test_util:scoped_env_var", 276 "//test/cpp/util:grpc_cli_utils", 277 "@com_github_cncf_xds//xds/type/v3:pkg_cc_proto", 278 "@envoy_api//envoy/config/rbac/v3:pkg_cc_proto", 279 "@envoy_api//envoy/extensions/filters/common/fault/v3:pkg_cc_proto", 280 "@envoy_api//envoy/extensions/filters/http/fault/v3:pkg_cc_proto", 281 "@envoy_api//envoy/extensions/filters/http/gcp_authn/v3:pkg_cc_proto", 282 "@envoy_api//envoy/extensions/filters/http/rbac/v3:pkg_cc_proto", 283 "@envoy_api//envoy/extensions/filters/http/router/v3:pkg_cc_proto", 284 "@envoy_api//envoy/extensions/filters/http/stateful_session/v3:pkg_cc_proto", 285 "@envoy_api//envoy/extensions/http/stateful_session/cookie/v3:pkg_cc_proto", 286 "@envoy_api//envoy/type/http/v3:pkg_cc_proto", 287 "@envoy_api//envoy/type/v3:pkg_cc_proto", 288 ], 289) 290 291grpc_cc_test( 292 name = "xds_listener_resource_type_test", 293 srcs = ["xds_listener_resource_type_test.cc"], 294 external_deps = ["gtest"], 295 language = "C++", 296 uses_event_engine = False, 297 uses_polling = False, 298 deps = [ 299 "//:gpr", 300 "//:grpc", 301 "//:grpc++_codegen_proto", 302 "//src/core:grpc_xds_client", 303 "//test/core/test_util:grpc_test_util", 304 "//test/core/test_util:scoped_env_var", 305 "//test/cpp/util:grpc_cli_utils", 306 "@com_github_cncf_xds//xds/type/v3:pkg_cc_proto", 307 "@envoy_api//envoy/config/listener/v3:pkg_cc_proto", 308 "@envoy_api//envoy/extensions/filters/http/fault/v3:pkg_cc_proto", 309 "@envoy_api//envoy/extensions/filters/http/rbac/v3:pkg_cc_proto", 310 "@envoy_api//envoy/extensions/filters/http/router/v3:pkg_cc_proto", 311 "@envoy_api//envoy/extensions/filters/network/http_connection_manager/v3:pkg_cc_proto", 312 "@envoy_api//envoy/extensions/transport_sockets/tls/v3:pkg_cc_proto", 313 ], 314) 315 316grpc_cc_test( 317 name = "xds_route_config_resource_type_test", 318 srcs = ["xds_route_config_resource_type_test.cc"], 319 external_deps = ["gtest"], 320 language = "C++", 321 uses_event_engine = False, 322 uses_polling = False, 323 deps = [ 324 "//:gpr", 325 "//:grpc", 326 "//:grpc++_codegen_proto", 327 "//src/core:grpc_xds_client", 328 "//src/proto/grpc/lookup/v1:rls_config_cc_proto", 329 "//test/core/test_util:grpc_test_util", 330 "//test/core/test_util:scoped_env_var", 331 "//test/cpp/util:grpc_cli_utils", 332 "@envoy_api//envoy/config/route/v3:pkg_cc_proto", 333 "@envoy_api//envoy/extensions/filters/http/fault/v3:pkg_cc_proto", 334 "@envoy_api//envoy/extensions/filters/http/rbac/v3:pkg_cc_proto", 335 "@envoy_api//envoy/type/v3:pkg_cc_proto", 336 ], 337) 338 339grpc_cc_test( 340 name = "xds_cluster_resource_type_test", 341 srcs = ["xds_cluster_resource_type_test.cc"], 342 external_deps = ["gtest"], 343 language = "C++", 344 uses_event_engine = False, 345 uses_polling = False, 346 deps = [ 347 "//:gpr", 348 "//:grpc", 349 "//:grpc++_codegen_proto", 350 "//src/core:grpc_xds_client", 351 "//src/core:xds_health_status", 352 "//test/core/test_util:grpc_test_util", 353 "//test/core/test_util:scoped_env_var", 354 "@envoy_api//envoy/config/cluster/v3:pkg_cc_proto", 355 "@envoy_api//envoy/extensions/clusters/aggregate/v3:pkg_cc_proto", 356 "@envoy_api//envoy/extensions/filters/http/gcp_authn/v3:pkg_cc_proto", 357 "@envoy_api//envoy/extensions/load_balancing_policies/round_robin/v3:pkg_cc_proto", 358 "@envoy_api//envoy/extensions/load_balancing_policies/wrr_locality/v3:pkg_cc_proto", 359 "@envoy_api//envoy/extensions/transport_sockets/http_11_proxy/v3:pkg_cc_proto", 360 "@envoy_api//envoy/extensions/transport_sockets/tls/v3:pkg_cc_proto", 361 "@envoy_api//envoy/extensions/upstreams/http/v3:pkg_cc_proto", 362 "@envoy_api//envoy/type/v3:pkg_cc_proto", 363 ], 364) 365 366grpc_cc_test( 367 name = "xds_endpoint_resource_type_test", 368 srcs = ["xds_endpoint_resource_type_test.cc"], 369 external_deps = ["gtest"], 370 language = "C++", 371 uses_event_engine = False, 372 uses_polling = False, 373 deps = [ 374 "//:gpr", 375 "//:grpc", 376 "//:grpc++_codegen_proto", 377 "//src/core:channel_args", 378 "//src/core:grpc_xds_client", 379 "//src/core:xds_health_status", 380 "//test/core/test_util:grpc_test_util", 381 "//test/core/test_util:scoped_env_var", 382 "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", 383 ], 384) 385