| # Conformance testing for Protobuf. |
| |
| load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_proto_library") |
| load( |
| "@rules_pkg//:mappings.bzl", |
| "pkg_attributes", |
| "pkg_filegroup", |
| "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 = [ |
| # Handled by dist_scripts: |
| "conformance_test_runner.sh", |
| |
| # The following are not in autotools dist: |
| "autoload.php", |
| "conformance_nodejs.js", |
| "failure_list_jruby.txt", |
| "update_failure_list.py", |
| ], |
| ), |
| strip_prefix = strip_prefix.from_root(""), |
| visibility = ["//pkg:__pkg__"], |
| ) |
| |
| pkg_files( |
| name = "dist_scripts", |
| srcs = ["conformance_test_runner.sh"], |
| attributes = pkg_attributes(mode = "0555"), |
| strip_prefix = strip_prefix.from_root(""), |
| visibility = ["//pkg:__pkg__"], |
| ) |
| |
| pkg_filegroup( |
| name = "all_dist_files", |
| srcs = [ |
| ":dist_files", |
| ":dist_scripts", |
| ], |
| visibility = ["//pkg:__pkg__"], |
| ) |