• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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