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)
View as plain text