blob: 4d8895a8eff067217d72e3569160a3978ae89832 [file] [log] [blame]
Derek Perezbc45f922021-04-20 11:36:32 -07001load("@bazel_skylib//rules:build_test.bzl", "build_test")
2load("@rules_java//java:defs.bzl", "java_library", "java_proto_library", "java_lite_proto_library")
3load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library")
4load("//:internal.bzl", "conformance_test")
5load("//java/internal:testing.bzl", "junit_tests")
Yannicf0cb9cd2020-02-13 22:04:14 +01006
7LITE_SRCS = [
8 # Keep in sync with `//java/lite:pom.xml`.
9 "src/main/java/com/google/protobuf/AbstractMessageLite.java",
10 "src/main/java/com/google/protobuf/AbstractParser.java",
11 "src/main/java/com/google/protobuf/AbstractProtobufList.java",
12 "src/main/java/com/google/protobuf/AllocatedBuffer.java",
13 "src/main/java/com/google/protobuf/Android.java",
14 "src/main/java/com/google/protobuf/ArrayDecoders.java",
15 "src/main/java/com/google/protobuf/BinaryReader.java",
16 "src/main/java/com/google/protobuf/BinaryWriter.java",
17 "src/main/java/com/google/protobuf/BooleanArrayList.java",
18 "src/main/java/com/google/protobuf/BufferAllocator.java",
19 "src/main/java/com/google/protobuf/ByteBufferWriter.java",
20 "src/main/java/com/google/protobuf/ByteOutput.java",
21 "src/main/java/com/google/protobuf/ByteString.java",
22 "src/main/java/com/google/protobuf/CodedInputStream.java",
23 "src/main/java/com/google/protobuf/CodedInputStreamReader.java",
24 "src/main/java/com/google/protobuf/CodedOutputStream.java",
25 "src/main/java/com/google/protobuf/CodedOutputStreamWriter.java",
26 "src/main/java/com/google/protobuf/DoubleArrayList.java",
27 "src/main/java/com/google/protobuf/ExperimentalApi.java",
28 "src/main/java/com/google/protobuf/ExtensionLite.java",
29 "src/main/java/com/google/protobuf/ExtensionRegistryFactory.java",
30 "src/main/java/com/google/protobuf/ExtensionRegistryLite.java",
31 "src/main/java/com/google/protobuf/ExtensionSchema.java",
32 "src/main/java/com/google/protobuf/ExtensionSchemaLite.java",
33 "src/main/java/com/google/protobuf/ExtensionSchemas.java",
34 "src/main/java/com/google/protobuf/FieldInfo.java",
35 "src/main/java/com/google/protobuf/FieldSet.java",
36 "src/main/java/com/google/protobuf/FieldType.java",
37 "src/main/java/com/google/protobuf/FloatArrayList.java",
38 "src/main/java/com/google/protobuf/GeneratedMessageInfoFactory.java",
39 "src/main/java/com/google/protobuf/GeneratedMessageLite.java",
40 "src/main/java/com/google/protobuf/IntArrayList.java",
41 "src/main/java/com/google/protobuf/Internal.java",
42 "src/main/java/com/google/protobuf/InvalidProtocolBufferException.java",
43 "src/main/java/com/google/protobuf/IterableByteBufferInputStream.java",
44 "src/main/java/com/google/protobuf/JavaType.java",
45 "src/main/java/com/google/protobuf/LazyField.java",
46 "src/main/java/com/google/protobuf/LazyFieldLite.java",
47 "src/main/java/com/google/protobuf/LazyStringArrayList.java",
48 "src/main/java/com/google/protobuf/LazyStringList.java",
49 "src/main/java/com/google/protobuf/ListFieldSchema.java",
50 "src/main/java/com/google/protobuf/LongArrayList.java",
51 "src/main/java/com/google/protobuf/ManifestSchemaFactory.java",
52 "src/main/java/com/google/protobuf/MapEntryLite.java",
53 "src/main/java/com/google/protobuf/MapFieldLite.java",
54 "src/main/java/com/google/protobuf/MapFieldSchema.java",
55 "src/main/java/com/google/protobuf/MapFieldSchemaLite.java",
56 "src/main/java/com/google/protobuf/MapFieldSchemas.java",
57 "src/main/java/com/google/protobuf/MessageInfo.java",
58 "src/main/java/com/google/protobuf/MessageInfoFactory.java",
59 "src/main/java/com/google/protobuf/MessageLite.java",
60 "src/main/java/com/google/protobuf/MessageLiteOrBuilder.java",
61 "src/main/java/com/google/protobuf/MessageLiteToString.java",
62 "src/main/java/com/google/protobuf/MessageSchema.java",
63 "src/main/java/com/google/protobuf/MessageSetSchema.java",
64 "src/main/java/com/google/protobuf/MutabilityOracle.java",
65 "src/main/java/com/google/protobuf/NewInstanceSchema.java",
66 "src/main/java/com/google/protobuf/NewInstanceSchemaLite.java",
67 "src/main/java/com/google/protobuf/NewInstanceSchemas.java",
68 "src/main/java/com/google/protobuf/NioByteString.java",
69 "src/main/java/com/google/protobuf/OneofInfo.java",
70 "src/main/java/com/google/protobuf/Parser.java",
71 "src/main/java/com/google/protobuf/PrimitiveNonBoxingCollection.java",
72 "src/main/java/com/google/protobuf/ProtoSyntax.java",
73 "src/main/java/com/google/protobuf/Protobuf.java",
74 "src/main/java/com/google/protobuf/ProtobufArrayList.java",
75 "src/main/java/com/google/protobuf/ProtobufLists.java",
76 "src/main/java/com/google/protobuf/ProtocolStringList.java",
77 "src/main/java/com/google/protobuf/RawMessageInfo.java",
78 "src/main/java/com/google/protobuf/Reader.java",
79 "src/main/java/com/google/protobuf/RopeByteString.java",
80 "src/main/java/com/google/protobuf/Schema.java",
81 "src/main/java/com/google/protobuf/SchemaFactory.java",
82 "src/main/java/com/google/protobuf/SchemaUtil.java",
83 "src/main/java/com/google/protobuf/SmallSortedMap.java",
84 "src/main/java/com/google/protobuf/StructuralMessageInfo.java",
85 "src/main/java/com/google/protobuf/TextFormatEscaper.java",
86 "src/main/java/com/google/protobuf/UninitializedMessageException.java",
87 "src/main/java/com/google/protobuf/UnknownFieldSchema.java",
88 "src/main/java/com/google/protobuf/UnknownFieldSetLite.java",
89 "src/main/java/com/google/protobuf/UnknownFieldSetLiteSchema.java",
90 "src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java",
Esun Kimaedb8d72021-03-24 13:13:26 -070091 "src/main/java/com/google/protobuf/UnsafeByteOperations.java",
Yannicf0cb9cd2020-02-13 22:04:14 +010092 "src/main/java/com/google/protobuf/UnsafeUtil.java",
93 "src/main/java/com/google/protobuf/Utf8.java",
94 "src/main/java/com/google/protobuf/WireFormat.java",
95 "src/main/java/com/google/protobuf/Writer.java",
96]
97
Yannicf0cb9cd2020-02-13 22:04:14 +010098# Should be used as `//java/lite`.
99java_library(
100 name = "lite",
Derek Perezbc45f922021-04-20 11:36:32 -0700101 srcs = LITE_SRCS + [
102 "//:gen_well_known_protos_javalite"
103 ],
Yannicf0cb9cd2020-02-13 22:04:14 +0100104 visibility = [
105 "//java/lite:__pkg__",
106 ],
107)
108
109java_library(
Derek Perezbc45f922021-04-20 11:36:32 -0700110 name = "lite_runtime_only",
111 srcs = LITE_SRCS,
112)
113
114java_library(
Yannicf0cb9cd2020-02-13 22:04:14 +0100115 name = "core",
116 srcs = glob(
117 [
118 "src/main/java/com/google/protobuf/*.java",
119 ],
120 exclude = LITE_SRCS,
121 ) + [
122 "//:gen_well_known_protos_java",
123 ],
Yannicf0cb9cd2020-02-13 22:04:14 +0100124 visibility = ["//visibility:public"],
125 exports = [
Derek Perezbc45f922021-04-20 11:36:32 -0700126 ":lite_runtime_only",
Yannicf0cb9cd2020-02-13 22:04:14 +0100127 ],
128 deps = [
Derek Perezbc45f922021-04-20 11:36:32 -0700129 ":lite_runtime_only",
Yannicf0cb9cd2020-02-13 22:04:14 +0100130 ],
131)
132
133proto_lang_toolchain(
134 name = "toolchain",
135 command_line = "--java_out=$(OUT)",
136 runtime = ":core",
137 visibility = ["//visibility:public"],
138)
Derek Perezbc45f922021-04-20 11:36:32 -0700139
140proto_library(
141 name = "java_test_protos",
142 srcs = glob(["src/test/proto/**/*.proto"]),
143 strip_import_prefix = "src/test/proto",
144 deps = [
145 "//:any_proto",
146 "//:descriptor_proto",
147 "//:generic_test_protos",
148 "//:wrappers_proto",
149 ],
150)
151
152java_proto_library(
153 name = "generic_test_protos_java_proto",
154 visibility = [
155 "//java:__subpackages__",
156 ],
157 deps = ["//:generic_test_protos"],
158)
159
160java_proto_library(
161 name = "java_test_protos_java_proto",
162 deps = [":java_test_protos"],
163)
164
165java_library(
166 name = "test_util",
167 srcs = [
168 "src/test/java/com/google/protobuf/TestUtil.java",
169 "src/test/java/com/google/protobuf/TestUtilLite.java"
170 ],
171 deps = [
172 ":core",
173 ":generic_test_protos_java_proto",
174 ":java_test_protos_java_proto",
175 "//external:guava",
176 "//external:junit",
177 ],
178)
179
180test_suite(
181 name = "tests",
182 tests = [
183 "core_build_test",
184 "conformance_test",
185 "core_tests",
186 ],
187)
188
189build_test(
190 name = "core_build_test",
191 targets = [
192 ":core",
193 ],
194)
195
196conformance_test(
197 name = "conformance_test",
198 testee = "//:conformance_java",
199 failure_list = "//:conformance/failure_list_java.txt",
200 text_format_failure_list = "//:conformance/text_format_failure_list_java.txt",
201)
202
203junit_tests(
204 name = "core_tests",
205 srcs = glob(["src/test/java/**/*.java"], exclude = [
206 "src/test/java/com/google/protobuf/TestUtil.java",
207 "src/test/java/com/google/protobuf/TestUtilLite.java",
208 ]),
209 data = ["//:testdata"],
210 size = "large",
211 deps = [
212 ":core",
213 ":generic_test_protos_java_proto",
214 ":java_test_protos_java_proto",
215 ":test_util",
216 "//external:easymock",
217 "//external:easymock_classextension",
218 "//external:junit",
219 "//external:truth",
220 ]
221)
222
223java_lite_proto_library(
224 name = "generic_test_protos_java_proto_lite",
225 visibility = [
226 "//java/lite:__pkg__",
227 ],
228 deps = ["//:generic_test_protos"],
229)
230
231java_lite_proto_library(
232 name = "java_test_protos_java_proto_lite",
233 visibility = [
234 "//java/lite:__pkg__",
235 ],
236 deps = [":java_test_protos"],
237)
238
239genrule(
240 name = "rewrite_javalite_test_util",
241 srcs = [
242 "//java/lite:lite.awk",
243 "src/test/java/com/google/protobuf/TestUtil.java"
244 ],
245 outs = ["TestUtil.java"],
246 cmd = "awk -f $(location //java/lite:lite.awk) $(location src/test/java/com/google/protobuf/TestUtil.java) > $@"
247)
248
249java_library(
250 name = "test_util_lite",
251 srcs = [
252 ":rewrite_javalite_test_util",
253 "src/test/java/com/google/protobuf/TestUtilLite.java"
254 ],
255 visibility = [
256 "//java/lite:__pkg__",
257 ],
258 deps = [
259 ":generic_test_protos_java_proto_lite",
260 ":java_test_protos_java_proto_lite",
261 ":lite_runtime_only",
262 "//external:guava",
263 "//external:junit",
264 ],
265)
266
267LITE_TEST_EXCLUSIONS = [
268 # Keep in sync with //java/lite:pom.xml id=copy-test-source-files execution.
269 "src/test/java/com/google/protobuf/AbstractMessageTest.java",
270 "src/test/java/com/google/protobuf/AbstractProto2SchemaTest.java",
271 "src/test/java/com/google/protobuf/AnyTest.java",
272 "src/test/java/com/google/protobuf/CodedInputStreamTest.java",
273 "src/test/java/com/google/protobuf/DeprecatedFieldTest.java",
274 "src/test/java/com/google/protobuf/DescriptorsTest.java",
275 "src/test/java/com/google/protobuf/DiscardUnknownFieldsTest.java",
276 "src/test/java/com/google/protobuf/DynamicMessageTest.java",
277 "src/test/java/com/google/protobuf/ExtensionRegistryFactoryTest.java",
278 "src/test/java/com/google/protobuf/FieldPresenceTest.java",
279 "src/test/java/com/google/protobuf/ForceFieldBuildersPreRun.java",
280 "src/test/java/com/google/protobuf/GeneratedMessageTest.java",
281 "src/test/java/com/google/protobuf/LazyFieldTest.java",
282 "src/test/java/com/google/protobuf/LazyStringEndToEndTest.java",
283 "src/test/java/com/google/protobuf/MapForProto2Test.java",
284 "src/test/java/com/google/protobuf/MapTest.java",
285 "src/test/java/com/google/protobuf/MessageTest.java",
286 "src/test/java/com/google/protobuf/NestedBuildersTest.java",
287 "src/test/java/com/google/protobuf/PackedFieldTest.java",
288 "src/test/java/com/google/protobuf/ParserTest.java",
289 "src/test/java/com/google/protobuf/ParseExceptionsTest.java",
290 "src/test/java/com/google/protobuf/Proto2ExtensionLookupSchemaTest.java",
291 "src/test/java/com/google/protobuf/Proto2SchemaTest.java",
292 "src/test/java/com/google/protobuf/Proto2UnknownEnumValueTest.java",
293 "src/test/java/com/google/protobuf/RepeatedFieldBuilderV3Test.java",
294 "src/test/java/com/google/protobuf/ServiceTest.java",
295 "src/test/java/com/google/protobuf/SingleFieldBuilderV3Test.java",
296 "src/test/java/com/google/protobuf/TestBadIdentifiers.java",
297 "src/test/java/com/google/protobuf/TextFormatParseInfoTreeTest.java",
298 "src/test/java/com/google/protobuf/TextFormatParseLocationTest.java",
299 "src/test/java/com/google/protobuf/TextFormatTest.java",
300 "src/test/java/com/google/protobuf/TestUtil.java",
301 "src/test/java/com/google/protobuf/TestUtilLite.java",
302 "src/test/java/com/google/protobuf/TypeRegistryTest.java",
303 "src/test/java/com/google/protobuf/UnknownEnumValueTest.java",
304 "src/test/java/com/google/protobuf/UnknownFieldSetLiteTest.java",
305 "src/test/java/com/google/protobuf/UnknownFieldSetTest.java",
306 "src/test/java/com/google/protobuf/WellKnownTypesTest.java",
307 "src/test/java/com/google/protobuf/WireFormatTest.java",
308]
309
310junit_tests(
311 name = "lite_tests",
312 srcs = glob(["src/test/java/**/*.java"], exclude = LITE_TEST_EXCLUSIONS),
313 data = ["//:testdata"],
314 test_prefix = "Lite",
315 size = "large",
316 deps = [
317 ":lite",
318 ":generic_test_protos_java_proto_lite",
319 ":java_test_protos_java_proto_lite",
320 ":test_util_lite",
321 "//external:easymock",
322 "//external:easymock_classextension",
323 "//external:junit",
324 "//external:truth",
325 ]
326)