blob: 4168a54b20eec78d13ae31e5657c58a658c703e5 [file] [log] [blame]
Derek Perezbc45f922021-04-20 11:36:32 -07001load("@bazel_skylib//rules:build_test.bzl", "build_test")
deannagarcia15bd2c22023-03-08 15:36:57 -08002load("@rules_java//java:defs.bzl", "java_lite_proto_library", "java_proto_library")
David L. Jonesd76f8c82022-04-22 16:58:16 -07003load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
Derek Perezbc45f922021-04-20 11:36:32 -07004load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library")
David L. Jones5ebde5b2022-05-05 13:29:47 -07005load("//:protobuf.bzl", "internal_gen_well_known_protos_java")
zhangskzb37b6132022-05-03 11:58:31 -04006load("//:protobuf_version.bzl", "PROTOBUF_JAVA_VERSION")
Protobuf Team Bot81607b22023-11-13 06:35:04 -08007load("//build_defs:java_opts.bzl", "protobuf_java_export", "protobuf_java_library", "protobuf_versioned_java_library")
8load("//conformance:defs.bzl", "conformance_test")
Derek Perezbc45f922021-04-20 11:36:32 -07009load("//java/internal:testing.bzl", "junit_tests")
Yannicf0cb9cd2020-02-13 22:04:14 +010010
11LITE_SRCS = [
12 # Keep in sync with `//java/lite:pom.xml`.
13 "src/main/java/com/google/protobuf/AbstractMessageLite.java",
14 "src/main/java/com/google/protobuf/AbstractParser.java",
15 "src/main/java/com/google/protobuf/AbstractProtobufList.java",
16 "src/main/java/com/google/protobuf/AllocatedBuffer.java",
17 "src/main/java/com/google/protobuf/Android.java",
18 "src/main/java/com/google/protobuf/ArrayDecoders.java",
19 "src/main/java/com/google/protobuf/BinaryReader.java",
20 "src/main/java/com/google/protobuf/BinaryWriter.java",
21 "src/main/java/com/google/protobuf/BooleanArrayList.java",
22 "src/main/java/com/google/protobuf/BufferAllocator.java",
23 "src/main/java/com/google/protobuf/ByteBufferWriter.java",
24 "src/main/java/com/google/protobuf/ByteOutput.java",
25 "src/main/java/com/google/protobuf/ByteString.java",
Joshua Haberman82deebf2021-09-28 22:25:19 +000026 "src/main/java/com/google/protobuf/CanIgnoreReturnValue.java",
27 "src/main/java/com/google/protobuf/CheckReturnValue.java",
Yannicf0cb9cd2020-02-13 22:04:14 +010028 "src/main/java/com/google/protobuf/CodedInputStream.java",
29 "src/main/java/com/google/protobuf/CodedInputStreamReader.java",
30 "src/main/java/com/google/protobuf/CodedOutputStream.java",
31 "src/main/java/com/google/protobuf/CodedOutputStreamWriter.java",
Deanna Garcia349738d2022-02-01 23:22:23 +000032 "src/main/java/com/google/protobuf/CompileTimeConstant.java",
Yannicf0cb9cd2020-02-13 22:04:14 +010033 "src/main/java/com/google/protobuf/DoubleArrayList.java",
34 "src/main/java/com/google/protobuf/ExperimentalApi.java",
35 "src/main/java/com/google/protobuf/ExtensionLite.java",
36 "src/main/java/com/google/protobuf/ExtensionRegistryFactory.java",
37 "src/main/java/com/google/protobuf/ExtensionRegistryLite.java",
38 "src/main/java/com/google/protobuf/ExtensionSchema.java",
39 "src/main/java/com/google/protobuf/ExtensionSchemaLite.java",
40 "src/main/java/com/google/protobuf/ExtensionSchemas.java",
41 "src/main/java/com/google/protobuf/FieldInfo.java",
42 "src/main/java/com/google/protobuf/FieldSet.java",
43 "src/main/java/com/google/protobuf/FieldType.java",
44 "src/main/java/com/google/protobuf/FloatArrayList.java",
45 "src/main/java/com/google/protobuf/GeneratedMessageInfoFactory.java",
46 "src/main/java/com/google/protobuf/GeneratedMessageLite.java",
Deanna Garcia349738d2022-02-01 23:22:23 +000047 "src/main/java/com/google/protobuf/InlineMe.java",
Yannicf0cb9cd2020-02-13 22:04:14 +010048 "src/main/java/com/google/protobuf/IntArrayList.java",
49 "src/main/java/com/google/protobuf/Internal.java",
50 "src/main/java/com/google/protobuf/InvalidProtocolBufferException.java",
51 "src/main/java/com/google/protobuf/IterableByteBufferInputStream.java",
Protobuf Team Botd40aadf2023-02-23 09:29:42 -080052 "src/main/java/com/google/protobuf/Java8Compatibility.java",
Yannicf0cb9cd2020-02-13 22:04:14 +010053 "src/main/java/com/google/protobuf/JavaType.java",
54 "src/main/java/com/google/protobuf/LazyField.java",
55 "src/main/java/com/google/protobuf/LazyFieldLite.java",
56 "src/main/java/com/google/protobuf/LazyStringArrayList.java",
57 "src/main/java/com/google/protobuf/LazyStringList.java",
58 "src/main/java/com/google/protobuf/ListFieldSchema.java",
59 "src/main/java/com/google/protobuf/LongArrayList.java",
60 "src/main/java/com/google/protobuf/ManifestSchemaFactory.java",
61 "src/main/java/com/google/protobuf/MapEntryLite.java",
62 "src/main/java/com/google/protobuf/MapFieldLite.java",
63 "src/main/java/com/google/protobuf/MapFieldSchema.java",
64 "src/main/java/com/google/protobuf/MapFieldSchemaLite.java",
65 "src/main/java/com/google/protobuf/MapFieldSchemas.java",
66 "src/main/java/com/google/protobuf/MessageInfo.java",
67 "src/main/java/com/google/protobuf/MessageInfoFactory.java",
68 "src/main/java/com/google/protobuf/MessageLite.java",
69 "src/main/java/com/google/protobuf/MessageLiteOrBuilder.java",
70 "src/main/java/com/google/protobuf/MessageLiteToString.java",
71 "src/main/java/com/google/protobuf/MessageSchema.java",
72 "src/main/java/com/google/protobuf/MessageSetSchema.java",
73 "src/main/java/com/google/protobuf/MutabilityOracle.java",
74 "src/main/java/com/google/protobuf/NewInstanceSchema.java",
75 "src/main/java/com/google/protobuf/NewInstanceSchemaLite.java",
76 "src/main/java/com/google/protobuf/NewInstanceSchemas.java",
77 "src/main/java/com/google/protobuf/NioByteString.java",
78 "src/main/java/com/google/protobuf/OneofInfo.java",
79 "src/main/java/com/google/protobuf/Parser.java",
80 "src/main/java/com/google/protobuf/PrimitiveNonBoxingCollection.java",
81 "src/main/java/com/google/protobuf/ProtoSyntax.java",
82 "src/main/java/com/google/protobuf/Protobuf.java",
83 "src/main/java/com/google/protobuf/ProtobufArrayList.java",
Yannicf0cb9cd2020-02-13 22:04:14 +010084 "src/main/java/com/google/protobuf/ProtocolStringList.java",
85 "src/main/java/com/google/protobuf/RawMessageInfo.java",
86 "src/main/java/com/google/protobuf/Reader.java",
87 "src/main/java/com/google/protobuf/RopeByteString.java",
Protobuf Team Bot318d3102023-11-21 09:24:50 -080088 "src/main/java/com/google/protobuf/RuntimeVersion.java",
Yannicf0cb9cd2020-02-13 22:04:14 +010089 "src/main/java/com/google/protobuf/Schema.java",
90 "src/main/java/com/google/protobuf/SchemaFactory.java",
91 "src/main/java/com/google/protobuf/SchemaUtil.java",
92 "src/main/java/com/google/protobuf/SmallSortedMap.java",
93 "src/main/java/com/google/protobuf/StructuralMessageInfo.java",
94 "src/main/java/com/google/protobuf/TextFormatEscaper.java",
95 "src/main/java/com/google/protobuf/UninitializedMessageException.java",
96 "src/main/java/com/google/protobuf/UnknownFieldSchema.java",
97 "src/main/java/com/google/protobuf/UnknownFieldSetLite.java",
98 "src/main/java/com/google/protobuf/UnknownFieldSetLiteSchema.java",
99 "src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java",
Esun Kimaedb8d72021-03-24 13:13:26 -0700100 "src/main/java/com/google/protobuf/UnsafeByteOperations.java",
Yannicf0cb9cd2020-02-13 22:04:14 +0100101 "src/main/java/com/google/protobuf/UnsafeUtil.java",
102 "src/main/java/com/google/protobuf/Utf8.java",
103 "src/main/java/com/google/protobuf/WireFormat.java",
104 "src/main/java/com/google/protobuf/Writer.java",
105]
106
David L. Jones5ebde5b2022-05-05 13:29:47 -0700107internal_gen_well_known_protos_java(
108 name = "gen_well_known_protos_javalite",
109 javalite = True,
110 deps = [
111 "//:any_proto",
112 "//:api_proto",
113 "//:duration_proto",
114 "//:empty_proto",
115 "//:field_mask_proto",
116 "//:source_context_proto",
117 "//:struct_proto",
118 "//:timestamp_proto",
119 "//:type_proto",
120 "//:wrappers_proto",
121 ],
122)
123
Yannicf0cb9cd2020-02-13 22:04:14 +0100124# Should be used as `//java/lite`.
Deanna Garcia167e3e52023-04-27 11:54:50 -0700125java_library(
Yannicf0cb9cd2020-02-13 22:04:14 +0100126 name = "lite",
Derek Perezbc45f922021-04-20 11:36:32 -0700127 srcs = LITE_SRCS + [
David L. Jones5ebde5b2022-05-05 13:29:47 -0700128 ":gen_well_known_protos_javalite",
Derek Perezbc45f922021-04-20 11:36:32 -0700129 ],
Deanna Garcia167e3e52023-04-27 11:54:50 -0700130 visibility = [
131 "//java/lite:__pkg__",
132 ],
133)
134
135protobuf_versioned_java_library(
136 name = "lite_bundle",
137 srcs = LITE_SRCS + [
138 ":gen_well_known_protos_javalite",
139 ],
Clayton Walkerd580fde2023-11-06 00:22:39 -0800140 automatic_module_name = "com.google.protobuf",
Protobuf Team Bot4b5652b2023-03-21 07:34:39 -0700141 bundle_description = "Lite version of Protocol Buffers library. This " +
142 "version is optimized for code size, but does not " +
143 "guarantee API/ABI stability.",
144 bundle_name = "Protocol Buffers [Lite]",
145 bundle_symbolic_name = "com.google.protobuf",
Yannicf0cb9cd2020-02-13 22:04:14 +0100146 visibility = [
147 "//java/lite:__pkg__",
148 ],
Derek Perez2937b2c2021-08-31 19:14:11 +0000149)
150
151# Bazel users, don't depend on this target, use //java/lite.
deannagarcia15bd2c22023-03-08 15:36:57 -0800152protobuf_java_export(
Derek Perez2937b2c2021-08-31 19:14:11 +0000153 name = "lite_mvn",
zhangskzb37b6132022-05-03 11:58:31 -0400154 maven_coordinates = "com.google.protobuf:protobuf-javalite:%s" % PROTOBUF_JAVA_VERSION,
Derek Perez2937b2c2021-08-31 19:14:11 +0000155 pom_template = "//java/lite:pom_template.xml",
Deanna Garcia89a9f452021-06-21 22:28:17 +0000156 resources = [
157 "//:lite_well_known_protos",
158 ],
David L. Jones67823fe2022-05-04 17:30:23 -0700159 tags = ["manual"],
Deanna Garcia167e3e52023-04-27 11:54:50 -0700160 runtime_deps = [":lite_bundle"],
Yannicf0cb9cd2020-02-13 22:04:14 +0100161)
162
deannagarcia15bd2c22023-03-08 15:36:57 -0800163protobuf_java_library(
Derek Perezbc45f922021-04-20 11:36:32 -0700164 name = "lite_runtime_only",
165 srcs = LITE_SRCS,
166)
167
Sandy Zhang6889aed2023-10-12 14:33:40 -0700168proto_library(
169 name = "java_features_proto",
170 srcs = ["src/main/java/com/google/protobuf/java_features.proto"],
171 visibility = ["//pkg:__pkg__"],
172 deps = ["//:descriptor_proto"],
173)
174
David L. Jones5ebde5b2022-05-05 13:29:47 -0700175internal_gen_well_known_protos_java(
176 name = "gen_well_known_protos_java",
177 deps = [
178 "//:any_proto",
179 "//:api_proto",
180 "//:compiler_plugin_proto",
181 "//:descriptor_proto",
182 "//:duration_proto",
183 "//:empty_proto",
184 "//:field_mask_proto",
185 "//:source_context_proto",
186 "//:struct_proto",
187 "//:timestamp_proto",
188 "//:type_proto",
189 "//:wrappers_proto",
190 ],
191)
192
Deanna Garcia167e3e52023-04-27 11:54:50 -0700193java_library(
Yannicf0cb9cd2020-02-13 22:04:14 +0100194 name = "core",
195 srcs = glob(
196 [
197 "src/main/java/com/google/protobuf/*.java",
198 ],
199 exclude = LITE_SRCS,
200 ) + [
David L. Jones5ebde5b2022-05-05 13:29:47 -0700201 ":gen_well_known_protos_java",
Yannicf0cb9cd2020-02-13 22:04:14 +0100202 ],
Deanna Garcia167e3e52023-04-27 11:54:50 -0700203 visibility = ["//visibility:public"],
204 exports = [
205 ":lite_runtime_only",
206 ],
207 deps = [
208 ":lite_runtime_only",
209 ],
210)
211
212protobuf_versioned_java_library(
213 name = "core_bundle",
214 srcs = glob(
215 [
216 "src/main/java/com/google/protobuf/*.java",
217 ],
218 exclude = LITE_SRCS,
219 ) + [
220 ":gen_well_known_protos_java",
221 ],
Clayton Walkerd580fde2023-11-06 00:22:39 -0800222 automatic_module_name = "com.google.protobuf",
Protobuf Team Bot4b5652b2023-03-21 07:34:39 -0700223 bundle_description = "Core Protocol Buffers library. Protocol Buffers " +
224 "are a way of encoding structured data in an " +
225 "efficient yet extensible format.",
226 bundle_name = "Protocol Buffers [Core]",
227 bundle_symbolic_name = "com.google.protobuf",
Yannicf0cb9cd2020-02-13 22:04:14 +0100228 visibility = ["//visibility:public"],
229 exports = [
Derek Perezbc45f922021-04-20 11:36:32 -0700230 ":lite_runtime_only",
Yannicf0cb9cd2020-02-13 22:04:14 +0100231 ],
232 deps = [
Derek Perezbc45f922021-04-20 11:36:32 -0700233 ":lite_runtime_only",
Yannicf0cb9cd2020-02-13 22:04:14 +0100234 ],
Derek Perez2937b2c2021-08-31 19:14:11 +0000235)
236
237# Bazel users, don't depend on this target, use :core.
deannagarcia15bd2c22023-03-08 15:36:57 -0800238protobuf_java_export(
Derek Perez2937b2c2021-08-31 19:14:11 +0000239 name = "core_mvn",
zhangskzb37b6132022-05-03 11:58:31 -0400240 maven_coordinates = "com.google.protobuf:protobuf-java:%s" % PROTOBUF_JAVA_VERSION,
Derek Perez2937b2c2021-08-31 19:14:11 +0000241 pom_template = "pom_template.xml",
Deanna Garcia89a9f452021-06-21 22:28:17 +0000242 resources = [
David L. Jones5ebde5b2022-05-05 13:29:47 -0700243 "//:well_known_type_protos",
Mike Kruskal91c1e7c2022-10-25 09:19:55 -0700244 "//src/google/protobuf:descriptor_proto_srcs",
Deanna Garcia89a9f452021-06-21 22:28:17 +0000245 ],
David L. Jones67823fe2022-05-04 17:30:23 -0700246 tags = ["manual"],
Deanna Garcia167e3e52023-04-27 11:54:50 -0700247 runtime_deps = [":core_bundle"],
Yannicf0cb9cd2020-02-13 22:04:14 +0100248)
249
Derek Perezc6844342021-06-28 14:38:25 -0700250filegroup(
251 name = "release",
Derek Perezc6844342021-06-28 14:38:25 -0700252 srcs = [
Derek Perez2937b2c2021-08-31 19:14:11 +0000253 ":core_mvn-docs",
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700254 ":core_mvn-maven-source",
255 ":core_mvn-pom",
Derek Perez2937b2c2021-08-31 19:14:11 +0000256 ":core_mvn-project",
Derek Perez2937b2c2021-08-31 19:14:11 +0000257 ":lite_mvn-docs",
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700258 ":lite_mvn-maven-source",
259 ":lite_mvn-pom",
Derek Perez2937b2c2021-08-31 19:14:11 +0000260 ":lite_mvn-project",
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700261 ],
262 visibility = ["//java:__pkg__"],
Derek Perezc6844342021-06-28 14:38:25 -0700263)
264
Yannicf0cb9cd2020-02-13 22:04:14 +0100265proto_lang_toolchain(
266 name = "toolchain",
Derek Perezadc1f932021-10-21 21:17:20 +0000267 # keep this in sync w/ WELL_KNOWN_PROTO_MAP in //:BUILD
268 blacklisted_protos = [
269 "//:any_proto",
270 "//:api_proto",
271 "//:compiler_plugin_proto",
272 "//:descriptor_proto",
273 "//:duration_proto",
274 "//:empty_proto",
275 "//:field_mask_proto",
276 "//:source_context_proto",
277 "//:struct_proto",
278 "//:timestamp_proto",
279 "//:type_proto",
280 "//:wrappers_proto",
281 ],
David L. Jonesd76f8c82022-04-22 16:58:16 -0700282 command_line = "--java_out=$(OUT)",
283 runtime = ":core",
284 visibility = ["//visibility:public"],
Yannicf0cb9cd2020-02-13 22:04:14 +0100285)
Derek Perezbc45f922021-04-20 11:36:32 -0700286
287proto_library(
288 name = "java_test_protos",
289 srcs = glob(["src/test/proto/**/*.proto"]),
290 strip_import_prefix = "src/test/proto",
291 deps = [
292 "//:any_proto",
293 "//:descriptor_proto",
David L. Jonesb64cd5a2022-05-11 16:45:17 -0700294 "//:lite_test_protos",
Derek Perezbc45f922021-04-20 11:36:32 -0700295 "//:wrappers_proto",
David L. Jones171a6b12022-05-18 13:45:22 -0700296 "//src/google/protobuf:generic_test_protos",
Derek Perezbc45f922021-04-20 11:36:32 -0700297 ],
298)
299
300java_proto_library(
301 name = "generic_test_protos_java_proto",
302 visibility = [
303 "//java:__subpackages__",
304 ],
David L. Jones171a6b12022-05-18 13:45:22 -0700305 deps = ["//src/google/protobuf:generic_test_protos"],
Derek Perezbc45f922021-04-20 11:36:32 -0700306)
307
308java_proto_library(
David L. Jonesb64cd5a2022-05-11 16:45:17 -0700309 name = "lite_test_protos_java_proto",
310 visibility = [
311 "//java:__subpackages__",
312 ],
313 deps = ["//:lite_test_protos"],
314)
315
316java_proto_library(
Derek Perezbc45f922021-04-20 11:36:32 -0700317 name = "java_test_protos_java_proto",
318 deps = [":java_test_protos"],
319)
320
deannagarcia15bd2c22023-03-08 15:36:57 -0800321protobuf_java_library(
Derek Perezbc45f922021-04-20 11:36:32 -0700322 name = "test_util",
323 srcs = [
324 "src/test/java/com/google/protobuf/TestUtil.java",
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700325 "src/test/java/com/google/protobuf/TestUtilLite.java",
Derek Perezbc45f922021-04-20 11:36:32 -0700326 ],
David L. Jonesd76f8c82022-04-22 16:58:16 -0700327 visibility = ["//java:__subpackages__"],
Derek Perezbc45f922021-04-20 11:36:32 -0700328 deps = [
329 ":core",
330 ":generic_test_protos_java_proto",
331 ":java_test_protos_java_proto",
David L. Jones171a6b12022-05-18 13:45:22 -0700332 ":lite_test_protos_java_proto",
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700333 "@maven//:com_google_guava_guava",
334 "@maven//:junit_junit",
Derek Perezbc45f922021-04-20 11:36:32 -0700335 ],
336)
337
338test_suite(
339 name = "tests",
340 tests = [
Derek Perezbc45f922021-04-20 11:36:32 -0700341 "conformance_test",
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700342 "core_build_test",
Derek Perezbc45f922021-04-20 11:36:32 -0700343 "core_tests",
Adam Cozzettec555c3d2022-01-05 08:50:29 -0800344 "utf8_tests",
Derek Perezbc45f922021-04-20 11:36:32 -0700345 ],
346)
347
348build_test(
349 name = "core_build_test",
350 targets = [
351 ":core",
352 ],
353)
354
355conformance_test(
356 name = "conformance_test",
David L. Jones637a6992022-05-06 13:30:48 -0700357 failure_list = "//conformance:failure_list_java.txt",
358 testee = "//conformance:conformance_java",
359 text_format_failure_list = "//conformance:text_format_failure_list_java.txt",
Derek Perezbc45f922021-04-20 11:36:32 -0700360)
361
362junit_tests(
363 name = "core_tests",
Adam Cozzettec555c3d2022-01-05 08:50:29 -0800364 size = "small",
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700365 srcs = glob(
366 ["src/test/java/**/*.java"],
367 exclude = [
Adam Cozzettec555c3d2022-01-05 08:50:29 -0800368 "src/test/java/com/google/protobuf/DecodeUtf8Test.java",
369 "src/test/java/com/google/protobuf/IsValidUtf8Test.java",
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700370 "src/test/java/com/google/protobuf/TestUtil.java",
371 "src/test/java/com/google/protobuf/TestUtilLite.java",
372 ],
373 ),
David L. Jones171a6b12022-05-18 13:45:22 -0700374 data = ["//src/google/protobuf:testdata"],
Derek Perezbc45f922021-04-20 11:36:32 -0700375 deps = [
376 ":core",
377 ":generic_test_protos_java_proto",
378 ":java_test_protos_java_proto",
David L. Jones171a6b12022-05-18 13:45:22 -0700379 ":lite_test_protos_java_proto",
Derek Perezbc45f922021-04-20 11:36:32 -0700380 ":test_util",
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700381 "@maven//:com_google_guava_guava",
382 "@maven//:com_google_truth_truth",
383 "@maven//:junit_junit",
Adam Cozzettef7232f22022-03-02 19:17:27 +0000384 "@maven//:org_mockito_mockito_core",
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700385 ],
Derek Perezbc45f922021-04-20 11:36:32 -0700386)
387
Adam Cozzettec555c3d2022-01-05 08:50:29 -0800388# The UTF-8 validation tests are much slower than the other tests, so they get
389# their own test target with a longer timeout.
390junit_tests(
391 name = "utf8_tests",
392 size = "large",
393 srcs = [
394 "src/test/java/com/google/protobuf/DecodeUtf8Test.java",
395 "src/test/java/com/google/protobuf/IsValidUtf8Test.java",
396 "src/test/java/com/google/protobuf/IsValidUtf8TestUtil.java",
397 ],
398 deps = [
399 ":core",
400 "@maven//:com_google_guava_guava",
401 "@maven//:com_google_truth_truth",
402 "@maven//:junit_junit",
403 ],
404)
405
Derek Perezbc45f922021-04-20 11:36:32 -0700406java_lite_proto_library(
407 name = "generic_test_protos_java_proto_lite",
408 visibility = [
David L. Jones5ebde5b2022-05-05 13:29:47 -0700409 "//java/kotlin-lite:__pkg__",
Derek Perezbc45f922021-04-20 11:36:32 -0700410 "//java/lite:__pkg__",
411 ],
David L. Jones171a6b12022-05-18 13:45:22 -0700412 deps = ["//src/google/protobuf:generic_test_protos"],
Derek Perezbc45f922021-04-20 11:36:32 -0700413)
414
415java_lite_proto_library(
David L. Jonesb64cd5a2022-05-11 16:45:17 -0700416 name = "lite_test_protos_java_proto_lite",
417 visibility = [
418 "//java/kotlin-lite:__pkg__",
419 "//java/lite:__pkg__",
420 ],
421 deps = ["//:lite_test_protos"],
422)
423
424java_lite_proto_library(
Derek Perezbc45f922021-04-20 11:36:32 -0700425 name = "java_test_protos_java_proto_lite",
426 visibility = [
427 "//java/lite:__pkg__",
428 ],
429 deps = [":java_test_protos"],
430)
431
432genrule(
433 name = "rewrite_javalite_test_util",
434 srcs = [
435 "//java/lite:lite.awk",
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700436 "src/test/java/com/google/protobuf/TestUtil.java",
Derek Perezbc45f922021-04-20 11:36:32 -0700437 ],
438 outs = ["TestUtil.java"],
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700439 cmd = "awk -f $(location //java/lite:lite.awk) $(location src/test/java/com/google/protobuf/TestUtil.java) > $@",
Derek Perezbc45f922021-04-20 11:36:32 -0700440)
441
deannagarcia15bd2c22023-03-08 15:36:57 -0800442protobuf_java_library(
Derek Perezbc45f922021-04-20 11:36:32 -0700443 name = "test_util_lite",
444 srcs = [
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700445 "src/test/java/com/google/protobuf/TestUtilLite.java",
Derek Perezbc45f922021-04-20 11:36:32 -0700446 ":rewrite_javalite_test_util",
Derek Perezbc45f922021-04-20 11:36:32 -0700447 ],
448 visibility = [
Deanna Garciadfd99e72022-01-12 21:54:30 +0000449 "//java/kotlin-lite:__pkg__",
David L. Jonesd76f8c82022-04-22 16:58:16 -0700450 "//java/lite:__pkg__",
Derek Perezbc45f922021-04-20 11:36:32 -0700451 ],
452 deps = [
453 ":generic_test_protos_java_proto_lite",
454 ":java_test_protos_java_proto_lite",
455 ":lite_runtime_only",
David L. Jones171a6b12022-05-18 13:45:22 -0700456 ":lite_test_protos_java_proto_lite",
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700457 "@maven//:com_google_guava_guava",
458 "@maven//:junit_junit",
Derek Perezbc45f922021-04-20 11:36:32 -0700459 ],
460)
461
462LITE_TEST_EXCLUSIONS = [
463 # Keep in sync with //java/lite:pom.xml id=copy-test-source-files execution.
464 "src/test/java/com/google/protobuf/AbstractMessageTest.java",
465 "src/test/java/com/google/protobuf/AbstractProto2SchemaTest.java",
466 "src/test/java/com/google/protobuf/AnyTest.java",
467 "src/test/java/com/google/protobuf/CodedInputStreamTest.java",
468 "src/test/java/com/google/protobuf/DeprecatedFieldTest.java",
469 "src/test/java/com/google/protobuf/DescriptorsTest.java",
470 "src/test/java/com/google/protobuf/DiscardUnknownFieldsTest.java",
471 "src/test/java/com/google/protobuf/DynamicMessageTest.java",
472 "src/test/java/com/google/protobuf/ExtensionRegistryFactoryTest.java",
473 "src/test/java/com/google/protobuf/FieldPresenceTest.java",
474 "src/test/java/com/google/protobuf/ForceFieldBuildersPreRun.java",
475 "src/test/java/com/google/protobuf/GeneratedMessageTest.java",
Protobuf Team Bot81607b22023-11-13 06:35:04 -0800476 "src/test/java/com/google/protobuf/LazilyParsedMessageSetTest.java",
Derek Perezbc45f922021-04-20 11:36:32 -0700477 "src/test/java/com/google/protobuf/LazyFieldTest.java",
478 "src/test/java/com/google/protobuf/LazyStringEndToEndTest.java",
479 "src/test/java/com/google/protobuf/MapForProto2Test.java",
480 "src/test/java/com/google/protobuf/MapTest.java",
481 "src/test/java/com/google/protobuf/MessageTest.java",
482 "src/test/java/com/google/protobuf/NestedBuildersTest.java",
483 "src/test/java/com/google/protobuf/PackedFieldTest.java",
484 "src/test/java/com/google/protobuf/ParserTest.java",
485 "src/test/java/com/google/protobuf/ParseExceptionsTest.java",
486 "src/test/java/com/google/protobuf/Proto2ExtensionLookupSchemaTest.java",
487 "src/test/java/com/google/protobuf/Proto2SchemaTest.java",
488 "src/test/java/com/google/protobuf/Proto2UnknownEnumValueTest.java",
489 "src/test/java/com/google/protobuf/RepeatedFieldBuilderV3Test.java",
Protobuf Team Bota2f92682023-11-24 13:24:18 -0800490 "src/test/java/com/google/protobuf/RuntimeVersionTest.java",
Derek Perezbc45f922021-04-20 11:36:32 -0700491 "src/test/java/com/google/protobuf/ServiceTest.java",
492 "src/test/java/com/google/protobuf/SingleFieldBuilderV3Test.java",
493 "src/test/java/com/google/protobuf/TestBadIdentifiers.java",
494 "src/test/java/com/google/protobuf/TextFormatParseInfoTreeTest.java",
495 "src/test/java/com/google/protobuf/TextFormatParseLocationTest.java",
Mike Kruskal91c1e7c2022-10-25 09:19:55 -0700496 "src/test/java/com/google/protobuf/TextFormatPerformanceTest.java",
Derek Perezbc45f922021-04-20 11:36:32 -0700497 "src/test/java/com/google/protobuf/TextFormatTest.java",
498 "src/test/java/com/google/protobuf/TestUtil.java",
499 "src/test/java/com/google/protobuf/TestUtilLite.java",
500 "src/test/java/com/google/protobuf/TypeRegistryTest.java",
501 "src/test/java/com/google/protobuf/UnknownEnumValueTest.java",
502 "src/test/java/com/google/protobuf/UnknownFieldSetLiteTest.java",
Adam Cozzettec555c3d2022-01-05 08:50:29 -0800503 "src/test/java/com/google/protobuf/UnknownFieldSetPerformanceTest.java",
Derek Perezbc45f922021-04-20 11:36:32 -0700504 "src/test/java/com/google/protobuf/UnknownFieldSetTest.java",
505 "src/test/java/com/google/protobuf/WellKnownTypesTest.java",
506 "src/test/java/com/google/protobuf/WireFormatTest.java",
507]
508
509junit_tests(
510 name = "lite_tests",
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700511 size = "large",
512 srcs = glob(
513 ["src/test/java/**/*.java"],
514 exclude = LITE_TEST_EXCLUSIONS,
515 ),
David L. Jones171a6b12022-05-18 13:45:22 -0700516 data = ["//src/google/protobuf:testdata"],
Derek Perezbc45f922021-04-20 11:36:32 -0700517 test_prefix = "Lite",
Derek Perezbc45f922021-04-20 11:36:32 -0700518 deps = [
Derek Perezbc45f922021-04-20 11:36:32 -0700519 ":generic_test_protos_java_proto_lite",
520 ":java_test_protos_java_proto_lite",
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700521 ":lite",
David L. Jones171a6b12022-05-18 13:45:22 -0700522 ":lite_test_protos_java_proto_lite",
Derek Perezbc45f922021-04-20 11:36:32 -0700523 ":test_util_lite",
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700524 "@maven//:com_google_truth_truth",
525 "@maven//:junit_junit",
Adam Cozzettef7232f22022-03-02 19:17:27 +0000526 "@maven//:org_mockito_mockito_core",
Adam Cozzettec7dfd0d2021-10-28 10:34:54 -0700527 ],
Derek Perezbc45f922021-04-20 11:36:32 -0700528)
David L. Jonesd76f8c82022-04-22 16:58:16 -0700529
530pkg_files(
531 name = "dist_files",
532 srcs = glob([
533 "src/main/java/com/google/protobuf/*.java",
534 "src/test/java/**/*.java",
535 "src/test/proto/**/*.proto",
536 ]) + [
David L. Jones95da0ba2022-04-29 17:57:55 -0700537 "BUILD.bazel",
David L. Jonesd76f8c82022-04-22 16:58:16 -0700538 "generate-sources-build.xml",
539 "generate-test-sources-build.xml",
540 "pom.xml",
541 "pom_template.xml",
542 ],
543 strip_prefix = strip_prefix.from_root(""),
544 visibility = ["//java:__pkg__"],
545)