Set up Protobuf unit tests.
Bug: 285597728
Test: atest --host
Change-Id: Iec2f290b690b7b77bb3a97c80ca366ad2910cac8
diff --git a/Android.bp b/Android.bp
index da65127..8def3a8 100644
--- a/Android.bp
+++ b/Android.bp
@@ -733,6 +733,213 @@
path: "src",
}
+// Unit tests
+// =======================================================
+cc_defaults {
+ name: "libprotobuf-test-defaults",
+ host_supported: true,
+ compile_multilib: "64",
+ proto: {
+ local_include_dirs: ["src"],
+ canonical_path_from_root: false,
+ },
+ shared_libs: ["liblog"],
+}
+
+filegroup {
+ name: "libprotobuf-test-protos-lite",
+ srcs: [
+ "src/google/protobuf/map_lite_unittest.proto",
+ "src/google/protobuf/unittest_import.proto",
+ "src/google/protobuf/unittest_import_lite.proto",
+ "src/google/protobuf/unittest_import_public.proto",
+ "src/google/protobuf/unittest_import_public_lite.proto",
+ "src/google/protobuf/unittest_lite.proto",
+ "src/google/protobuf/unittest_proto3.proto",
+ "src/google/protobuf/unittest_proto3_arena.proto",
+ ],
+ path: "src",
+}
+
+// Full test protos include some lite protos, because they are used in
+// unknown_field_set_unittest.cc, which mixes full and lite protos.
+// Full protos are a strict superset of lite protos, so this shouldn't
+// matter for the test.
+filegroup {
+ name: "libprotobuf-test-protos-full",
+ srcs: [
+ "src/google/protobuf/any_test.proto",
+ "src/google/protobuf/map_unittest.proto",
+ "src/google/protobuf/map_proto2_unittest.proto",
+ "src/google/protobuf/test_messages_proto2.proto",
+ "src/google/protobuf/test_messages_proto3.proto",
+ "src/google/protobuf/unittest.proto",
+ "src/google/protobuf/unittest_arena.proto",
+ "src/google/protobuf/unittest_custom_options.proto",
+ "src/google/protobuf/unittest_drop_unknown_fields.proto",
+ "src/google/protobuf/unittest_embed_optimize_for.proto",
+ "src/google/protobuf/unittest_empty.proto",
+ "src/google/protobuf/unittest_enormous_descriptor.proto",
+ "src/google/protobuf/unittest_import.proto",
+ "src/google/protobuf/unittest_import_lite.proto",
+ "src/google/protobuf/unittest_import_public.proto",
+ "src/google/protobuf/unittest_import_public_lite.proto",
+ "src/google/protobuf/unittest_lazy_dependencies.proto",
+ "src/google/protobuf/unittest_lazy_dependencies_custom_option.proto",
+ "src/google/protobuf/unittest_lazy_dependencies_enum.proto",
+ "src/google/protobuf/unittest_lite.proto",
+ "src/google/protobuf/unittest_mset_wire_format.proto",
+ "src/google/protobuf/unittest_mset.proto",
+ "src/google/protobuf/unittest_no_field_presence.proto",
+ "src/google/protobuf/unittest_no_generic_services.proto",
+ "src/google/protobuf/unittest_optimize_for.proto",
+ "src/google/protobuf/unittest_preserve_unknown_enum.proto",
+ "src/google/protobuf/unittest_preserve_unknown_enum2.proto",
+ "src/google/protobuf/unittest_proto3_arena.proto",
+ "src/google/protobuf/unittest_proto3_optional.proto",
+ "src/google/protobuf/unittest_proto3.proto",
+ "src/google/protobuf/unittest_well_known_types.proto",
+ "src/google/protobuf/util/internal/testdata/anys.proto",
+ "src/google/protobuf/util/internal/testdata/books.proto",
+ "src/google/protobuf/util/internal/testdata/default_value.proto",
+ "src/google/protobuf/util/internal/testdata/default_value_test.proto",
+ "src/google/protobuf/util/internal/testdata/field_mask.proto",
+ "src/google/protobuf/util/internal/testdata/maps.proto",
+ "src/google/protobuf/util/internal/testdata/oneofs.proto",
+ "src/google/protobuf/util/internal/testdata/proto3.proto",
+ "src/google/protobuf/util/internal/testdata/struct.proto",
+ "src/google/protobuf/util/internal/testdata/timestamp_duration.proto",
+ "src/google/protobuf/util/internal/testdata/wrappers.proto",
+ "src/google/protobuf/util/json_format.proto",
+ "src/google/protobuf/util/json_format_proto3.proto",
+ "src/google/protobuf/util/message_differencer_unittest.proto",
+ ],
+ path: "src",
+}
+
+cc_test {
+ name: "libprotobuf-lite-test",
+ defaults: ["libprotobuf-test-defaults"],
+ srcs: [
+ "src/google/protobuf/arena_test_util.cc",
+ "src/google/protobuf/generated_message_tctable_lite_test.cc",
+ "src/google/protobuf/lite_arena_unittest.cc",
+ "src/google/protobuf/lite_unittest.cc",
+ "src/google/protobuf/map_lite_test_util.cc",
+ "src/google/protobuf/proto3_arena_lite_unittest.cc",
+ "src/google/protobuf/proto3_lite_unittest.cc",
+ "src/google/protobuf/test_util_lite.cc",
+ ":libprotobuf-test-protos-lite",
+ ],
+ cflags: [
+ // Occurs in generated_message_tctable_lite_test.cc
+ "-Wno-missing-field-initializers",
+ ],
+ proto: {
+ type: "lite",
+ },
+ static_libs: [
+ "libgmock",
+ "libprotobuf-cpp-lite",
+ ],
+ whole_static_libs: ["libgtest_main"],
+}
+
+cc_test {
+ name: "libprotobuf-full-test",
+ defaults: ["libprotobuf-test-defaults"],
+ srcs: [
+ "src/google/protobuf/any_test.cc",
+ "src/google/protobuf/arena_test_util.cc",
+ "src/google/protobuf/arena_unittest.cc",
+ "src/google/protobuf/arenastring_unittest.cc",
+ "src/google/protobuf/arenaz_sampler_test.cc",
+ "src/google/protobuf/descriptor_database_unittest.cc",
+ "src/google/protobuf/descriptor_unittest.cc",
+ "src/google/protobuf/drop_unknown_fields_test.cc",
+ "src/google/protobuf/dynamic_message_unittest.cc",
+ "src/google/protobuf/extension_set_unittest.cc",
+ "src/google/protobuf/generated_message_reflection_unittest.cc",
+ "src/google/protobuf/inlined_string_field_unittest.cc",
+ "src/google/protobuf/io/coded_stream_unittest.cc",
+ "src/google/protobuf/io/io_win32_unittest.cc",
+ "src/google/protobuf/io/printer_unittest.cc",
+ "src/google/protobuf/io/tokenizer_unittest.cc",
+ "src/google/protobuf/io/zero_copy_stream_unittest.cc",
+ "src/google/protobuf/map_field_test.cc",
+ "src/google/protobuf/map_test.cc",
+ "src/google/protobuf/message_unittest.cc",
+ "src/google/protobuf/no_field_presence_test.cc",
+ "src/google/protobuf/preserve_unknown_enum_test.cc",
+ "src/google/protobuf/proto3_arena_unittest.cc",
+ "src/google/protobuf/reflection_ops_unittest.cc",
+ "src/google/protobuf/reflection_tester.cc",
+ "src/google/protobuf/repeated_field_reflection_unittest.cc",
+ "src/google/protobuf/repeated_field_unittest.cc",
+ "src/google/protobuf/testing/googletest.cc",
+ "src/google/protobuf/testing/file.cc",
+ "src/google/protobuf/test_util.cc",
+ "src/google/protobuf/text_format_unittest.cc",
+ "src/google/protobuf/unknown_field_set_unittest.cc",
+ "src/google/protobuf/util/delimited_message_util_test.cc",
+ "src/google/protobuf/util/field_comparator_test.cc",
+ "src/google/protobuf/util/field_mask_util_test.cc",
+ "src/google/protobuf/util/internal/default_value_objectwriter_test.cc",
+ "src/google/protobuf/util/internal/json_objectwriter_test.cc",
+ "src/google/protobuf/util/internal/json_stream_parser_test.cc",
+ "src/google/protobuf/util/internal/protostream_objectsource_test.cc",
+ "src/google/protobuf/util/internal/protostream_objectwriter_test.cc",
+ "src/google/protobuf/util/internal/type_info_test_helper.cc",
+ "src/google/protobuf/util/json_util_test.cc",
+ "src/google/protobuf/util/message_differencer_unittest.cc",
+ "src/google/protobuf/util/time_util_test.cc",
+ "src/google/protobuf/util/type_resolver_util_test.cc",
+ "src/google/protobuf/well_known_types_unittest.cc",
+ "src/google/protobuf/wire_format_unittest.cc",
+ ":libprotobuf-test-protos-full",
+ ],
+ data: [
+ "src/google/protobuf/testdata/*",
+ ],
+ cflags: ["-Wno-unused-parameter"],
+ proto: {
+ type: "full",
+ },
+ static_libs: [
+ "libbase",
+ "libgmock",
+ ],
+ whole_static_libs: ["libgtest_main"],
+ shared_libs: ["libprotobuf-cpp-full"],
+}
+
+cc_test {
+ name: "libprotobuf-stubs-test",
+ defaults: ["libprotobuf-test-defaults"],
+ srcs: [
+ "src/google/protobuf/stubs/bytestream_unittest.cc",
+ "src/google/protobuf/stubs/common_unittest.cc",
+ "src/google/protobuf/stubs/int128_unittest.cc",
+ "src/google/protobuf/stubs/status_test.cc",
+ "src/google/protobuf/stubs/statusor_test.cc",
+ "src/google/protobuf/stubs/stringpiece_unittest.cc",
+ "src/google/protobuf/stubs/stringprintf_unittest.cc",
+ "src/google/protobuf/stubs/structurally_valid_unittest.cc",
+ "src/google/protobuf/stubs/strutil_unittest.cc",
+ "src/google/protobuf/stubs/template_util_unittest.cc",
+ "src/google/protobuf/stubs/time_test.cc",
+ "src/google/protobuf/testing/googletest.cc",
+ "src/google/protobuf/testing/file.cc",
+ ],
+ cflags: ["-Wno-unused-parameter"],
+ static_libs: [
+ "libbase",
+ "libgmock",
+ ],
+ whole_static_libs: ["libgtest_main"],
+ shared_libs: ["libprotobuf-cpp-full"],
+}
+
// To test java proto params build rules.
// =======================================================
java_test {