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/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 "//test/core/util:grpc_test_util", 40 "//test/core/util:scoped_env_var", 41 ], 42) 43 44grpc_cc_test( 45 name = "certificate_provider_store_test", 46 srcs = ["certificate_provider_store_test.cc"], 47 external_deps = ["gtest"], 48 language = "C++", 49 uses_event_engine = False, 50 uses_polling = False, 51 deps = [ 52 "//:gpr", 53 "//:grpc", 54 "//test/core/util:grpc_test_util", 55 ], 56) 57 58grpc_cc_test( 59 name = "file_watcher_certificate_provider_factory_test", 60 srcs = ["file_watcher_certificate_provider_factory_test.cc"], 61 external_deps = ["gtest"], 62 language = "C++", 63 uses_event_engine = False, 64 uses_polling = False, 65 deps = [ 66 "//:gpr", 67 "//:grpc", 68 "//test/core/util:grpc_test_util", 69 ], 70) 71 72grpc_cc_test( 73 name = "xds_channel_stack_modifier_test", 74 srcs = ["xds_channel_stack_modifier_test.cc"], 75 external_deps = ["gtest"], 76 language = "C++", 77 tags = ["no_test_ios"], 78 uses_event_engine = False, 79 uses_polling = False, 80 deps = [ 81 "//:gpr", 82 "//:grpc", 83 "//:grpc_base", 84 "//:grpc_opencensus_plugin", 85 "//src/core:channel_args", 86 "//src/core:grpc_xds_channel_stack_modifier", 87 "//test/core/util:grpc_test_util", 88 ], 89) 90 91grpc_cc_test( 92 name = "xds_certificate_provider_test", 93 srcs = ["xds_certificate_provider_test.cc"], 94 external_deps = ["gtest"], 95 language = "C++", 96 uses_event_engine = False, 97 uses_polling = False, 98 deps = [ 99 "//:gpr", 100 "//:grpc", 101 "//test/core/util:grpc_test_util", 102 ], 103) 104 105grpc_cc_test( 106 name = "xds_lb_policy_registry_test", 107 srcs = ["xds_lb_policy_registry_test.cc"], 108 external_deps = ["gtest"], 109 language = "C++", 110 uses_event_engine = False, 111 uses_polling = False, 112 deps = [ 113 "//:gpr", 114 "//:grpc", 115 "//src/proto/grpc/testing/xds/v3:client_side_weighted_round_robin_proto", 116 "//src/proto/grpc/testing/xds/v3:cluster_proto", 117 "//src/proto/grpc/testing/xds/v3:pick_first_proto", 118 "//src/proto/grpc/testing/xds/v3:ring_hash_proto", 119 "//src/proto/grpc/testing/xds/v3:round_robin_proto", 120 "//src/proto/grpc/testing/xds/v3:typed_struct_proto", 121 "//src/proto/grpc/testing/xds/v3:udpa_typed_struct_proto", 122 "//src/proto/grpc/testing/xds/v3:wrr_locality_proto", 123 "//test/core/util:grpc_test_util", 124 "//test/core/util:scoped_env_var", 125 "//test/cpp/util:grpc_cli_utils", 126 ], 127) 128 129grpc_cc_test( 130 name = "xds_audit_logger_registry_test", 131 srcs = ["xds_audit_logger_registry_test.cc"], 132 external_deps = ["gtest"], 133 language = "C++", 134 uses_event_engine = False, 135 uses_polling = False, 136 deps = [ 137 "//:gpr", 138 "//:grpc", 139 "//src/core:grpc_audit_logging", 140 "//src/proto/grpc/testing/xds/v3:audit_logger_stream_proto", 141 "//src/proto/grpc/testing/xds/v3:rbac_proto", 142 "//src/proto/grpc/testing/xds/v3:typed_struct_proto", 143 "//test/core/util:grpc_test_util", 144 "//test/cpp/util:grpc_cli_utils", 145 ], 146) 147 148grpc_cc_library( 149 name = "xds_transport_fake", 150 testonly = True, 151 srcs = ["xds_transport_fake.cc"], 152 hdrs = ["xds_transport_fake.h"], 153 external_deps = [ 154 "absl/strings", 155 "absl/types:optional", 156 ], 157 language = "C++", 158 deps = [ 159 "//:orphanable", 160 "//:ref_counted_ptr", 161 "//:xds_client", 162 "//test/core/util:grpc_test_util", 163 ], 164) 165 166grpc_cc_library( 167 name = "xds_client_test_peer", 168 hdrs = ["xds_client_test_peer.h"], 169 external_deps = [ 170 "absl/functional:function_ref", 171 ], 172 language = "C++", 173 deps = [ 174 "//:xds_client", 175 ], 176) 177 178grpc_cc_test( 179 name = "xds_client_test", 180 srcs = ["xds_client_test.cc"], 181 external_deps = ["gtest"], 182 language = "C++", 183 shard_count = 10, 184 uses_event_engine = True, 185 uses_polling = False, 186 deps = [ 187 ":xds_client_test_peer", 188 ":xds_transport_fake", 189 "//:xds_client", 190 "//src/proto/grpc/testing/xds/v3:discovery_proto", 191 "//test/core/util:grpc_test_util", 192 "//test/core/util:scoped_env_var", 193 ], 194) 195 196grpc_proto_fuzzer( 197 name = "xds_client_fuzzer", 198 srcs = ["xds_client_fuzzer.cc"], 199 corpus = "xds_client_corpora", 200 language = "C++", 201 proto = "xds_client_fuzzer.proto", 202 proto_deps = [ 203 "//src/proto/grpc/testing/xds/v3:discovery_proto", 204 ], 205 tags = ["no_windows"], 206 uses_event_engine = False, 207 uses_polling = False, 208 deps = [ 209 ":xds_client_test_peer", 210 ":xds_transport_fake", 211 "//src/core:grpc_xds_client", 212 "//test/core/util:grpc_test_util", 213 # These proto deps are needed to ensure that we can read these 214 # resource types out of the google.protobuf.Any fields in the 215 # textproto files in the corpora. 216 "//src/proto/grpc/testing/xds/v3:listener_proto", 217 "//src/proto/grpc/testing/xds/v3:route_proto", 218 "//src/proto/grpc/testing/xds/v3:cluster_proto", 219 "//src/proto/grpc/testing/xds/v3:endpoint_proto", 220 "//src/proto/grpc/testing/xds/v3:http_connection_manager_proto", 221 "//src/proto/grpc/testing/xds/v3:router_proto", 222 ], 223) 224 225grpc_cc_test( 226 name = "xds_common_types_test", 227 srcs = ["xds_common_types_test.cc"], 228 external_deps = ["gtest"], 229 language = "C++", 230 uses_event_engine = False, 231 uses_polling = False, 232 deps = [ 233 "//:gpr", 234 "//:grpc", 235 "//src/core:grpc_xds_client", 236 "//src/proto/grpc/testing/xds/v3:tls_proto", 237 "//src/proto/grpc/testing/xds/v3:typed_struct_proto", 238 "//src/proto/grpc/testing/xds/v3:udpa_typed_struct_proto", 239 "//test/core/util:grpc_test_util", 240 "//test/cpp/util:grpc_cli_utils", 241 ], 242) 243 244grpc_cc_test( 245 name = "xds_http_filters_test", 246 srcs = ["xds_http_filters_test.cc"], 247 external_deps = ["gtest"], 248 language = "C++", 249 uses_event_engine = False, 250 uses_polling = False, 251 deps = [ 252 "//:gpr", 253 "//:grpc", 254 "//src/proto/grpc/testing/xds/v3:fault_proto", 255 "//src/proto/grpc/testing/xds/v3:http_filter_rbac_proto", 256 "//src/proto/grpc/testing/xds/v3:router_proto", 257 "//src/proto/grpc/testing/xds/v3:stateful_session_cookie_proto", 258 "//src/proto/grpc/testing/xds/v3:stateful_session_proto", 259 "//src/proto/grpc/testing/xds/v3:typed_struct_proto", 260 "//test/core/util:grpc_test_util", 261 "//test/core/util:scoped_env_var", 262 "//test/cpp/util:grpc_cli_utils", 263 ], 264) 265 266grpc_cc_test( 267 name = "xds_listener_resource_type_test", 268 srcs = ["xds_listener_resource_type_test.cc"], 269 external_deps = ["gtest"], 270 language = "C++", 271 uses_event_engine = False, 272 uses_polling = False, 273 deps = [ 274 "//:gpr", 275 "//:grpc", 276 "//src/core:grpc_xds_client", 277 "//src/proto/grpc/testing/xds/v3:fault_proto", 278 "//src/proto/grpc/testing/xds/v3:http_connection_manager_proto", 279 "//src/proto/grpc/testing/xds/v3:http_filter_rbac_proto", 280 "//src/proto/grpc/testing/xds/v3:listener_proto", 281 "//src/proto/grpc/testing/xds/v3:router_proto", 282 "//src/proto/grpc/testing/xds/v3:tls_proto", 283 "//src/proto/grpc/testing/xds/v3:typed_struct_proto", 284 "//test/core/util:grpc_test_util", 285 "//test/cpp/util:grpc_cli_utils", 286 ], 287) 288 289grpc_cc_test( 290 name = "xds_route_config_resource_type_test", 291 srcs = ["xds_route_config_resource_type_test.cc"], 292 external_deps = ["gtest"], 293 language = "C++", 294 uses_event_engine = False, 295 uses_polling = False, 296 deps = [ 297 "//:gpr", 298 "//:grpc", 299 "//src/core:grpc_xds_client", 300 "//src/proto/grpc/lookup/v1:rls_config_proto", 301 "//src/proto/grpc/testing/xds/v3:fault_proto", 302 "//src/proto/grpc/testing/xds/v3:http_filter_rbac_proto", 303 "//src/proto/grpc/testing/xds/v3:route_proto", 304 "//src/proto/grpc/testing/xds/v3:typed_struct_proto", 305 "//test/core/util:grpc_test_util", 306 "//test/core/util:scoped_env_var", 307 "//test/cpp/util:grpc_cli_utils", 308 ], 309) 310 311grpc_cc_test( 312 name = "xds_cluster_resource_type_test", 313 srcs = ["xds_cluster_resource_type_test.cc"], 314 external_deps = ["gtest"], 315 language = "C++", 316 uses_event_engine = False, 317 uses_polling = False, 318 deps = [ 319 "//:gpr", 320 "//:grpc", 321 "//src/core:grpc_xds_client", 322 "//src/proto/grpc/testing/xds/v3:aggregate_cluster_proto", 323 "//src/proto/grpc/testing/xds/v3:cluster_proto", 324 "//src/proto/grpc/testing/xds/v3:http_protocol_options_proto", 325 "//src/proto/grpc/testing/xds/v3:round_robin_proto", 326 "//src/proto/grpc/testing/xds/v3:tls_proto", 327 "//src/proto/grpc/testing/xds/v3:typed_struct_proto", 328 "//src/proto/grpc/testing/xds/v3:wrr_locality_proto", 329 "//test/core/util:grpc_test_util", 330 ], 331) 332 333grpc_cc_test( 334 name = "xds_endpoint_resource_type_test", 335 srcs = ["xds_endpoint_resource_type_test.cc"], 336 external_deps = ["gtest"], 337 language = "C++", 338 uses_event_engine = False, 339 uses_polling = False, 340 deps = [ 341 "//:gpr", 342 "//:grpc", 343 "//src/core:channel_args", 344 "//src/core:grpc_xds_client", 345 "//src/proto/grpc/testing/xds/v3:endpoint_proto", 346 "//test/core/util:grpc_test_util", 347 "//test/core/util:scoped_env_var", 348 ], 349) 350