[Bazel] Move conformance test targets to //conformance. (#9922)
diff --git a/conformance/BUILD.bazel b/conformance/BUILD.bazel new file mode 100644 index 0000000..2b30604 --- /dev/null +++ b/conformance/BUILD.bazel
@@ -0,0 +1,160 @@ +# Conformance testing for Protobuf. + +load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test", "objc_library", "cc_proto_library") +load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") + +exports_files([ + "conformance_test_runner.sh", + "failure_list_java.txt", + "failure_list_java_lite.txt", + "text_format_failure_list_java.txt", + "text_format_failure_list_java_lite.txt", +]) + +cc_proto_library( + name = "test_messages_proto2_proto_cc", + deps = ["//:test_messages_proto2_proto"], +) + +cc_proto_library( + name = "test_messages_proto3_proto_cc", + deps = ["//:test_messages_proto3_proto"], +) + +proto_library( + name = "conformance_proto", + srcs = ["conformance.proto"], + visibility = ["//visibility:public"], +) + +cc_proto_library( + name = "conformance_proto_cc", + deps = [":conformance_proto"], +) + +java_proto_library( + name = "conformance_java_proto", + visibility = [ + "//java:__subpackages__", + ], + deps = [":conformance_proto"], +) + +java_lite_proto_library( + name = "conformance_java_proto_lite", + visibility = [ + "//java:__subpackages__", + ], + deps = [":conformance_proto"], +) + +cc_library( + name = "jsoncpp", + srcs = ["third_party/jsoncpp/jsoncpp.cpp"], + hdrs = ["third_party/jsoncpp/json.h"], + includes = ["."], +) + +cc_library( + name = "conformance_test", + srcs = [ + "conformance_test.cc", + "conformance_test_runner.cc", + ], + hdrs = [ + "conformance_test.h", + ], + includes = ["."], + deps = [":conformance_proto_cc"], +) + +cc_library( + name = "binary_json_conformance_suite", + srcs = ["binary_json_conformance_suite.cc"], + hdrs = ["binary_json_conformance_suite.h"], + deps = [ + ":conformance_test", + ":jsoncpp", + ":test_messages_proto2_proto_cc", + ":test_messages_proto3_proto_cc", + ], +) + +cc_library( + name = "text_format_conformance_suite", + srcs = ["text_format_conformance_suite.cc"], + hdrs = ["text_format_conformance_suite.h"], + deps = [ + ":conformance_test", + ":test_messages_proto2_proto_cc", + ":test_messages_proto3_proto_cc", + ], +) + +cc_binary( + name = "conformance_test_runner", + srcs = ["conformance_test_main.cc"], + visibility = ["//visibility:public"], + deps = [ + ":binary_json_conformance_suite", + ":conformance_test", + ":text_format_conformance_suite", + ], +) + +java_binary( + name = "conformance_java", + srcs = ["ConformanceJava.java"], + main_class = "ConformanceJava", + visibility = [ + "//java:__subpackages__", + ], + deps = [ + ":conformance_java_proto", + "//:protobuf_java", + "//:protobuf_java_util", + "//:test_messages_proto2_java_proto", + "//:test_messages_proto3_java_proto", + ], +) + +java_binary( + name = "conformance_java_lite", + srcs = ["ConformanceJavaLite.java"], + main_class = "ConformanceJavaLite", + visibility = [ + "//java:__subpackages__", + ], + deps = [ + ":conformance_java_proto_lite", + "//:protobuf_java_util", + "//:protobuf_javalite", + "//:test_messages_proto2_java_proto_lite", + "//:test_messages_proto3_java_proto_lite", + ], +) + +filegroup( + name = "all_files", + srcs = glob(["**/*"]), + visibility = ["//:__pkg__"], +) + +pkg_files( + name = "dist_files", + srcs = glob( + ["**/*"], + exclude = [ + # The following are not in autotools dist: + "conformance/autoload.php", + "conformance/conformance_nodejs.js", + "conformance/conformance_test_runner.sh", + "conformance/failure_list_java_lite.txt", + "conformance/failure_list_jruby.txt", + "conformance/text_format_failure_list_*.txt", + "conformance/update_failure_list.py", + ], + ), + strip_prefix = strip_prefix.from_root(""), + visibility = ["//pkg:__pkg__"], +)