1load("@aspect_bazel_lib//lib:copy_to_bin.bzl", "copy_to_bin") 2load("@rules_cc//cc:defs.bzl", "cc_test") 3load("//:build_defs.bzl", "DEFAULT_FLATC_ARGS", "flatbuffer_cc_library") 4 5package(default_visibility = ["//visibility:private"]) 6 7# rules_js works around various JS tooling limitations by copying everything 8# into the output directory. Make the test data available to the tests this way. 9copy_to_bin( 10 name = "test_data_copied_to_bin", 11 srcs = glob([ 12 "*.mon", 13 "*.json", 14 ]), 15 visibility = ["//tests/ts:__subpackages__"], 16) 17 18# Test binary. 19cc_test( 20 name = "flatbuffers_test", 21 testonly = 1, 22 srcs = [ 23 "64bit/evolution/v1_generated.h", 24 "64bit/evolution/v2_generated.h", 25 "64bit/offset64_test.cpp", 26 "64bit/offset64_test.h", 27 "64bit/test_64bit_bfbs_generated.h", 28 "64bit/test_64bit_generated.h", 29 "alignment_test.cpp", 30 "alignment_test.h", 31 "alignment_test_generated.h", 32 "evolution_test.cpp", 33 "evolution_test.h", 34 "evolution_test/evolution_v1_generated.h", 35 "evolution_test/evolution_v2_generated.h", 36 "flexbuffers_test.cpp", 37 "flexbuffers_test.h", 38 "fuzz_test.cpp", 39 "fuzz_test.h", 40 "is_quiet_nan.h", 41 "json_test.cpp", 42 "json_test.h", 43 "key_field/key_field_sample_generated.h", 44 "key_field_test.cpp", 45 "key_field_test.h", 46 "monster_test.cpp", 47 "monster_test.h", 48 "monster_test_bfbs_generated.h", 49 "namespace_test/namespace_test1_generated.h", 50 "namespace_test/namespace_test2_generated.h", 51 "native_inline_table_test_generated.h", 52 "native_type_test_impl.cpp", 53 "native_type_test_impl.h", 54 "optional_scalars_generated.h", 55 "optional_scalars_test.cpp", 56 "optional_scalars_test.h", 57 "parser_test.cpp", 58 "parser_test.h", 59 "proto_test.cpp", 60 "proto_test.h", 61 "reflection_test.cpp", 62 "reflection_test.h", 63 "test.cpp", 64 "test_assert.cpp", 65 "test_assert.h", 66 "test_builder.cpp", 67 "test_builder.h", 68 "union_underlying_type_test_generated.h", 69 "union_vector/union_vector_generated.h", 70 "util_test.cpp", 71 "util_test.h", 72 ], 73 copts = [ 74 "-DFLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE", 75 ], 76 data = [ 77 ":alignment_test.fbs", 78 ":arrays_test.bfbs", 79 ":arrays_test.fbs", 80 ":arrays_test.golden", 81 ":evolution_test/evolution_v1.fbs", 82 ":evolution_test/evolution_v1.json", 83 ":evolution_test/evolution_v2.fbs", 84 ":evolution_test/evolution_v2.json", 85 ":include_test/include_test1.fbs", 86 ":include_test/sub/include_test2.fbs", 87 ":key_field/key_field_sample.fbs", 88 ":monster_extra.fbs", 89 ":monster_test.bfbs", 90 ":monster_test.fbs", 91 ":monsterdata_extra.json", 92 ":monsterdata_test.golden", 93 ":monsterdata_test.json", 94 ":name_clash_test/invalid_test1.fbs", 95 ":name_clash_test/invalid_test2.fbs", 96 ":name_clash_test/valid_test1.fbs", 97 ":name_clash_test/valid_test2.fbs", 98 ":native_type_test.fbs", 99 ":optional_scalars.fbs", 100 ":optional_scalars.json", 101 ":optional_scalars_defaults.json", 102 ":prototest/imported.proto", 103 ":prototest/non-positive-id.proto", 104 ":prototest/test.golden.fbs", 105 ":prototest/test.proto", 106 ":prototest/test_id.golden.fbs", 107 ":prototest/test_include.golden.fbs", 108 ":prototest/test_include_id.golden.fbs", 109 ":prototest/test_suffix.golden.fbs", 110 ":prototest/test_suffix_id.golden.fbs", 111 ":prototest/test_union.golden.fbs", 112 ":prototest/test_union_id.golden.fbs", 113 ":prototest/test_union_include.golden.fbs", 114 ":prototest/test_union_include_id.golden.fbs", 115 ":prototest/test_union_suffix.golden.fbs", 116 ":prototest/test_union_suffix_id.golden.fbs", 117 ":prototest/twice-id.proto", 118 ":prototest/use-reserved-id.proto", 119 ":unicode_test.json", 120 ":union_vector/union_vector.fbs", 121 ":union_vector/union_vector.json", 122 ], 123 includes = [ 124 "", 125 "include/", 126 ], 127 deps = [ 128 ":alignment_test_cc_fbs", 129 ":arrays_test_cc_fbs", 130 ":monster_extra_cc_fbs", 131 ":monster_test_cc_fbs", 132 ":native_type_test_cc_fbs", 133 "//:flatbuffers", 134 "//src:generate_fbs", 135 ], 136) 137 138# Test bzl rules 139 140cc_library( 141 name = "test_assert", 142 srcs = ["test_assert.cpp"], 143 hdrs = ["test_assert.h"], 144 visibility = ["//grpc/tests:__subpackages__"], 145 deps = ["//:flatbuffers"], 146) 147 148cc_library( 149 name = "test_builder", 150 srcs = ["test_builder.cpp"], 151 hdrs = ["test_builder.h"], 152 visibility = ["//grpc/tests:__subpackages__"], 153 deps = [ 154 ":monster_test_grpc", 155 ":test_assert", 156 "//:flatbuffers", 157 ], 158) 159 160cc_library( 161 name = "monster_test_grpc", 162 srcs = [ 163 "monster_test.grpc.fb.cc", 164 "monster_test.grpc.fb.h", 165 "monster_test_generated.h", 166 ], 167 hdrs = [ 168 "monster_test.grpc.fb.h", 169 "monster_test_bfbs_generated.h", 170 "monster_test_generated.h", 171 ], 172 includes = ["."], 173 visibility = ["//grpc/tests:__subpackages__"], 174 deps = [ 175 "//:flatbuffers", 176 "@com_github_grpc_grpc//:grpc++", 177 ], 178) 179 180flatbuffer_cc_library( 181 name = "include_test_fbs", 182 srcs = [ 183 "include_test/include_test1.fbs", 184 "include_test/sub/include_test2.fbs", 185 ], 186 include_paths = ["tests/include_test"], 187) 188 189flatbuffer_cc_library( 190 name = "monster_test_cc_fbs", 191 srcs = ["monster_test.fbs"], 192 outs = ["monster_test_bfbs_generated.h"], 193 flatc_args = DEFAULT_FLATC_ARGS + [ 194 "--bfbs-comments", 195 "--bfbs-builtins", 196 "--bfbs-gen-embed", 197 "--bfbs-filenames tests", 198 ], 199 include_paths = ["tests/include_test"], 200 visibility = ["//grpc/tests:__subpackages__"], 201 deps = [":include_test_fbs"], 202) 203 204# Test that running without --no-includes works properly (monster_test doesn't 205# work cleanly due to the circular dependency in the include_tests/ files). 206include_test_args = [ 207 "--gen-object-api", 208 "--gen-compare", 209 "--gen-mutable", 210 "--reflect-names", 211 "--cpp-ptr-type flatbuffers::unique_ptr", 212 "--force-empty", 213] 214 215flatbuffer_cc_library( 216 name = "included_test_fbs", 217 srcs = ["included_test.fbs"], 218 flatc_args = include_test_args, 219) 220 221flatbuffer_cc_library( 222 name = "includer_test_fbs", 223 srcs = ["includer_test.fbs"], 224 flatc_args = include_test_args, 225 deps = [":included_test_fbs"], 226) 227 228cc_library( 229 name = "include_build_test", 230 srcs = ["include_build_test.cc"], 231 deps = [":includer_test_fbs"], 232) 233 234flatbuffer_cc_library( 235 name = "monster_extra_cc_fbs", 236 srcs = ["monster_extra.fbs"], 237) 238 239flatbuffer_cc_library( 240 name = "arrays_test_cc_fbs", 241 srcs = ["arrays_test.fbs"], 242 flatc_args = [ 243 "--gen-object-api", 244 "--gen-compare", 245 "--no-includes", 246 "--gen-mutable", 247 "--reflect-names", 248 "--cpp-ptr-type flatbuffers::unique_ptr", 249 "--scoped-enums", 250 ], 251) 252 253flatbuffer_cc_library( 254 name = "native_type_test_cc_fbs", 255 srcs = ["native_type_test.fbs"], 256 flatc_args = [ 257 "--gen-object-api", 258 "--gen-mutable", 259 "--cpp-ptr-type flatbuffers::unique_ptr", 260 ], 261) 262 263flatbuffer_cc_library( 264 name = "alignment_test_cc_fbs", 265 srcs = ["alignment_test.fbs"], 266) 267