xref: /aosp_15_r20/external/angle/third_party/abseil-cpp/absl/container/BUILD.bazel (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1#
2# Copyright 2017 The Abseil Authors.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      https://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17load(
18    "//absl:copts/configure_copts.bzl",
19    "ABSL_DEFAULT_COPTS",
20    "ABSL_DEFAULT_LINKOPTS",
21    "ABSL_TEST_COPTS",
22)
23
24package(
25    default_visibility = ["//visibility:public"],
26    features = [
27        "header_modules",
28        "layering_check",
29        "parse_headers",
30    ],
31)
32
33licenses(["notice"])
34
35cc_library(
36    name = "compressed_tuple",
37    hdrs = ["internal/compressed_tuple.h"],
38    copts = ABSL_DEFAULT_COPTS,
39    linkopts = ABSL_DEFAULT_LINKOPTS,
40    deps = [
41        "//absl/utility",
42    ],
43)
44
45cc_test(
46    name = "compressed_tuple_test",
47    srcs = ["internal/compressed_tuple_test.cc"],
48    copts = ABSL_TEST_COPTS,
49    linkopts = ABSL_DEFAULT_LINKOPTS,
50    deps = [
51        ":compressed_tuple",
52        ":test_instance_tracker",
53        "//absl/memory",
54        "//absl/types:any",
55        "//absl/types:optional",
56        "//absl/utility",
57        "@com_google_googletest//:gtest",
58        "@com_google_googletest//:gtest_main",
59    ],
60)
61
62cc_library(
63    name = "fixed_array",
64    hdrs = ["fixed_array.h"],
65    copts = ABSL_DEFAULT_COPTS,
66    linkopts = ABSL_DEFAULT_LINKOPTS,
67    deps = [
68        ":compressed_tuple",
69        "//absl/algorithm",
70        "//absl/base:config",
71        "//absl/base:core_headers",
72        "//absl/base:dynamic_annotations",
73        "//absl/base:throw_delegate",
74        "//absl/memory",
75    ],
76)
77
78cc_test(
79    name = "fixed_array_test",
80    srcs = ["fixed_array_test.cc"],
81    copts = ABSL_TEST_COPTS,
82    linkopts = ABSL_DEFAULT_LINKOPTS,
83    deps = [
84        ":fixed_array",
85        ":test_allocator",
86        "//absl/base:config",
87        "//absl/base:exception_testing",
88        "//absl/hash:hash_testing",
89        "//absl/memory",
90        "@com_google_googletest//:gtest",
91        "@com_google_googletest//:gtest_main",
92    ],
93)
94
95cc_test(
96    name = "fixed_array_exception_safety_test",
97    srcs = ["fixed_array_exception_safety_test.cc"],
98    copts = ABSL_TEST_COPTS,
99    linkopts = ABSL_DEFAULT_LINKOPTS,
100    deps = [
101        ":fixed_array",
102        "//absl/base:config",
103        "//absl/base:exception_safety_testing",
104        "@com_google_googletest//:gtest",
105        "@com_google_googletest//:gtest_main",
106    ],
107)
108
109cc_binary(
110    name = "fixed_array_benchmark",
111    testonly = True,
112    srcs = ["fixed_array_benchmark.cc"],
113    copts = ABSL_TEST_COPTS + ["$(STACK_FRAME_UNLIMITED)"],
114    linkopts = ABSL_DEFAULT_LINKOPTS,
115    tags = ["benchmark"],
116    deps = [
117        ":fixed_array",
118        "@com_github_google_benchmark//:benchmark_main",
119    ],
120)
121
122cc_library(
123    name = "inlined_vector_internal",
124    hdrs = ["internal/inlined_vector.h"],
125    copts = ABSL_DEFAULT_COPTS,
126    linkopts = ABSL_DEFAULT_LINKOPTS,
127    deps = [
128        ":compressed_tuple",
129        "//absl/base:base_internal",
130        "//absl/base:config",
131        "//absl/base:core_headers",
132        "//absl/memory",
133        "//absl/meta:type_traits",
134        "//absl/types:span",
135    ],
136)
137
138cc_library(
139    name = "inlined_vector",
140    hdrs = ["inlined_vector.h"],
141    copts = ABSL_DEFAULT_COPTS,
142    linkopts = ABSL_DEFAULT_LINKOPTS,
143    deps = [
144        ":inlined_vector_internal",
145        "//absl/algorithm",
146        "//absl/base:core_headers",
147        "//absl/base:throw_delegate",
148        "//absl/memory",
149        "//absl/meta:type_traits",
150    ],
151)
152
153cc_library(
154    name = "test_allocator",
155    testonly = True,
156    copts = ABSL_TEST_COPTS,
157    linkopts = ABSL_DEFAULT_LINKOPTS,
158    textual_hdrs = ["internal/test_allocator.h"],
159    visibility = ["//visibility:private"],
160)
161
162cc_test(
163    name = "inlined_vector_test",
164    srcs = ["inlined_vector_test.cc"],
165    copts = ABSL_TEST_COPTS,
166    linkopts = ABSL_DEFAULT_LINKOPTS,
167    deps = [
168        ":inlined_vector",
169        ":test_allocator",
170        ":test_instance_tracker",
171        "//absl/base:config",
172        "//absl/base:core_headers",
173        "//absl/base:exception_testing",
174        "//absl/hash:hash_testing",
175        "//absl/log:check",
176        "//absl/memory",
177        "//absl/strings",
178        "@com_google_googletest//:gtest",
179        "@com_google_googletest//:gtest_main",
180    ],
181)
182
183cc_binary(
184    name = "inlined_vector_benchmark",
185    testonly = True,
186    srcs = ["inlined_vector_benchmark.cc"],
187    copts = ABSL_TEST_COPTS,
188    linkopts = ABSL_DEFAULT_LINKOPTS,
189    tags = ["benchmark"],
190    deps = [
191        ":inlined_vector",
192        "//absl/base:core_headers",
193        "//absl/base:raw_logging_internal",
194        "//absl/strings",
195        "@com_github_google_benchmark//:benchmark_main",
196    ],
197)
198
199cc_test(
200    name = "inlined_vector_exception_safety_test",
201    srcs = ["inlined_vector_exception_safety_test.cc"],
202    copts = ABSL_TEST_COPTS,
203    deps = [
204        ":inlined_vector",
205        "//absl/base:config",
206        "//absl/base:exception_safety_testing",
207        "@com_google_googletest//:gtest",
208        "@com_google_googletest//:gtest_main",
209    ],
210)
211
212cc_library(
213    name = "test_instance_tracker",
214    testonly = True,
215    srcs = ["internal/test_instance_tracker.cc"],
216    hdrs = ["internal/test_instance_tracker.h"],
217    copts = ABSL_DEFAULT_COPTS,
218    linkopts = ABSL_DEFAULT_LINKOPTS,
219    visibility = [
220        "//absl:__subpackages__",
221    ],
222    deps = ["//absl/types:compare"],
223)
224
225cc_test(
226    name = "test_instance_tracker_test",
227    srcs = ["internal/test_instance_tracker_test.cc"],
228    copts = ABSL_TEST_COPTS,
229    linkopts = ABSL_DEFAULT_LINKOPTS,
230    deps = [
231        ":test_instance_tracker",
232        "@com_google_googletest//:gtest",
233        "@com_google_googletest//:gtest_main",
234    ],
235)
236
237NOTEST_TAGS_MOBILE = [
238    "no_test_android_arm",
239    "no_test_android_arm64",
240    "no_test_android_x86",
241    "no_test_ios_x86_64",
242]
243
244cc_library(
245    name = "flat_hash_map",
246    hdrs = ["flat_hash_map.h"],
247    copts = ABSL_DEFAULT_COPTS,
248    linkopts = ABSL_DEFAULT_LINKOPTS,
249    deps = [
250        ":container_memory",
251        ":hash_container_defaults",
252        ":raw_hash_map",
253        "//absl/algorithm:container",
254        "//absl/base:core_headers",
255        "//absl/meta:type_traits",
256    ],
257)
258
259cc_test(
260    name = "flat_hash_map_test",
261    srcs = ["flat_hash_map_test.cc"],
262    copts = ABSL_TEST_COPTS,
263    linkopts = ABSL_DEFAULT_LINKOPTS,
264    tags = ["no_test_loonix"],
265    deps = [
266        ":flat_hash_map",
267        ":hash_generator_testing",
268        ":hash_policy_testing",
269        ":test_allocator",
270        ":unordered_map_constructor_test",
271        ":unordered_map_lookup_test",
272        ":unordered_map_members_test",
273        ":unordered_map_modifiers_test",
274        "//absl/base:config",
275        "//absl/log:check",
276        "//absl/meta:type_traits",
277        "//absl/types:any",
278        "@com_google_googletest//:gtest",
279        "@com_google_googletest//:gtest_main",
280    ],
281)
282
283cc_library(
284    name = "flat_hash_set",
285    hdrs = ["flat_hash_set.h"],
286    copts = ABSL_DEFAULT_COPTS,
287    linkopts = ABSL_DEFAULT_LINKOPTS,
288    deps = [
289        ":container_memory",
290        ":hash_container_defaults",
291        ":raw_hash_set",
292        "//absl/algorithm:container",
293        "//absl/base:core_headers",
294        "//absl/memory",
295        "//absl/meta:type_traits",
296    ],
297)
298
299cc_test(
300    name = "flat_hash_set_test",
301    srcs = ["flat_hash_set_test.cc"],
302    copts = ABSL_TEST_COPTS + ["-DUNORDERED_SET_CXX17"],
303    linkopts = ABSL_DEFAULT_LINKOPTS,
304    tags = ["no_test_loonix"],
305    deps = [
306        ":container_memory",
307        ":flat_hash_set",
308        ":hash_container_defaults",
309        ":hash_generator_testing",
310        ":test_allocator",
311        ":unordered_set_constructor_test",
312        ":unordered_set_lookup_test",
313        ":unordered_set_members_test",
314        ":unordered_set_modifiers_test",
315        "//absl/base:config",
316        "//absl/hash",
317        "//absl/log:check",
318        "//absl/memory",
319        "//absl/strings",
320        "@com_google_googletest//:gtest",
321        "@com_google_googletest//:gtest_main",
322    ],
323)
324
325cc_library(
326    name = "node_hash_map",
327    hdrs = ["node_hash_map.h"],
328    copts = ABSL_DEFAULT_COPTS,
329    linkopts = ABSL_DEFAULT_LINKOPTS,
330    deps = [
331        ":container_memory",
332        ":hash_container_defaults",
333        ":node_slot_policy",
334        ":raw_hash_map",
335        "//absl/algorithm:container",
336        "//absl/base:core_headers",
337        "//absl/memory",
338        "//absl/meta:type_traits",
339    ],
340)
341
342cc_test(
343    name = "node_hash_map_test",
344    srcs = ["node_hash_map_test.cc"],
345    copts = ABSL_TEST_COPTS,
346    linkopts = ABSL_DEFAULT_LINKOPTS,
347    tags = ["no_test_loonix"],
348    deps = [
349        ":hash_policy_testing",
350        ":node_hash_map",
351        ":tracked",
352        ":unordered_map_constructor_test",
353        ":unordered_map_lookup_test",
354        ":unordered_map_members_test",
355        ":unordered_map_modifiers_test",
356        "//absl/base:config",
357        "@com_google_googletest//:gtest",
358        "@com_google_googletest//:gtest_main",
359    ],
360)
361
362cc_library(
363    name = "node_hash_set",
364    hdrs = ["node_hash_set.h"],
365    copts = ABSL_DEFAULT_COPTS,
366    linkopts = ABSL_DEFAULT_LINKOPTS,
367    deps = [
368        ":container_memory",
369        ":hash_container_defaults",
370        ":node_slot_policy",
371        ":raw_hash_set",
372        "//absl/algorithm:container",
373        "//absl/base:core_headers",
374        "//absl/memory",
375        "//absl/meta:type_traits",
376    ],
377)
378
379cc_test(
380    name = "node_hash_set_test",
381    srcs = ["node_hash_set_test.cc"],
382    copts = ABSL_TEST_COPTS + ["-DUNORDERED_SET_CXX17"],
383    linkopts = ABSL_DEFAULT_LINKOPTS,
384    tags = ["no_test_loonix"],
385    deps = [
386        ":hash_generator_testing",
387        ":hash_policy_testing",
388        ":node_hash_set",
389        ":unordered_set_constructor_test",
390        ":unordered_set_lookup_test",
391        ":unordered_set_members_test",
392        ":unordered_set_modifiers_test",
393        "//absl/base:config",
394        "//absl/memory",
395        "@com_google_googletest//:gtest",
396        "@com_google_googletest//:gtest_main",
397    ],
398)
399
400cc_library(
401    name = "container_memory",
402    hdrs = ["internal/container_memory.h"],
403    copts = ABSL_DEFAULT_COPTS,
404    linkopts = ABSL_DEFAULT_LINKOPTS,
405    deps = [
406        "//absl/base:config",
407        "//absl/memory",
408        "//absl/meta:type_traits",
409        "//absl/utility",
410    ],
411)
412
413cc_test(
414    name = "container_memory_test",
415    srcs = ["internal/container_memory_test.cc"],
416    copts = ABSL_TEST_COPTS,
417    linkopts = ABSL_DEFAULT_LINKOPTS,
418    tags = ["no_test_loonix"],
419    deps = [
420        ":container_memory",
421        ":test_instance_tracker",
422        "//absl/base:no_destructor",
423        "//absl/meta:type_traits",
424        "//absl/strings",
425        "@com_google_googletest//:gtest",
426        "@com_google_googletest//:gtest_main",
427    ],
428)
429
430cc_library(
431    name = "hash_function_defaults",
432    hdrs = ["internal/hash_function_defaults.h"],
433    copts = ABSL_DEFAULT_COPTS,
434    linkopts = ABSL_DEFAULT_LINKOPTS,
435    visibility = [
436        "//visibility:private",
437    ],
438    deps = [
439        ":common",
440        "//absl/base:config",
441        "//absl/hash",
442        "//absl/meta:type_traits",
443        "//absl/strings",
444        "//absl/strings:cord",
445    ],
446)
447
448cc_library(
449    name = "hash_container_defaults",
450    hdrs = ["hash_container_defaults.h"],
451    copts = ABSL_DEFAULT_COPTS,
452    linkopts = ABSL_DEFAULT_LINKOPTS,
453    deps = [
454        ":hash_function_defaults",
455        "//absl/base:config",
456    ],
457)
458
459cc_test(
460    name = "hash_function_defaults_test",
461    srcs = ["internal/hash_function_defaults_test.cc"],
462    copts = ABSL_TEST_COPTS,
463    linkopts = ABSL_DEFAULT_LINKOPTS,
464    tags = NOTEST_TAGS_MOBILE + ["no_test_loonix"],
465    deps = [
466        ":flat_hash_map",
467        ":flat_hash_set",
468        ":hash_function_defaults",
469        "//absl/hash",
470        "//absl/random",
471        "//absl/strings",
472        "//absl/strings:cord",
473        "//absl/strings:cord_test_helpers",
474        "@com_google_googletest//:gtest",
475        "@com_google_googletest//:gtest_main",
476    ],
477)
478
479cc_library(
480    name = "hash_generator_testing",
481    testonly = True,
482    srcs = ["internal/hash_generator_testing.cc"],
483    hdrs = ["internal/hash_generator_testing.h"],
484    copts = ABSL_TEST_COPTS,
485    linkopts = ABSL_DEFAULT_LINKOPTS,
486    deps = [
487        ":hash_policy_testing",
488        "//absl/base:no_destructor",
489        "//absl/memory",
490        "//absl/meta:type_traits",
491        "//absl/strings",
492    ],
493)
494
495cc_library(
496    name = "hash_policy_testing",
497    testonly = True,
498    hdrs = ["internal/hash_policy_testing.h"],
499    copts = ABSL_TEST_COPTS,
500    linkopts = ABSL_DEFAULT_LINKOPTS,
501    deps = [
502        "//absl/hash",
503        "//absl/strings",
504    ],
505)
506
507cc_test(
508    name = "hash_policy_testing_test",
509    srcs = ["internal/hash_policy_testing_test.cc"],
510    copts = ABSL_TEST_COPTS,
511    linkopts = ABSL_DEFAULT_LINKOPTS,
512    deps = [
513        ":hash_policy_testing",
514        "@com_google_googletest//:gtest",
515        "@com_google_googletest//:gtest_main",
516    ],
517)
518
519cc_library(
520    name = "hash_policy_traits",
521    hdrs = ["internal/hash_policy_traits.h"],
522    copts = ABSL_DEFAULT_COPTS,
523    linkopts = ABSL_DEFAULT_LINKOPTS,
524    deps = [
525        ":common_policy_traits",
526        "//absl/meta:type_traits",
527    ],
528)
529
530cc_test(
531    name = "hash_policy_traits_test",
532    srcs = ["internal/hash_policy_traits_test.cc"],
533    copts = ABSL_TEST_COPTS,
534    linkopts = ABSL_DEFAULT_LINKOPTS,
535    deps = [
536        ":container_memory",
537        ":hash_policy_traits",
538        "@com_google_googletest//:gtest",
539        "@com_google_googletest//:gtest_main",
540    ],
541)
542
543cc_library(
544    name = "common_policy_traits",
545    hdrs = ["internal/common_policy_traits.h"],
546    copts = ABSL_DEFAULT_COPTS,
547    linkopts = ABSL_DEFAULT_LINKOPTS,
548    visibility = ["//visibility:private"],
549    deps = ["//absl/meta:type_traits"],
550)
551
552cc_test(
553    name = "common_policy_traits_test",
554    srcs = ["internal/common_policy_traits_test.cc"],
555    copts = ABSL_TEST_COPTS,
556    linkopts = ABSL_DEFAULT_LINKOPTS,
557    deps = [
558        ":common_policy_traits",
559        "//absl/base:config",
560        "@com_google_googletest//:gtest",
561        "@com_google_googletest//:gtest_main",
562    ],
563)
564
565cc_library(
566    name = "hashtable_debug",
567    hdrs = ["internal/hashtable_debug.h"],
568    copts = ABSL_DEFAULT_COPTS,
569    linkopts = ABSL_DEFAULT_LINKOPTS,
570    deps = [
571        ":hashtable_debug_hooks",
572    ],
573)
574
575cc_library(
576    name = "hashtable_debug_hooks",
577    hdrs = ["internal/hashtable_debug_hooks.h"],
578    copts = ABSL_DEFAULT_COPTS,
579    linkopts = ABSL_DEFAULT_LINKOPTS,
580    deps = [
581        "//absl/base:config",
582    ],
583)
584
585cc_library(
586    name = "hashtablez_sampler",
587    srcs = [
588        "internal/hashtablez_sampler.cc",
589        "internal/hashtablez_sampler_force_weak_definition.cc",
590    ],
591    hdrs = ["internal/hashtablez_sampler.h"],
592    copts = ABSL_DEFAULT_COPTS,
593    linkopts = ABSL_DEFAULT_LINKOPTS,
594    deps = [
595        "//absl/base",
596        "//absl/base:config",
597        "//absl/base:core_headers",
598        "//absl/base:no_destructor",
599        "//absl/base:raw_logging_internal",
600        "//absl/debugging:stacktrace",
601        "//absl/memory",
602        "//absl/profiling:exponential_biased",
603        "//absl/profiling:sample_recorder",
604        "//absl/synchronization",
605        "//absl/time",
606        "//absl/utility",
607    ],
608)
609
610cc_test(
611    name = "hashtablez_sampler_test",
612    srcs = ["internal/hashtablez_sampler_test.cc"],
613    linkopts = ABSL_DEFAULT_LINKOPTS,
614    tags = [
615        "no_test_wasm",
616    ],
617    deps = [
618        ":hashtablez_sampler",
619        "//absl/base:config",
620        "//absl/base:core_headers",
621        "//absl/profiling:sample_recorder",
622        "//absl/synchronization",
623        "//absl/synchronization:thread_pool",
624        "//absl/time",
625        "@com_google_googletest//:gtest",
626        "@com_google_googletest//:gtest_main",
627    ],
628)
629
630cc_library(
631    name = "node_slot_policy",
632    hdrs = ["internal/node_slot_policy.h"],
633    copts = ABSL_DEFAULT_COPTS,
634    linkopts = ABSL_DEFAULT_LINKOPTS,
635    deps = ["//absl/base:config"],
636)
637
638cc_test(
639    name = "node_slot_policy_test",
640    srcs = ["internal/node_slot_policy_test.cc"],
641    copts = ABSL_TEST_COPTS,
642    linkopts = ABSL_DEFAULT_LINKOPTS,
643    deps = [
644        ":hash_policy_traits",
645        ":node_slot_policy",
646        "//absl/base:config",
647        "@com_google_googletest//:gtest",
648        "@com_google_googletest//:gtest_main",
649    ],
650)
651
652cc_library(
653    name = "raw_hash_map",
654    hdrs = ["internal/raw_hash_map.h"],
655    copts = ABSL_DEFAULT_COPTS,
656    linkopts = ABSL_DEFAULT_LINKOPTS,
657    deps = [
658        ":container_memory",
659        ":raw_hash_set",
660        "//absl/base:config",
661        "//absl/base:core_headers",
662        "//absl/base:throw_delegate",
663    ],
664)
665
666cc_library(
667    name = "common",
668    hdrs = ["internal/common.h"],
669    copts = ABSL_DEFAULT_COPTS,
670    linkopts = ABSL_DEFAULT_LINKOPTS,
671    deps = [
672        "//absl/meta:type_traits",
673        "//absl/types:optional",
674    ],
675)
676
677cc_library(
678    name = "raw_hash_set",
679    srcs = ["internal/raw_hash_set.cc"],
680    hdrs = ["internal/raw_hash_set.h"],
681    copts = ABSL_DEFAULT_COPTS,
682    linkopts = ABSL_DEFAULT_LINKOPTS,
683    deps = [
684        ":common",
685        ":compressed_tuple",
686        ":container_memory",
687        ":hash_function_defaults",
688        ":hash_policy_traits",
689        ":hashtable_debug_hooks",
690        ":hashtablez_sampler",
691        "//absl/base:config",
692        "//absl/base:core_headers",
693        "//absl/base:dynamic_annotations",
694        "//absl/base:endian",
695        "//absl/base:prefetch",
696        "//absl/base:raw_logging_internal",
697        "//absl/hash",
698        "//absl/memory",
699        "//absl/meta:type_traits",
700        "//absl/numeric:bits",
701        "//absl/utility",
702    ],
703)
704
705cc_test(
706    name = "raw_hash_set_test",
707    srcs = ["internal/raw_hash_set_test.cc"],
708    copts = ABSL_TEST_COPTS,
709    linkstatic = 1,
710    tags = NOTEST_TAGS_MOBILE + [
711        "no_test_loonix",
712        # TODO(b/237097643): investigate race and remove
713        "noarm_gemu",
714    ],
715    deps = [
716        ":container_memory",
717        ":flat_hash_map",
718        ":flat_hash_set",
719        ":hash_function_defaults",
720        ":hash_policy_testing",
721        ":hashtable_debug",
722        ":hashtablez_sampler",
723        ":node_hash_set",
724        ":raw_hash_set",
725        ":test_allocator",
726        ":test_instance_tracker",
727        "//absl/base",
728        "//absl/base:config",
729        "//absl/base:core_headers",
730        "//absl/base:prefetch",
731        "//absl/functional:function_ref",
732        "//absl/hash",
733        "//absl/log",
734        "//absl/log:check",
735        "//absl/memory",
736        "//absl/meta:type_traits",
737        "//absl/strings",
738        "//absl/types:optional",
739        "@com_google_googletest//:gtest",
740        "@com_google_googletest//:gtest_main",
741    ],
742)
743
744cc_binary(
745    name = "raw_hash_set_benchmark",
746    testonly = True,
747    srcs = ["internal/raw_hash_set_benchmark.cc"],
748    copts = ABSL_TEST_COPTS,
749    linkopts = ABSL_DEFAULT_LINKOPTS,
750    tags = ["benchmark"],
751    visibility = ["//visibility:private"],
752    deps = [
753        ":container_memory",
754        ":hash_function_defaults",
755        ":raw_hash_set",
756        "//absl/base:raw_logging_internal",
757        "//absl/random",
758        "//absl/strings:str_format",
759        "@com_github_google_benchmark//:benchmark_main",
760    ],
761)
762
763cc_binary(
764    name = "raw_hash_set_probe_benchmark",
765    testonly = True,
766    srcs = ["internal/raw_hash_set_probe_benchmark.cc"],
767    copts = ABSL_TEST_COPTS,
768    linkopts = select({
769        "//conditions:default": [],
770    }) + ABSL_DEFAULT_LINKOPTS,
771    tags = ["benchmark"],
772    visibility = ["//visibility:private"],
773    deps = [
774        ":flat_hash_map",
775        ":hash_function_defaults",
776        ":hashtable_debug",
777        ":raw_hash_set",
778        "//absl/base:no_destructor",
779        "//absl/random",
780        "//absl/random:distributions",
781        "//absl/strings",
782        "//absl/strings:str_format",
783        "//absl/types:optional",
784    ],
785)
786
787cc_test(
788    name = "raw_hash_set_allocator_test",
789    size = "small",
790    srcs = ["internal/raw_hash_set_allocator_test.cc"],
791    copts = ABSL_TEST_COPTS,
792    linkopts = ABSL_DEFAULT_LINKOPTS,
793    deps = [
794        ":container_memory",
795        ":raw_hash_set",
796        ":tracked",
797        "//absl/base:config",
798        "@com_google_googletest//:gtest",
799        "@com_google_googletest//:gtest_main",
800    ],
801)
802
803cc_library(
804    name = "layout",
805    hdrs = ["internal/layout.h"],
806    copts = ABSL_DEFAULT_COPTS,
807    linkopts = ABSL_DEFAULT_LINKOPTS,
808    deps = [
809        "//absl/base:config",
810        "//absl/base:core_headers",
811        "//absl/debugging:demangle_internal",
812        "//absl/meta:type_traits",
813        "//absl/strings",
814        "//absl/types:span",
815        "//absl/utility",
816    ],
817)
818
819cc_test(
820    name = "layout_test",
821    size = "small",
822    srcs = ["internal/layout_test.cc"],
823    copts = ABSL_TEST_COPTS,
824    linkopts = ABSL_DEFAULT_LINKOPTS,
825    tags = NOTEST_TAGS_MOBILE + ["no_test_loonix"],
826    visibility = ["//visibility:private"],
827    deps = [
828        ":layout",
829        "//absl/base:config",
830        "//absl/log:check",
831        "//absl/types:span",
832        "//absl/utility",
833        "@com_google_googletest//:gtest",
834        "@com_google_googletest//:gtest_main",
835    ],
836)
837
838cc_binary(
839    name = "layout_benchmark",
840    testonly = True,
841    srcs = ["internal/layout_benchmark.cc"],
842    copts = ABSL_TEST_COPTS,
843    linkopts = ABSL_DEFAULT_LINKOPTS,
844    tags = ["benchmark"],
845    visibility = ["//visibility:private"],
846    deps = [
847        ":layout",
848        "//absl/base:core_headers",
849        "//absl/base:raw_logging_internal",
850        "@com_github_google_benchmark//:benchmark_main",
851    ],
852)
853
854cc_library(
855    name = "tracked",
856    testonly = True,
857    hdrs = ["internal/tracked.h"],
858    copts = ABSL_TEST_COPTS,
859    linkopts = ABSL_DEFAULT_LINKOPTS,
860    deps = [
861        "//absl/base:config",
862    ],
863)
864
865cc_library(
866    name = "unordered_map_constructor_test",
867    testonly = True,
868    hdrs = ["internal/unordered_map_constructor_test.h"],
869    copts = ABSL_TEST_COPTS,
870    linkopts = ABSL_DEFAULT_LINKOPTS,
871    deps = [
872        ":hash_generator_testing",
873        ":hash_policy_testing",
874        "@com_google_googletest//:gtest",
875    ],
876)
877
878cc_library(
879    name = "unordered_map_lookup_test",
880    testonly = True,
881    hdrs = ["internal/unordered_map_lookup_test.h"],
882    copts = ABSL_TEST_COPTS,
883    linkopts = ABSL_DEFAULT_LINKOPTS,
884    deps = [
885        ":hash_generator_testing",
886        ":hash_policy_testing",
887        "@com_google_googletest//:gtest",
888    ],
889)
890
891cc_library(
892    name = "unordered_map_modifiers_test",
893    testonly = True,
894    hdrs = ["internal/unordered_map_modifiers_test.h"],
895    copts = ABSL_TEST_COPTS,
896    linkopts = ABSL_DEFAULT_LINKOPTS,
897    deps = [
898        ":hash_generator_testing",
899        ":hash_policy_testing",
900        "@com_google_googletest//:gtest",
901    ],
902)
903
904cc_library(
905    name = "unordered_set_constructor_test",
906    testonly = True,
907    hdrs = ["internal/unordered_set_constructor_test.h"],
908    copts = ABSL_TEST_COPTS,
909    linkopts = ABSL_DEFAULT_LINKOPTS,
910    deps = [
911        ":hash_generator_testing",
912        ":hash_policy_testing",
913        "//absl/meta:type_traits",
914        "@com_google_googletest//:gtest",
915    ],
916)
917
918cc_library(
919    name = "unordered_set_members_test",
920    testonly = True,
921    hdrs = ["internal/unordered_set_members_test.h"],
922    copts = ABSL_TEST_COPTS,
923    linkopts = ABSL_DEFAULT_LINKOPTS,
924    deps = [
925        "//absl/meta:type_traits",
926        "@com_google_googletest//:gtest",
927    ],
928)
929
930cc_library(
931    name = "unordered_map_members_test",
932    testonly = True,
933    hdrs = ["internal/unordered_map_members_test.h"],
934    copts = ABSL_TEST_COPTS,
935    linkopts = ABSL_DEFAULT_LINKOPTS,
936    deps = [
937        "//absl/meta:type_traits",
938        "@com_google_googletest//:gtest",
939    ],
940)
941
942cc_library(
943    name = "unordered_set_lookup_test",
944    testonly = True,
945    hdrs = ["internal/unordered_set_lookup_test.h"],
946    copts = ABSL_TEST_COPTS,
947    linkopts = ABSL_DEFAULT_LINKOPTS,
948    deps = [
949        ":hash_generator_testing",
950        ":hash_policy_testing",
951        "@com_google_googletest//:gtest",
952    ],
953)
954
955cc_library(
956    name = "unordered_set_modifiers_test",
957    testonly = True,
958    hdrs = ["internal/unordered_set_modifiers_test.h"],
959    copts = ABSL_TEST_COPTS,
960    linkopts = ABSL_DEFAULT_LINKOPTS,
961    deps = [
962        ":hash_generator_testing",
963        ":hash_policy_testing",
964        "@com_google_googletest//:gtest",
965    ],
966)
967
968cc_test(
969    name = "unordered_set_test",
970    srcs = ["internal/unordered_set_test.cc"],
971    copts = ABSL_TEST_COPTS,
972    linkopts = ABSL_DEFAULT_LINKOPTS,
973    tags = ["no_test_loonix"],
974    deps = [
975        ":unordered_set_constructor_test",
976        ":unordered_set_lookup_test",
977        ":unordered_set_members_test",
978        ":unordered_set_modifiers_test",
979        "@com_google_googletest//:gtest",
980        "@com_google_googletest//:gtest_main",
981    ],
982)
983
984cc_test(
985    name = "unordered_map_test",
986    srcs = ["internal/unordered_map_test.cc"],
987    copts = ABSL_TEST_COPTS,
988    linkopts = ABSL_DEFAULT_LINKOPTS,
989    tags = ["no_test_loonix"],
990    deps = [
991        ":unordered_map_constructor_test",
992        ":unordered_map_lookup_test",
993        ":unordered_map_members_test",
994        ":unordered_map_modifiers_test",
995        "@com_google_googletest//:gtest",
996        "@com_google_googletest//:gtest_main",
997    ],
998)
999
1000cc_test(
1001    name = "sample_element_size_test",
1002    srcs = ["sample_element_size_test.cc"],
1003    copts = ABSL_TEST_COPTS,
1004    linkopts = ABSL_DEFAULT_LINKOPTS,
1005    tags = ["no_test_loonix"],
1006    visibility = ["//visibility:private"],
1007    deps = [
1008        ":flat_hash_map",
1009        ":flat_hash_set",
1010        ":node_hash_map",
1011        ":node_hash_set",
1012        "@com_google_googletest//:gtest",
1013        "@com_google_googletest//:gtest_main",
1014    ],
1015)
1016
1017cc_library(
1018    name = "btree",
1019    srcs = [
1020        "internal/btree.h",
1021        "internal/btree_container.h",
1022    ],
1023    hdrs = [
1024        "btree_map.h",
1025        "btree_set.h",
1026    ],
1027    copts = ABSL_DEFAULT_COPTS,
1028    linkopts = ABSL_DEFAULT_LINKOPTS,
1029    visibility = ["//visibility:public"],
1030    deps = [
1031        ":common",
1032        ":common_policy_traits",
1033        ":compressed_tuple",
1034        ":container_memory",
1035        ":layout",
1036        "//absl/base:config",
1037        "//absl/base:core_headers",
1038        "//absl/base:raw_logging_internal",
1039        "//absl/base:throw_delegate",
1040        "//absl/memory",
1041        "//absl/meta:type_traits",
1042        "//absl/strings",
1043        "//absl/strings:cord",
1044        "//absl/types:compare",
1045    ],
1046)
1047
1048cc_library(
1049    name = "btree_test_common",
1050    testonly = True,
1051    hdrs = ["btree_test.h"],
1052    copts = ABSL_TEST_COPTS,
1053    linkopts = ABSL_DEFAULT_LINKOPTS,
1054    visibility = ["//visibility:private"],
1055    deps = [
1056        ":btree",
1057        ":flat_hash_set",
1058        "//absl/strings",
1059        "//absl/strings:cord",
1060        "//absl/time",
1061    ],
1062)
1063
1064cc_test(
1065    name = "btree_test",
1066    size = "large",
1067    srcs = [
1068        "btree_test.cc",
1069    ],
1070    copts = ABSL_TEST_COPTS,
1071    linkopts = ABSL_DEFAULT_LINKOPTS,
1072    shard_count = 10,
1073    tags = [
1074        "no_test:os:ios",
1075        "no_test_ios",
1076        "no_test_wasm",
1077    ],
1078    visibility = ["//visibility:private"],
1079    deps = [
1080        ":btree",
1081        ":btree_test_common",
1082        ":test_allocator",
1083        ":test_instance_tracker",
1084        "//absl/algorithm:container",
1085        "//absl/base:core_headers",
1086        "//absl/base:raw_logging_internal",
1087        "//absl/flags:flag",
1088        "//absl/hash:hash_testing",
1089        "//absl/memory",
1090        "//absl/random",
1091        "//absl/strings",
1092        "//absl/types:compare",
1093        "//absl/types:optional",
1094        "@com_google_googletest//:gtest",
1095        "@com_google_googletest//:gtest_main",
1096    ],
1097)
1098
1099cc_binary(
1100    name = "btree_benchmark",
1101    testonly = True,
1102    srcs = [
1103        "btree_benchmark.cc",
1104    ],
1105    copts = ABSL_TEST_COPTS,
1106    linkopts = ABSL_DEFAULT_LINKOPTS,
1107    tags = ["benchmark"],
1108    visibility = ["//visibility:private"],
1109    deps = [
1110        ":btree",
1111        ":btree_test_common",
1112        ":flat_hash_map",
1113        ":flat_hash_set",
1114        ":hashtable_debug",
1115        "//absl/algorithm:container",
1116        "//absl/base:raw_logging_internal",
1117        "//absl/hash",
1118        "//absl/log",
1119        "//absl/memory",
1120        "//absl/random",
1121        "//absl/strings:cord",
1122        "//absl/strings:str_format",
1123        "//absl/time",
1124        "@com_github_google_benchmark//:benchmark_main",
1125        "@com_google_googletest//:gtest",
1126    ],
1127)
1128