1*1b3f573fSAndroid Build Coastguard Worker# Conformance testing for Protobuf. 2*1b3f573fSAndroid Build Coastguard Worker 3*1b3f573fSAndroid Build Coastguard Workerload("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_proto_library") 4*1b3f573fSAndroid Build Coastguard Workerload( 5*1b3f573fSAndroid Build Coastguard Worker "@rules_pkg//:mappings.bzl", 6*1b3f573fSAndroid Build Coastguard Worker "pkg_attributes", 7*1b3f573fSAndroid Build Coastguard Worker "pkg_filegroup", 8*1b3f573fSAndroid Build Coastguard Worker "pkg_files", 9*1b3f573fSAndroid Build Coastguard Worker "strip_prefix", 10*1b3f573fSAndroid Build Coastguard Worker) 11*1b3f573fSAndroid Build Coastguard Worker 12*1b3f573fSAndroid Build Coastguard Workerexports_files([ 13*1b3f573fSAndroid Build Coastguard Worker "conformance_test_runner.sh", 14*1b3f573fSAndroid Build Coastguard Worker "failure_list_java.txt", 15*1b3f573fSAndroid Build Coastguard Worker "failure_list_java_lite.txt", 16*1b3f573fSAndroid Build Coastguard Worker "text_format_failure_list_java.txt", 17*1b3f573fSAndroid Build Coastguard Worker "text_format_failure_list_java_lite.txt", 18*1b3f573fSAndroid Build Coastguard Worker]) 19*1b3f573fSAndroid Build Coastguard Worker 20*1b3f573fSAndroid Build Coastguard Workercc_proto_library( 21*1b3f573fSAndroid Build Coastguard Worker name = "test_messages_proto2_proto_cc", 22*1b3f573fSAndroid Build Coastguard Worker deps = ["//:test_messages_proto2_proto"], 23*1b3f573fSAndroid Build Coastguard Worker) 24*1b3f573fSAndroid Build Coastguard Worker 25*1b3f573fSAndroid Build Coastguard Workercc_proto_library( 26*1b3f573fSAndroid Build Coastguard Worker name = "test_messages_proto3_proto_cc", 27*1b3f573fSAndroid Build Coastguard Worker deps = ["//:test_messages_proto3_proto"], 28*1b3f573fSAndroid Build Coastguard Worker) 29*1b3f573fSAndroid Build Coastguard Worker 30*1b3f573fSAndroid Build Coastguard Workerproto_library( 31*1b3f573fSAndroid Build Coastguard Worker name = "conformance_proto", 32*1b3f573fSAndroid Build Coastguard Worker srcs = ["conformance.proto"], 33*1b3f573fSAndroid Build Coastguard Worker visibility = ["//visibility:public"], 34*1b3f573fSAndroid Build Coastguard Worker) 35*1b3f573fSAndroid Build Coastguard Worker 36*1b3f573fSAndroid Build Coastguard Workercc_proto_library( 37*1b3f573fSAndroid Build Coastguard Worker name = "conformance_proto_cc", 38*1b3f573fSAndroid Build Coastguard Worker deps = [":conformance_proto"], 39*1b3f573fSAndroid Build Coastguard Worker) 40*1b3f573fSAndroid Build Coastguard Worker 41*1b3f573fSAndroid Build Coastguard Workerjava_proto_library( 42*1b3f573fSAndroid Build Coastguard Worker name = "conformance_java_proto", 43*1b3f573fSAndroid Build Coastguard Worker visibility = [ 44*1b3f573fSAndroid Build Coastguard Worker "//java:__subpackages__", 45*1b3f573fSAndroid Build Coastguard Worker ], 46*1b3f573fSAndroid Build Coastguard Worker deps = [":conformance_proto"], 47*1b3f573fSAndroid Build Coastguard Worker) 48*1b3f573fSAndroid Build Coastguard Worker 49*1b3f573fSAndroid Build Coastguard Workerjava_lite_proto_library( 50*1b3f573fSAndroid Build Coastguard Worker name = "conformance_java_proto_lite", 51*1b3f573fSAndroid Build Coastguard Worker visibility = [ 52*1b3f573fSAndroid Build Coastguard Worker "//java:__subpackages__", 53*1b3f573fSAndroid Build Coastguard Worker ], 54*1b3f573fSAndroid Build Coastguard Worker deps = [":conformance_proto"], 55*1b3f573fSAndroid Build Coastguard Worker) 56*1b3f573fSAndroid Build Coastguard Worker 57*1b3f573fSAndroid Build Coastguard Workercc_library( 58*1b3f573fSAndroid Build Coastguard Worker name = "jsoncpp", 59*1b3f573fSAndroid Build Coastguard Worker srcs = ["third_party/jsoncpp/jsoncpp.cpp"], 60*1b3f573fSAndroid Build Coastguard Worker hdrs = ["third_party/jsoncpp/json.h"], 61*1b3f573fSAndroid Build Coastguard Worker includes = ["."], 62*1b3f573fSAndroid Build Coastguard Worker) 63*1b3f573fSAndroid Build Coastguard Worker 64*1b3f573fSAndroid Build Coastguard Workercc_library( 65*1b3f573fSAndroid Build Coastguard Worker name = "conformance_test", 66*1b3f573fSAndroid Build Coastguard Worker srcs = [ 67*1b3f573fSAndroid Build Coastguard Worker "conformance_test.cc", 68*1b3f573fSAndroid Build Coastguard Worker "conformance_test_runner.cc", 69*1b3f573fSAndroid Build Coastguard Worker ], 70*1b3f573fSAndroid Build Coastguard Worker hdrs = [ 71*1b3f573fSAndroid Build Coastguard Worker "conformance_test.h", 72*1b3f573fSAndroid Build Coastguard Worker ], 73*1b3f573fSAndroid Build Coastguard Worker includes = ["."], 74*1b3f573fSAndroid Build Coastguard Worker deps = [":conformance_proto_cc"], 75*1b3f573fSAndroid Build Coastguard Worker) 76*1b3f573fSAndroid Build Coastguard Worker 77*1b3f573fSAndroid Build Coastguard Workercc_library( 78*1b3f573fSAndroid Build Coastguard Worker name = "binary_json_conformance_suite", 79*1b3f573fSAndroid Build Coastguard Worker srcs = ["binary_json_conformance_suite.cc"], 80*1b3f573fSAndroid Build Coastguard Worker hdrs = ["binary_json_conformance_suite.h"], 81*1b3f573fSAndroid Build Coastguard Worker deps = [ 82*1b3f573fSAndroid Build Coastguard Worker ":conformance_test", 83*1b3f573fSAndroid Build Coastguard Worker ":jsoncpp", 84*1b3f573fSAndroid Build Coastguard Worker ":test_messages_proto2_proto_cc", 85*1b3f573fSAndroid Build Coastguard Worker ":test_messages_proto3_proto_cc", 86*1b3f573fSAndroid Build Coastguard Worker ], 87*1b3f573fSAndroid Build Coastguard Worker) 88*1b3f573fSAndroid Build Coastguard Worker 89*1b3f573fSAndroid Build Coastguard Workercc_library( 90*1b3f573fSAndroid Build Coastguard Worker name = "text_format_conformance_suite", 91*1b3f573fSAndroid Build Coastguard Worker srcs = ["text_format_conformance_suite.cc"], 92*1b3f573fSAndroid Build Coastguard Worker hdrs = ["text_format_conformance_suite.h"], 93*1b3f573fSAndroid Build Coastguard Worker deps = [ 94*1b3f573fSAndroid Build Coastguard Worker ":conformance_test", 95*1b3f573fSAndroid Build Coastguard Worker ":test_messages_proto2_proto_cc", 96*1b3f573fSAndroid Build Coastguard Worker ":test_messages_proto3_proto_cc", 97*1b3f573fSAndroid Build Coastguard Worker ], 98*1b3f573fSAndroid Build Coastguard Worker) 99*1b3f573fSAndroid Build Coastguard Worker 100*1b3f573fSAndroid Build Coastguard Workercc_binary( 101*1b3f573fSAndroid Build Coastguard Worker name = "conformance_test_runner", 102*1b3f573fSAndroid Build Coastguard Worker srcs = ["conformance_test_main.cc"], 103*1b3f573fSAndroid Build Coastguard Worker visibility = ["//visibility:public"], 104*1b3f573fSAndroid Build Coastguard Worker deps = [ 105*1b3f573fSAndroid Build Coastguard Worker ":binary_json_conformance_suite", 106*1b3f573fSAndroid Build Coastguard Worker ":conformance_test", 107*1b3f573fSAndroid Build Coastguard Worker ":text_format_conformance_suite", 108*1b3f573fSAndroid Build Coastguard Worker ], 109*1b3f573fSAndroid Build Coastguard Worker) 110*1b3f573fSAndroid Build Coastguard Worker 111*1b3f573fSAndroid Build Coastguard Workerjava_binary( 112*1b3f573fSAndroid Build Coastguard Worker name = "conformance_java", 113*1b3f573fSAndroid Build Coastguard Worker srcs = ["ConformanceJava.java"], 114*1b3f573fSAndroid Build Coastguard Worker main_class = "ConformanceJava", 115*1b3f573fSAndroid Build Coastguard Worker visibility = [ 116*1b3f573fSAndroid Build Coastguard Worker "//java:__subpackages__", 117*1b3f573fSAndroid Build Coastguard Worker ], 118*1b3f573fSAndroid Build Coastguard Worker deps = [ 119*1b3f573fSAndroid Build Coastguard Worker ":conformance_java_proto", 120*1b3f573fSAndroid Build Coastguard Worker "//:protobuf_java", 121*1b3f573fSAndroid Build Coastguard Worker "//:protobuf_java_util", 122*1b3f573fSAndroid Build Coastguard Worker "//:test_messages_proto2_java_proto", 123*1b3f573fSAndroid Build Coastguard Worker "//:test_messages_proto3_java_proto", 124*1b3f573fSAndroid Build Coastguard Worker ], 125*1b3f573fSAndroid Build Coastguard Worker) 126*1b3f573fSAndroid Build Coastguard Worker 127*1b3f573fSAndroid Build Coastguard Workerjava_binary( 128*1b3f573fSAndroid Build Coastguard Worker name = "conformance_java_lite", 129*1b3f573fSAndroid Build Coastguard Worker srcs = ["ConformanceJavaLite.java"], 130*1b3f573fSAndroid Build Coastguard Worker main_class = "ConformanceJavaLite", 131*1b3f573fSAndroid Build Coastguard Worker visibility = [ 132*1b3f573fSAndroid Build Coastguard Worker "//java:__subpackages__", 133*1b3f573fSAndroid Build Coastguard Worker ], 134*1b3f573fSAndroid Build Coastguard Worker deps = [ 135*1b3f573fSAndroid Build Coastguard Worker ":conformance_java_proto_lite", 136*1b3f573fSAndroid Build Coastguard Worker "//:protobuf_java_util", 137*1b3f573fSAndroid Build Coastguard Worker "//:protobuf_javalite", 138*1b3f573fSAndroid Build Coastguard Worker "//:test_messages_proto2_java_proto_lite", 139*1b3f573fSAndroid Build Coastguard Worker "//:test_messages_proto3_java_proto_lite", 140*1b3f573fSAndroid Build Coastguard Worker ], 141*1b3f573fSAndroid Build Coastguard Worker) 142*1b3f573fSAndroid Build Coastguard Worker 143*1b3f573fSAndroid Build Coastguard Workerfilegroup( 144*1b3f573fSAndroid Build Coastguard Worker name = "all_files", 145*1b3f573fSAndroid Build Coastguard Worker srcs = glob(["**/*"]), 146*1b3f573fSAndroid Build Coastguard Worker visibility = ["//:__pkg__"], 147*1b3f573fSAndroid Build Coastguard Worker) 148*1b3f573fSAndroid Build Coastguard Worker 149*1b3f573fSAndroid Build Coastguard Workerpkg_files( 150*1b3f573fSAndroid Build Coastguard Worker name = "dist_files", 151*1b3f573fSAndroid Build Coastguard Worker srcs = glob( 152*1b3f573fSAndroid Build Coastguard Worker ["**/*"], 153*1b3f573fSAndroid Build Coastguard Worker exclude = [ 154*1b3f573fSAndroid Build Coastguard Worker # Handled by dist_scripts: 155*1b3f573fSAndroid Build Coastguard Worker "conformance_test_runner.sh", 156*1b3f573fSAndroid Build Coastguard Worker 157*1b3f573fSAndroid Build Coastguard Worker # The following are not in autotools dist: 158*1b3f573fSAndroid Build Coastguard Worker "autoload.php", 159*1b3f573fSAndroid Build Coastguard Worker "conformance_nodejs.js", 160*1b3f573fSAndroid Build Coastguard Worker "failure_list_jruby.txt", 161*1b3f573fSAndroid Build Coastguard Worker "update_failure_list.py", 162*1b3f573fSAndroid Build Coastguard Worker ], 163*1b3f573fSAndroid Build Coastguard Worker ), 164*1b3f573fSAndroid Build Coastguard Worker strip_prefix = strip_prefix.from_root(""), 165*1b3f573fSAndroid Build Coastguard Worker visibility = ["//pkg:__pkg__"], 166*1b3f573fSAndroid Build Coastguard Worker) 167*1b3f573fSAndroid Build Coastguard Worker 168*1b3f573fSAndroid Build Coastguard Workerpkg_files( 169*1b3f573fSAndroid Build Coastguard Worker name = "dist_scripts", 170*1b3f573fSAndroid Build Coastguard Worker srcs = ["conformance_test_runner.sh"], 171*1b3f573fSAndroid Build Coastguard Worker attributes = pkg_attributes(mode = "0555"), 172*1b3f573fSAndroid Build Coastguard Worker strip_prefix = strip_prefix.from_root(""), 173*1b3f573fSAndroid Build Coastguard Worker visibility = ["//pkg:__pkg__"], 174*1b3f573fSAndroid Build Coastguard Worker) 175*1b3f573fSAndroid Build Coastguard Worker 176*1b3f573fSAndroid Build Coastguard Workerpkg_filegroup( 177*1b3f573fSAndroid Build Coastguard Worker name = "all_dist_files", 178*1b3f573fSAndroid Build Coastguard Worker srcs = [ 179*1b3f573fSAndroid Build Coastguard Worker ":dist_files", 180*1b3f573fSAndroid Build Coastguard Worker ":dist_scripts", 181*1b3f573fSAndroid Build Coastguard Worker ], 182*1b3f573fSAndroid Build Coastguard Worker visibility = ["//pkg:__pkg__"], 183*1b3f573fSAndroid Build Coastguard Worker) 184