123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394 |
- load("@bazel_skylib//rules:build_test.bzl", "build_test")
- load("@rules_java//java:defs.bzl", "java_library", "java_lite_proto_library", "java_proto_library")
- load("@rules_jvm_external//:defs.bzl", "java_export")
- load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library")
- load("//:internal.bzl", "conformance_test")
- load("//:protobuf_version.bzl", "PROTOBUF_VERSION")
- load("//java/internal:testing.bzl", "junit_tests")
- LITE_SRCS = [
- # Keep in sync with `//java/lite:pom.xml`.
- "src/main/java/com/google/protobuf/AbstractMessageLite.java",
- "src/main/java/com/google/protobuf/AbstractParser.java",
- "src/main/java/com/google/protobuf/AbstractProtobufList.java",
- "src/main/java/com/google/protobuf/AllocatedBuffer.java",
- "src/main/java/com/google/protobuf/Android.java",
- "src/main/java/com/google/protobuf/ArrayDecoders.java",
- "src/main/java/com/google/protobuf/BinaryReader.java",
- "src/main/java/com/google/protobuf/BinaryWriter.java",
- "src/main/java/com/google/protobuf/BooleanArrayList.java",
- "src/main/java/com/google/protobuf/BufferAllocator.java",
- "src/main/java/com/google/protobuf/ByteBufferWriter.java",
- "src/main/java/com/google/protobuf/ByteOutput.java",
- "src/main/java/com/google/protobuf/ByteString.java",
- "src/main/java/com/google/protobuf/CanIgnoreReturnValue.java",
- "src/main/java/com/google/protobuf/CheckReturnValue.java",
- "src/main/java/com/google/protobuf/CodedInputStream.java",
- "src/main/java/com/google/protobuf/CodedInputStreamReader.java",
- "src/main/java/com/google/protobuf/CodedOutputStream.java",
- "src/main/java/com/google/protobuf/CodedOutputStreamWriter.java",
- "src/main/java/com/google/protobuf/DoubleArrayList.java",
- "src/main/java/com/google/protobuf/ExperimentalApi.java",
- "src/main/java/com/google/protobuf/ExtensionLite.java",
- "src/main/java/com/google/protobuf/ExtensionRegistryFactory.java",
- "src/main/java/com/google/protobuf/ExtensionRegistryLite.java",
- "src/main/java/com/google/protobuf/ExtensionSchema.java",
- "src/main/java/com/google/protobuf/ExtensionSchemaLite.java",
- "src/main/java/com/google/protobuf/ExtensionSchemas.java",
- "src/main/java/com/google/protobuf/FieldInfo.java",
- "src/main/java/com/google/protobuf/FieldSet.java",
- "src/main/java/com/google/protobuf/FieldType.java",
- "src/main/java/com/google/protobuf/FloatArrayList.java",
- "src/main/java/com/google/protobuf/GeneratedMessageInfoFactory.java",
- "src/main/java/com/google/protobuf/GeneratedMessageLite.java",
- "src/main/java/com/google/protobuf/IntArrayList.java",
- "src/main/java/com/google/protobuf/Internal.java",
- "src/main/java/com/google/protobuf/InvalidProtocolBufferException.java",
- "src/main/java/com/google/protobuf/IterableByteBufferInputStream.java",
- "src/main/java/com/google/protobuf/JavaType.java",
- "src/main/java/com/google/protobuf/LazyField.java",
- "src/main/java/com/google/protobuf/LazyFieldLite.java",
- "src/main/java/com/google/protobuf/LazyStringArrayList.java",
- "src/main/java/com/google/protobuf/LazyStringList.java",
- "src/main/java/com/google/protobuf/ListFieldSchema.java",
- "src/main/java/com/google/protobuf/LongArrayList.java",
- "src/main/java/com/google/protobuf/ManifestSchemaFactory.java",
- "src/main/java/com/google/protobuf/MapEntryLite.java",
- "src/main/java/com/google/protobuf/MapFieldLite.java",
- "src/main/java/com/google/protobuf/MapFieldSchema.java",
- "src/main/java/com/google/protobuf/MapFieldSchemaLite.java",
- "src/main/java/com/google/protobuf/MapFieldSchemas.java",
- "src/main/java/com/google/protobuf/MessageInfo.java",
- "src/main/java/com/google/protobuf/MessageInfoFactory.java",
- "src/main/java/com/google/protobuf/MessageLite.java",
- "src/main/java/com/google/protobuf/MessageLiteOrBuilder.java",
- "src/main/java/com/google/protobuf/MessageLiteToString.java",
- "src/main/java/com/google/protobuf/MessageSchema.java",
- "src/main/java/com/google/protobuf/MessageSetSchema.java",
- "src/main/java/com/google/protobuf/MutabilityOracle.java",
- "src/main/java/com/google/protobuf/NewInstanceSchema.java",
- "src/main/java/com/google/protobuf/NewInstanceSchemaLite.java",
- "src/main/java/com/google/protobuf/NewInstanceSchemas.java",
- "src/main/java/com/google/protobuf/NioByteString.java",
- "src/main/java/com/google/protobuf/OneofInfo.java",
- "src/main/java/com/google/protobuf/Parser.java",
- "src/main/java/com/google/protobuf/PrimitiveNonBoxingCollection.java",
- "src/main/java/com/google/protobuf/ProtoSyntax.java",
- "src/main/java/com/google/protobuf/Protobuf.java",
- "src/main/java/com/google/protobuf/ProtobufArrayList.java",
- "src/main/java/com/google/protobuf/ProtobufLists.java",
- "src/main/java/com/google/protobuf/ProtocolStringList.java",
- "src/main/java/com/google/protobuf/RawMessageInfo.java",
- "src/main/java/com/google/protobuf/Reader.java",
- "src/main/java/com/google/protobuf/RopeByteString.java",
- "src/main/java/com/google/protobuf/Schema.java",
- "src/main/java/com/google/protobuf/SchemaFactory.java",
- "src/main/java/com/google/protobuf/SchemaUtil.java",
- "src/main/java/com/google/protobuf/SmallSortedMap.java",
- "src/main/java/com/google/protobuf/StructuralMessageInfo.java",
- "src/main/java/com/google/protobuf/TextFormatEscaper.java",
- "src/main/java/com/google/protobuf/UninitializedMessageException.java",
- "src/main/java/com/google/protobuf/UnknownFieldSchema.java",
- "src/main/java/com/google/protobuf/UnknownFieldSetLite.java",
- "src/main/java/com/google/protobuf/UnknownFieldSetLiteSchema.java",
- "src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java",
- "src/main/java/com/google/protobuf/UnsafeByteOperations.java",
- "src/main/java/com/google/protobuf/UnsafeUtil.java",
- "src/main/java/com/google/protobuf/Utf8.java",
- "src/main/java/com/google/protobuf/WireFormat.java",
- "src/main/java/com/google/protobuf/Writer.java",
- ]
- # Should be used as `//java/lite`.
- java_library(
- name = "lite",
- srcs = LITE_SRCS + [
- "//:gen_well_known_protos_javalite",
- ],
- visibility = [
- "//java/lite:__pkg__",
- ],
- )
- # Bazel users, don't depend on this target, use //java/lite.
- java_export(
- name = "lite_mvn",
- maven_coordinates = "com.google.protobuf:protobuf-javalite:%s" % PROTOBUF_VERSION,
- pom_template = "//java/lite:pom_template.xml",
- resources = [
- "//:lite_well_known_protos",
- ],
- runtime_deps = [":lite"],
- )
- java_library(
- name = "lite_runtime_only",
- srcs = LITE_SRCS,
- )
- java_library(
- name = "core",
- srcs = glob(
- [
- "src/main/java/com/google/protobuf/*.java",
- ],
- exclude = LITE_SRCS,
- ) + [
- "//:gen_well_known_protos_java",
- ],
- visibility = ["//visibility:public"],
- exports = [
- ":lite_runtime_only",
- ],
- deps = [
- ":lite_runtime_only",
- ],
- )
- # Bazel users, don't depend on this target, use :core.
- java_export(
- name = "core_mvn",
- maven_coordinates = "com.google.protobuf:protobuf-java:%s" % PROTOBUF_VERSION,
- pom_template = "pom_template.xml",
- resources = [
- "//:well_known_protos",
- ],
- runtime_deps = [":core"],
- )
- filegroup(
- name = "release",
- srcs = [
- ":core_mvn-docs",
- ":core_mvn-maven-source",
- ":core_mvn-pom",
- ":core_mvn-project",
- ":lite_mvn-docs",
- ":lite_mvn-maven-source",
- ":lite_mvn-pom",
- ":lite_mvn-project",
- ],
- visibility = ["//java:__pkg__"],
- )
- proto_lang_toolchain(
- name = "toolchain",
- command_line = "--java_out=$(OUT)",
- runtime = ":core",
- visibility = ["//visibility:public"],
- )
- proto_library(
- name = "java_test_protos",
- srcs = glob(["src/test/proto/**/*.proto"]),
- strip_import_prefix = "src/test/proto",
- deps = [
- "//:any_proto",
- "//:descriptor_proto",
- "//:generic_test_protos",
- "//:wrappers_proto",
- ],
- )
- java_proto_library(
- name = "generic_test_protos_java_proto",
- visibility = [
- "//java:__subpackages__",
- ],
- deps = ["//:generic_test_protos"],
- )
- java_proto_library(
- name = "java_test_protos_java_proto",
- deps = [":java_test_protos"],
- )
- java_library(
- name = "test_util",
- srcs = [
- "src/test/java/com/google/protobuf/TestUtil.java",
- "src/test/java/com/google/protobuf/TestUtilLite.java",
- ],
- deps = [
- ":core",
- ":generic_test_protos_java_proto",
- ":java_test_protos_java_proto",
- "@maven//:com_google_guava_guava",
- "@maven//:junit_junit",
- ],
- )
- test_suite(
- name = "tests",
- tests = [
- "conformance_test",
- "core_build_test",
- "core_tests",
- "utf8_tests",
- ],
- )
- build_test(
- name = "core_build_test",
- targets = [
- ":core",
- ],
- )
- conformance_test(
- name = "conformance_test",
- failure_list = "//:conformance/failure_list_java.txt",
- testee = "//:conformance_java",
- text_format_failure_list = "//:conformance/text_format_failure_list_java.txt",
- )
- junit_tests(
- name = "core_tests",
- size = "small",
- srcs = glob(
- ["src/test/java/**/*.java"],
- exclude = [
- "src/test/java/com/google/protobuf/DecodeUtf8Test.java",
- "src/test/java/com/google/protobuf/IsValidUtf8Test.java",
- "src/test/java/com/google/protobuf/TestUtil.java",
- "src/test/java/com/google/protobuf/TestUtilLite.java",
- ],
- ),
- data = ["//:testdata"],
- deps = [
- ":core",
- ":generic_test_protos_java_proto",
- ":java_test_protos_java_proto",
- ":test_util",
- "@maven//:com_google_guava_guava",
- "@maven//:com_google_truth_truth",
- "@maven//:junit_junit",
- "@maven//:org_easymock_easymock",
- ],
- )
- # The UTF-8 validation tests are much slower than the other tests, so they get
- # their own test target with a longer timeout.
- junit_tests(
- name = "utf8_tests",
- size = "large",
- srcs = [
- "src/test/java/com/google/protobuf/DecodeUtf8Test.java",
- "src/test/java/com/google/protobuf/IsValidUtf8Test.java",
- "src/test/java/com/google/protobuf/IsValidUtf8TestUtil.java",
- ],
- deps = [
- ":core",
- "@maven//:com_google_guava_guava",
- "@maven//:com_google_truth_truth",
- "@maven//:junit_junit",
- ],
- )
- java_lite_proto_library(
- name = "generic_test_protos_java_proto_lite",
- visibility = [
- "//java/lite:__pkg__",
- ],
- deps = ["//:generic_test_protos"],
- )
- java_lite_proto_library(
- name = "java_test_protos_java_proto_lite",
- visibility = [
- "//java/lite:__pkg__",
- ],
- deps = [":java_test_protos"],
- )
- genrule(
- name = "rewrite_javalite_test_util",
- srcs = [
- "//java/lite:lite.awk",
- "src/test/java/com/google/protobuf/TestUtil.java",
- ],
- outs = ["TestUtil.java"],
- cmd = "awk -f $(location //java/lite:lite.awk) $(location src/test/java/com/google/protobuf/TestUtil.java) > $@",
- )
- java_library(
- name = "test_util_lite",
- srcs = [
- "src/test/java/com/google/protobuf/TestUtilLite.java",
- ":rewrite_javalite_test_util",
- ],
- visibility = [
- "//java/lite:__pkg__",
- ],
- deps = [
- ":generic_test_protos_java_proto_lite",
- ":java_test_protos_java_proto_lite",
- ":lite_runtime_only",
- "@maven//:com_google_guava_guava",
- "@maven//:junit_junit",
- ],
- )
- LITE_TEST_EXCLUSIONS = [
- # Keep in sync with //java/lite:pom.xml id=copy-test-source-files execution.
- "src/test/java/com/google/protobuf/AbstractMessageTest.java",
- "src/test/java/com/google/protobuf/AbstractProto2SchemaTest.java",
- "src/test/java/com/google/protobuf/AnyTest.java",
- "src/test/java/com/google/protobuf/CodedInputStreamTest.java",
- "src/test/java/com/google/protobuf/DeprecatedFieldTest.java",
- "src/test/java/com/google/protobuf/DescriptorsTest.java",
- "src/test/java/com/google/protobuf/DiscardUnknownFieldsTest.java",
- "src/test/java/com/google/protobuf/DynamicMessageTest.java",
- "src/test/java/com/google/protobuf/ExtensionRegistryFactoryTest.java",
- "src/test/java/com/google/protobuf/FieldPresenceTest.java",
- "src/test/java/com/google/protobuf/ForceFieldBuildersPreRun.java",
- "src/test/java/com/google/protobuf/GeneratedMessageTest.java",
- "src/test/java/com/google/protobuf/LazyFieldTest.java",
- "src/test/java/com/google/protobuf/LazyStringEndToEndTest.java",
- "src/test/java/com/google/protobuf/MapForProto2Test.java",
- "src/test/java/com/google/protobuf/MapTest.java",
- "src/test/java/com/google/protobuf/MessageTest.java",
- "src/test/java/com/google/protobuf/NestedBuildersTest.java",
- "src/test/java/com/google/protobuf/PackedFieldTest.java",
- "src/test/java/com/google/protobuf/ParserTest.java",
- "src/test/java/com/google/protobuf/ParseExceptionsTest.java",
- "src/test/java/com/google/protobuf/Proto2ExtensionLookupSchemaTest.java",
- "src/test/java/com/google/protobuf/Proto2SchemaTest.java",
- "src/test/java/com/google/protobuf/Proto2UnknownEnumValueTest.java",
- "src/test/java/com/google/protobuf/RepeatedFieldBuilderV3Test.java",
- "src/test/java/com/google/protobuf/ServiceTest.java",
- "src/test/java/com/google/protobuf/SingleFieldBuilderV3Test.java",
- "src/test/java/com/google/protobuf/TestBadIdentifiers.java",
- "src/test/java/com/google/protobuf/TextFormatParseInfoTreeTest.java",
- "src/test/java/com/google/protobuf/TextFormatParseLocationTest.java",
- "src/test/java/com/google/protobuf/TextFormatTest.java",
- "src/test/java/com/google/protobuf/TestUtil.java",
- "src/test/java/com/google/protobuf/TestUtilLite.java",
- "src/test/java/com/google/protobuf/TypeRegistryTest.java",
- "src/test/java/com/google/protobuf/UnknownEnumValueTest.java",
- "src/test/java/com/google/protobuf/UnknownFieldSetLiteTest.java",
- "src/test/java/com/google/protobuf/UnknownFieldSetPerformanceTest.java",
- "src/test/java/com/google/protobuf/UnknownFieldSetTest.java",
- "src/test/java/com/google/protobuf/WellKnownTypesTest.java",
- "src/test/java/com/google/protobuf/WireFormatTest.java",
- ]
- junit_tests(
- name = "lite_tests",
- size = "large",
- srcs = glob(
- ["src/test/java/**/*.java"],
- exclude = LITE_TEST_EXCLUSIONS,
- ),
- data = ["//:testdata"],
- test_prefix = "Lite",
- deps = [
- ":generic_test_protos_java_proto_lite",
- ":java_test_protos_java_proto_lite",
- ":lite",
- ":test_util_lite",
- "@maven//:com_google_truth_truth",
- "@maven//:junit_junit",
- "@maven//:org_easymock_easymock",
- ],
- )
|