xref: /aosp_15_r20/external/sdk-platform-java/test/integration/BUILD.bazel (revision 882aa7c72c3cd3b66e72a261bdd69b93f7de7670)
1*882aa7c7SMatt Gilbrideload(
2*882aa7c7SMatt Gilbride    "//rules_java_gapic:java_gapic.bzl",
3*882aa7c7SMatt Gilbride    "java_gapic_library",
4*882aa7c7SMatt Gilbride    "java_gapic_test",
5*882aa7c7SMatt Gilbride)
6*882aa7c7SMatt Gilbrideload("@io_grpc_grpc_java//:java_grpc_library.bzl", "java_grpc_library")
7*882aa7c7SMatt Gilbrideload("@rules_gapic//:gapic.bzl", "proto_library_with_info")
8*882aa7c7SMatt Gilbrideload("@rules_proto//proto:defs.bzl", "proto_library")
9*882aa7c7SMatt Gilbride
10*882aa7c7SMatt Gilbride####################################################
11*882aa7c7SMatt Gilbride# Integration Test Rules
12*882aa7c7SMatt Gilbride####################################################
13*882aa7c7SMatt Gilbride
14*882aa7c7SMatt GilbrideAPI_GAPIC_TARGETS = {
15*882aa7c7SMatt Gilbride    # basic case
16*882aa7c7SMatt Gilbride    "asset": "@com_google_googleapis//google/cloud/asset/v1:asset_java_gapic",
17*882aa7c7SMatt Gilbride    # Check that the capital name edge case is handled.
18*882aa7c7SMatt Gilbride    "credentials": "@com_google_googleapis//google/iam/credentials/v1:credentials_java_gapic",
19*882aa7c7SMatt Gilbride    # Mixin-only special-case API can build on its own.
20*882aa7c7SMatt Gilbride    "iam": ":iam_java_gapic",  # local target: Googleapis' LRO does not have a Java Gapic.
21*882aa7c7SMatt Gilbride    # mixins, with an override in the proto file
22*882aa7c7SMatt Gilbride    "kms": ":kms_java_gapic",  # local target: mixins are not rolled out yet.
23*882aa7c7SMatt Gilbride    # Special=case handling for "_deleted-topic_" resource name patterns.
24*882aa7c7SMatt Gilbride    "pubsub": ":pubsub_java_gapic",
25*882aa7c7SMatt Gilbride    # Java package remapping in gapic.yaml
26*882aa7c7SMatt Gilbride    "logging": "@com_google_googleapis//google/logging/v2:logging_java_gapic",
27*882aa7c7SMatt Gilbride    # Has a gapic.yaml.
28*882aa7c7SMatt Gilbride    "redis": "@com_google_googleapis//google/cloud/redis/v1beta1:redis_java_gapic",
29*882aa7c7SMatt Gilbride    # Exercises storage-specific edge cases.
30*882aa7c7SMatt Gilbride    "storage": "@com_google_googleapis//google/storage/v2:storage_java_gapic",
31*882aa7c7SMatt Gilbride    # No gRPC service config.
32*882aa7c7SMatt Gilbride    "library": "@com_google_googleapis//google/example/library/v1:library_java_gapic",
33*882aa7c7SMatt Gilbride    # REGAPIC test.
34*882aa7c7SMatt Gilbride    "compute": "@com_google_googleapis//google/cloud/compute/v1small:compute_small_java_gapic",
35*882aa7c7SMatt Gilbride    # Routing headers.
36*882aa7c7SMatt Gilbride    "bigtable": "@com_google_googleapis//google/bigtable/v2:bigtable_java_gapic",
37*882aa7c7SMatt Gilbride    # REGAPIC REST Client Generation
38*882aa7c7SMatt Gilbride    "apigeeconnect": "@com_google_googleapis//google/cloud/apigeeconnect/v1:apigeeconnect_java_gapic",
39*882aa7c7SMatt Gilbride}
40*882aa7c7SMatt Gilbride
41*882aa7c7SMatt Gilbride[filegroup(
42*882aa7c7SMatt Gilbride    name = "%s_goldens_files" % lib_name,
43*882aa7c7SMatt Gilbride    srcs = glob(
44*882aa7c7SMatt Gilbride        ["goldens/%s/**" % lib_name],
45*882aa7c7SMatt Gilbride        exclude = ["BUILD.bazel"],
46*882aa7c7SMatt Gilbride    ),
47*882aa7c7SMatt Gilbride) for lib_name in API_GAPIC_TARGETS]
48*882aa7c7SMatt Gilbride
49*882aa7c7SMatt Gilbride[sh_test(
50*882aa7c7SMatt Gilbride    name = lib_name,
51*882aa7c7SMatt Gilbride    srcs = ["//scripts:diff_gen_and_golden.sh"],
52*882aa7c7SMatt Gilbride    args = [lib_name],
53*882aa7c7SMatt Gilbride    data = [
54*882aa7c7SMatt Gilbride        ":%s_goldens_files" % lib_name,
55*882aa7c7SMatt Gilbride        "%s_srcjar_raw.srcjar" % gapic_target,
56*882aa7c7SMatt Gilbride    ],
57*882aa7c7SMatt Gilbride) for lib_name, gapic_target in API_GAPIC_TARGETS.items()]
58*882aa7c7SMatt Gilbride
59*882aa7c7SMatt Gilbride[sh_binary(
60*882aa7c7SMatt Gilbride    name = "update_%s" % lib_name,
61*882aa7c7SMatt Gilbride    srcs = ["//scripts:update_golden.sh"],
62*882aa7c7SMatt Gilbride    args = [lib_name],
63*882aa7c7SMatt Gilbride    data = [
64*882aa7c7SMatt Gilbride        ":%s_goldens_files" % lib_name,
65*882aa7c7SMatt Gilbride        "%s_srcjar_raw.srcjar" % gapic_target,
66*882aa7c7SMatt Gilbride    ],
67*882aa7c7SMatt Gilbride) for lib_name, gapic_target in API_GAPIC_TARGETS.items()]
68*882aa7c7SMatt Gilbride
69*882aa7c7SMatt Gilbride####################################################
70*882aa7c7SMatt Gilbride# API Library Rules
71*882aa7c7SMatt Gilbride####################################################
72*882aa7c7SMatt Gilbride# Asset API.
73*882aa7c7SMatt Gilbridejava_gapic_test(
74*882aa7c7SMatt Gilbride    name = "asset_java_gapic_test_suite",
75*882aa7c7SMatt Gilbride    test_classes = [
76*882aa7c7SMatt Gilbride        "com.google.cloud.asset.v1.AssetServiceClientTest",
77*882aa7c7SMatt Gilbride    ],
78*882aa7c7SMatt Gilbride    runtime_deps = ["@com_google_googleapis//google/cloud/asset/v1:asset_java_gapic_test"],
79*882aa7c7SMatt Gilbride)
80*882aa7c7SMatt Gilbride
81*882aa7c7SMatt Gilbride# Redis API.
82*882aa7c7SMatt Gilbridejava_gapic_test(
83*882aa7c7SMatt Gilbride    name = "redis_java_gapic_test_suite",
84*882aa7c7SMatt Gilbride    test_classes = [
85*882aa7c7SMatt Gilbride        "com.google.cloud.redis.v1beta1.CloudRedisClientTest",
86*882aa7c7SMatt Gilbride    ],
87*882aa7c7SMatt Gilbride    runtime_deps = ["@com_google_googleapis//google/cloud/redis/v1beta1:redis_java_gapic_test"],
88*882aa7c7SMatt Gilbride)
89*882aa7c7SMatt Gilbride
90*882aa7c7SMatt Gilbride# Storage API.
91*882aa7c7SMatt Gilbridejava_gapic_test(
92*882aa7c7SMatt Gilbride    name = "storage_java_gapic_test_suite",
93*882aa7c7SMatt Gilbride    test_classes = [
94*882aa7c7SMatt Gilbride        "com.google.storage.v2.StorageClientTest",
95*882aa7c7SMatt Gilbride    ],
96*882aa7c7SMatt Gilbride    runtime_deps = ["@com_google_googleapis//google/storage/v2:storage_java_gapic_test"],
97*882aa7c7SMatt Gilbride)
98*882aa7c7SMatt Gilbride
99*882aa7c7SMatt Gilbride# Logging API
100*882aa7c7SMatt Gilbridejava_gapic_test(
101*882aa7c7SMatt Gilbride    name = "logging_java_gapic_test_suite",
102*882aa7c7SMatt Gilbride    test_classes = [
103*882aa7c7SMatt Gilbride        "com.google.cloud.logging.v2.ConfigClientTest",
104*882aa7c7SMatt Gilbride        "com.google.cloud.logging.v2.LoggingClientTest",
105*882aa7c7SMatt Gilbride        "com.google.cloud.logging.v2.MetricsClientTest",
106*882aa7c7SMatt Gilbride    ],
107*882aa7c7SMatt Gilbride    runtime_deps = ["@com_google_googleapis//google/logging/v2:logging_java_gapic_test"],
108*882aa7c7SMatt Gilbride)
109*882aa7c7SMatt Gilbride
110*882aa7c7SMatt Gilbride# example/library API.
111*882aa7c7SMatt Gilbride# Tests the edge case of a legitimately missing gRPC service config file.
112*882aa7c7SMatt Gilbridejava_gapic_test(
113*882aa7c7SMatt Gilbride    name = "library_java_gapic_test_suite",
114*882aa7c7SMatt Gilbride    test_classes = [
115*882aa7c7SMatt Gilbride        "com.google.cloud.example.library.v1.LibraryServiceClientTest",
116*882aa7c7SMatt Gilbride    ],
117*882aa7c7SMatt Gilbride    runtime_deps = ["@com_google_googleapis//google/example/library/v1:library_java_gapic_test"],
118*882aa7c7SMatt Gilbride)
119*882aa7c7SMatt Gilbride
120*882aa7c7SMatt Gilbride# IAMCredentials.
121*882aa7c7SMatt Gilbride# Check that the capital name edge case is handled.
122*882aa7c7SMatt Gilbridejava_gapic_test(
123*882aa7c7SMatt Gilbride    name = "credentials_java_gapic_test_suite",
124*882aa7c7SMatt Gilbride    test_classes = [
125*882aa7c7SMatt Gilbride        # Match google3.
126*882aa7c7SMatt Gilbride        "com.google.cloud.iam.credentials.v1.IAMCredentialsClientTest",
127*882aa7c7SMatt Gilbride    ],
128*882aa7c7SMatt Gilbride    runtime_deps = ["@com_google_googleapis//google/iam/credentials/v1:credentials_java_gapic_test"],
129*882aa7c7SMatt Gilbride)
130*882aa7c7SMatt Gilbride
131*882aa7c7SMatt Gilbride# Bigtable API
132*882aa7c7SMatt Gilbridejava_gapic_test(
133*882aa7c7SMatt Gilbride    name = "bigtable_java_gapic_test_suite",
134*882aa7c7SMatt Gilbride    test_classes = [
135*882aa7c7SMatt Gilbride        "com.google.cloud.bigtable.data.v2.BaseBigtableDataClientTest",
136*882aa7c7SMatt Gilbride    ],
137*882aa7c7SMatt Gilbride    runtime_deps = ["@com_google_googleapis//google/bigtable/v2:bigtable_java_gapic_test"],
138*882aa7c7SMatt Gilbride)
139*882aa7c7SMatt Gilbride
140*882aa7c7SMatt Gilbride# Apigee Connect V1 API
141*882aa7c7SMatt Gilbridejava_gapic_test(
142*882aa7c7SMatt Gilbride    name = "apigeeconnect_java_gapic_test_suite",
143*882aa7c7SMatt Gilbride    test_classes = [],
144*882aa7c7SMatt Gilbride    runtime_deps = ["@com_google_googleapis//google/cloud/apigeeconnect/v1:apigeeconnect_java_gapic_test"],
145*882aa7c7SMatt Gilbride)
146*882aa7c7SMatt Gilbride
147*882aa7c7SMatt Gilbride# IAM (for a standalone mixed-in API).
148*882aa7c7SMatt Gilbridejava_gapic_library(
149*882aa7c7SMatt Gilbride    name = "iam_java_gapic",
150*882aa7c7SMatt Gilbride    srcs = ["@com_google_googleapis//google/iam/v1:iam_proto_with_info"],
151*882aa7c7SMatt Gilbride    grpc_service_config = "iam_grpc_service_config.json",
152*882aa7c7SMatt Gilbride    test_deps = [
153*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/iam/v1:iam_java_grpc",
154*882aa7c7SMatt Gilbride    ],
155*882aa7c7SMatt Gilbride    deps = [
156*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/iam/v1:iam_java_proto",
157*882aa7c7SMatt Gilbride    ],
158*882aa7c7SMatt Gilbride)
159*882aa7c7SMatt Gilbride
160*882aa7c7SMatt Gilbridejava_gapic_test(
161*882aa7c7SMatt Gilbride    name = "iam_java_gapic_test_suite",
162*882aa7c7SMatt Gilbride    test_classes = [
163*882aa7c7SMatt Gilbride        "com.google.iam.v1.IAMPolicyClientTest",
164*882aa7c7SMatt Gilbride    ],
165*882aa7c7SMatt Gilbride    runtime_deps = ["iam_java_gapic_test"],
166*882aa7c7SMatt Gilbride)
167*882aa7c7SMatt Gilbride
168*882aa7c7SMatt Gilbride# KMS (for mixins).
169*882aa7c7SMatt Gilbrideproto_library(
170*882aa7c7SMatt Gilbride    name = "kms_proto",
171*882aa7c7SMatt Gilbride    srcs = [
172*882aa7c7SMatt Gilbride        "apis/kms/v1/resources.proto",
173*882aa7c7SMatt Gilbride        "apis/kms/v1/service.proto",
174*882aa7c7SMatt Gilbride    ],
175*882aa7c7SMatt Gilbride    deps = [
176*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/api:annotations_proto",
177*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/api:client_proto",
178*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/api:field_behavior_proto",
179*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/api:resource_proto",
180*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/cloud/location:location_proto",
181*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/iam/v1:iam_policy_proto",
182*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/iam/v1:policy_proto",
183*882aa7c7SMatt Gilbride        "@com_google_protobuf//:duration_proto",
184*882aa7c7SMatt Gilbride        "@com_google_protobuf//:field_mask_proto",
185*882aa7c7SMatt Gilbride        "@com_google_protobuf//:struct_proto",
186*882aa7c7SMatt Gilbride        "@com_google_protobuf//:timestamp_proto",
187*882aa7c7SMatt Gilbride        "@com_google_protobuf//:wrappers_proto",
188*882aa7c7SMatt Gilbride    ],
189*882aa7c7SMatt Gilbride)
190*882aa7c7SMatt Gilbride
191*882aa7c7SMatt Gilbrideproto_library_with_info(
192*882aa7c7SMatt Gilbride    name = "kms_proto_with_info",
193*882aa7c7SMatt Gilbride    deps = [
194*882aa7c7SMatt Gilbride        ":kms_proto",
195*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/cloud:common_resources_proto",
196*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/cloud/location:location_proto",
197*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/iam/v1:iam_policy_proto",
198*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/iam/v1:policy_proto",
199*882aa7c7SMatt Gilbride    ],
200*882aa7c7SMatt Gilbride)
201*882aa7c7SMatt Gilbride
202*882aa7c7SMatt Gilbridejava_proto_library(
203*882aa7c7SMatt Gilbride    name = "kms_java_proto",
204*882aa7c7SMatt Gilbride    deps = [":kms_proto"],
205*882aa7c7SMatt Gilbride)
206*882aa7c7SMatt Gilbride
207*882aa7c7SMatt Gilbridejava_grpc_library(
208*882aa7c7SMatt Gilbride    name = "kms_java_grpc",
209*882aa7c7SMatt Gilbride    srcs = [":kms_proto"],
210*882aa7c7SMatt Gilbride    deps = [":kms_java_proto"],
211*882aa7c7SMatt Gilbride)
212*882aa7c7SMatt Gilbride
213*882aa7c7SMatt Gilbridejava_gapic_library(
214*882aa7c7SMatt Gilbride    name = "kms_java_gapic",
215*882aa7c7SMatt Gilbride    srcs = [":kms_proto_with_info"],
216*882aa7c7SMatt Gilbride    grpc_service_config = "@com_google_googleapis//google/cloud/kms/v1:cloudkms_grpc_service_config.json",
217*882aa7c7SMatt Gilbride    # For the IAM mixin.
218*882aa7c7SMatt Gilbride    service_yaml = "apis/kms/v1/cloudkms_test_mixins_v1.yaml",
219*882aa7c7SMatt Gilbride    test_deps = [
220*882aa7c7SMatt Gilbride        ":kms_java_grpc",
221*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/cloud/location:location_java_grpc",
222*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/iam/v1:iam_java_grpc",
223*882aa7c7SMatt Gilbride    ],
224*882aa7c7SMatt Gilbride    deps = [
225*882aa7c7SMatt Gilbride        ":kms_java_proto",
226*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/cloud/location:location_java_proto",
227*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/iam/v1:iam_java_proto",
228*882aa7c7SMatt Gilbride    ],
229*882aa7c7SMatt Gilbride)
230*882aa7c7SMatt Gilbride
231*882aa7c7SMatt Gilbridejava_gapic_test(
232*882aa7c7SMatt Gilbride    name = "kms_java_gapic_test_suite",
233*882aa7c7SMatt Gilbride    test_classes = [
234*882aa7c7SMatt Gilbride        "com.google.cloud.kms.v1.KeyManagementServiceClientTest",
235*882aa7c7SMatt Gilbride    ],
236*882aa7c7SMatt Gilbride    runtime_deps = [":kms_java_gapic_test"],
237*882aa7c7SMatt Gilbride)
238*882aa7c7SMatt Gilbride
239*882aa7c7SMatt Gilbride# PubSub
240*882aa7c7SMatt Gilbridejava_gapic_library(
241*882aa7c7SMatt Gilbride    name = "pubsub_java_gapic",
242*882aa7c7SMatt Gilbride    srcs = ["@com_google_googleapis//google/pubsub/v1:pubsub_proto_with_info"],
243*882aa7c7SMatt Gilbride    gapic_yaml = "@com_google_googleapis//google/pubsub/v1:pubsub_gapic.yaml",
244*882aa7c7SMatt Gilbride    grpc_service_config = "@com_google_googleapis//google/pubsub/v1:pubsub_grpc_service_config.json",
245*882aa7c7SMatt Gilbride    # For the IAM mixin.
246*882aa7c7SMatt Gilbride    service_yaml = "pubsub_v1.yaml",
247*882aa7c7SMatt Gilbride    test_deps = [
248*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/pubsub/v1:pubsub_java_grpc",
249*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/iam/v1:iam_java_grpc",
250*882aa7c7SMatt Gilbride    ],
251*882aa7c7SMatt Gilbride    deps = [
252*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/iam/v1:iam_java_proto",
253*882aa7c7SMatt Gilbride        "@com_google_googleapis//google/pubsub/v1:pubsub_java_proto",
254*882aa7c7SMatt Gilbride    ],
255*882aa7c7SMatt Gilbride)
256*882aa7c7SMatt Gilbride
257*882aa7c7SMatt Gilbridejava_gapic_test(
258*882aa7c7SMatt Gilbride    name = "pubsub_java_gapic_test_suite",
259*882aa7c7SMatt Gilbride    test_classes = [
260*882aa7c7SMatt Gilbride        "com.google.cloud.pubsub.v1.SubscriptionAdminClientTest",
261*882aa7c7SMatt Gilbride        "com.google.cloud.pubsub.v1.TopicAdminClientTest",
262*882aa7c7SMatt Gilbride    ],
263*882aa7c7SMatt Gilbride    runtime_deps = [":pubsub_java_gapic_test"],
264*882aa7c7SMatt Gilbride)
265