xref: /aosp_15_r20/external/abseil-cpp/absl/container/BUILD.bazel (revision 9356374a3709195abf420251b3e825997ff56c0f)
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_generator_testing",
309        ":test_allocator",
310        ":unordered_set_constructor_test",
311        ":unordered_set_lookup_test",
312        ":unordered_set_members_test",
313        ":unordered_set_modifiers_test",
314        "//absl/base:config",
315        "//absl/log:check",
316        "//absl/memory",
317        "//absl/strings",
318        "@com_google_googletest//:gtest",
319        "@com_google_googletest//:gtest_main",
320    ],
321)
322
323cc_library(
324    name = "node_hash_map",
325    hdrs = ["node_hash_map.h"],
326    copts = ABSL_DEFAULT_COPTS,
327    linkopts = ABSL_DEFAULT_LINKOPTS,
328    deps = [
329        ":container_memory",
330        ":hash_container_defaults",
331        ":node_slot_policy",
332        ":raw_hash_map",
333        "//absl/algorithm:container",
334        "//absl/base:core_headers",
335        "//absl/memory",
336        "//absl/meta:type_traits",
337    ],
338)
339
340cc_test(
341    name = "node_hash_map_test",
342    srcs = ["node_hash_map_test.cc"],
343    copts = ABSL_TEST_COPTS,
344    linkopts = ABSL_DEFAULT_LINKOPTS,
345    tags = ["no_test_loonix"],
346    deps = [
347        ":hash_policy_testing",
348        ":node_hash_map",
349        ":tracked",
350        ":unordered_map_constructor_test",
351        ":unordered_map_lookup_test",
352        ":unordered_map_members_test",
353        ":unordered_map_modifiers_test",
354        "//absl/base:config",
355        "@com_google_googletest//:gtest",
356        "@com_google_googletest//:gtest_main",
357    ],
358)
359
360cc_library(
361    name = "node_hash_set",
362    hdrs = ["node_hash_set.h"],
363    copts = ABSL_DEFAULT_COPTS,
364    linkopts = ABSL_DEFAULT_LINKOPTS,
365    deps = [
366        ":container_memory",
367        ":hash_container_defaults",
368        ":node_slot_policy",
369        ":raw_hash_set",
370        "//absl/algorithm:container",
371        "//absl/base:core_headers",
372        "//absl/memory",
373        "//absl/meta:type_traits",
374    ],
375)
376
377cc_test(
378    name = "node_hash_set_test",
379    srcs = ["node_hash_set_test.cc"],
380    copts = ABSL_TEST_COPTS + ["-DUNORDERED_SET_CXX17"],
381    linkopts = ABSL_DEFAULT_LINKOPTS,
382    tags = ["no_test_loonix"],
383    deps = [
384        ":hash_generator_testing",
385        ":hash_policy_testing",
386        ":node_hash_set",
387        ":unordered_set_constructor_test",
388        ":unordered_set_lookup_test",
389        ":unordered_set_members_test",
390        ":unordered_set_modifiers_test",
391        "//absl/base:config",
392        "//absl/memory",
393        "@com_google_googletest//:gtest",
394        "@com_google_googletest//:gtest_main",
395    ],
396)
397
398cc_library(
399    name = "container_memory",
400    hdrs = ["internal/container_memory.h"],
401    copts = ABSL_DEFAULT_COPTS,
402    linkopts = ABSL_DEFAULT_LINKOPTS,
403    deps = [
404        "//absl/base:config",
405        "//absl/memory",
406        "//absl/meta:type_traits",
407        "//absl/utility",
408    ],
409)
410
411cc_test(
412    name = "container_memory_test",
413    srcs = ["internal/container_memory_test.cc"],
414    copts = ABSL_TEST_COPTS,
415    linkopts = ABSL_DEFAULT_LINKOPTS,
416    tags = ["no_test_loonix"],
417    deps = [
418        ":container_memory",
419        ":test_instance_tracker",
420        "//absl/base:no_destructor",
421        "//absl/meta:type_traits",
422        "//absl/strings",
423        "@com_google_googletest//:gtest",
424        "@com_google_googletest//:gtest_main",
425    ],
426)
427
428cc_library(
429    name = "hash_function_defaults",
430    hdrs = ["internal/hash_function_defaults.h"],
431    copts = ABSL_DEFAULT_COPTS,
432    linkopts = ABSL_DEFAULT_LINKOPTS,
433    visibility = [
434        "//visibility:private",
435    ],
436    deps = [
437        ":common",
438        "//absl/base:config",
439        "//absl/hash",
440        "//absl/meta:type_traits",
441        "//absl/strings",
442        "//absl/strings:cord",
443    ],
444)
445
446cc_library(
447    name = "hash_container_defaults",
448    hdrs = ["hash_container_defaults.h"],
449    copts = ABSL_DEFAULT_COPTS,
450    linkopts = ABSL_DEFAULT_LINKOPTS,
451    deps = [
452        ":hash_function_defaults",
453        "//absl/base:config",
454    ],
455)
456
457cc_test(
458    name = "hash_function_defaults_test",
459    srcs = ["internal/hash_function_defaults_test.cc"],
460    copts = ABSL_TEST_COPTS,
461    linkopts = ABSL_DEFAULT_LINKOPTS,
462    tags = NOTEST_TAGS_MOBILE + ["no_test_loonix"],
463    deps = [
464        ":flat_hash_map",
465        ":flat_hash_set",
466        ":hash_function_defaults",
467        "//absl/hash",
468        "//absl/random",
469        "//absl/strings",
470        "//absl/strings:cord",
471        "//absl/strings:cord_test_helpers",
472        "@com_google_googletest//:gtest",
473        "@com_google_googletest//:gtest_main",
474    ],
475)
476
477cc_library(
478    name = "hash_generator_testing",
479    testonly = True,
480    srcs = ["internal/hash_generator_testing.cc"],
481    hdrs = ["internal/hash_generator_testing.h"],
482    copts = ABSL_TEST_COPTS,
483    linkopts = ABSL_DEFAULT_LINKOPTS,
484    deps = [
485        ":hash_policy_testing",
486        "//absl/base:no_destructor",
487        "//absl/memory",
488        "//absl/meta:type_traits",
489        "//absl/strings",
490    ],
491)
492
493cc_library(
494    name = "hash_policy_testing",
495    testonly = True,
496    hdrs = ["internal/hash_policy_testing.h"],
497    copts = ABSL_TEST_COPTS,
498    linkopts = ABSL_DEFAULT_LINKOPTS,
499    deps = [
500        "//absl/hash",
501        "//absl/strings",
502    ],
503)
504
505cc_test(
506    name = "hash_policy_testing_test",
507    srcs = ["internal/hash_policy_testing_test.cc"],
508    copts = ABSL_TEST_COPTS,
509    linkopts = ABSL_DEFAULT_LINKOPTS,
510    deps = [
511        ":hash_policy_testing",
512        "@com_google_googletest//:gtest",
513        "@com_google_googletest//:gtest_main",
514    ],
515)
516
517cc_library(
518    name = "hash_policy_traits",
519    hdrs = ["internal/hash_policy_traits.h"],
520    copts = ABSL_DEFAULT_COPTS,
521    linkopts = ABSL_DEFAULT_LINKOPTS,
522    deps = [
523        ":common_policy_traits",
524        "//absl/meta:type_traits",
525    ],
526)
527
528cc_test(
529    name = "hash_policy_traits_test",
530    srcs = ["internal/hash_policy_traits_test.cc"],
531    copts = ABSL_TEST_COPTS,
532    linkopts = ABSL_DEFAULT_LINKOPTS,
533    deps = [
534        ":container_memory",
535        ":hash_policy_traits",
536        "@com_google_googletest//:gtest",
537        "@com_google_googletest//:gtest_main",
538    ],
539)
540
541cc_library(
542    name = "common_policy_traits",
543    hdrs = ["internal/common_policy_traits.h"],
544    copts = ABSL_DEFAULT_COPTS,
545    linkopts = ABSL_DEFAULT_LINKOPTS,
546    visibility = ["//visibility:private"],
547    deps = ["//absl/meta:type_traits"],
548)
549
550cc_test(
551    name = "common_policy_traits_test",
552    srcs = ["internal/common_policy_traits_test.cc"],
553    copts = ABSL_TEST_COPTS,
554    linkopts = ABSL_DEFAULT_LINKOPTS,
555    deps = [
556        ":common_policy_traits",
557        "//absl/base:config",
558        "@com_google_googletest//:gtest",
559        "@com_google_googletest//:gtest_main",
560    ],
561)
562
563cc_library(
564    name = "hashtable_debug",
565    hdrs = ["internal/hashtable_debug.h"],
566    copts = ABSL_DEFAULT_COPTS,
567    linkopts = ABSL_DEFAULT_LINKOPTS,
568    deps = [
569        ":hashtable_debug_hooks",
570    ],
571)
572
573cc_library(
574    name = "hashtable_debug_hooks",
575    hdrs = ["internal/hashtable_debug_hooks.h"],
576    copts = ABSL_DEFAULT_COPTS,
577    linkopts = ABSL_DEFAULT_LINKOPTS,
578    deps = [
579        "//absl/base:config",
580    ],
581)
582
583cc_library(
584    name = "hashtablez_sampler",
585    srcs = [
586        "internal/hashtablez_sampler.cc",
587        "internal/hashtablez_sampler_force_weak_definition.cc",
588    ],
589    hdrs = ["internal/hashtablez_sampler.h"],
590    copts = ABSL_DEFAULT_COPTS,
591    linkopts = ABSL_DEFAULT_LINKOPTS,
592    deps = [
593        "//absl/base",
594        "//absl/base:config",
595        "//absl/base:core_headers",
596        "//absl/base:no_destructor",
597        "//absl/base:raw_logging_internal",
598        "//absl/debugging:stacktrace",
599        "//absl/memory",
600        "//absl/profiling:exponential_biased",
601        "//absl/profiling:sample_recorder",
602        "//absl/synchronization",
603        "//absl/time",
604        "//absl/utility",
605    ],
606)
607
608cc_test(
609    name = "hashtablez_sampler_test",
610    srcs = ["internal/hashtablez_sampler_test.cc"],
611    linkopts = ABSL_DEFAULT_LINKOPTS,
612    tags = [
613        "no_test_wasm",
614    ],
615    deps = [
616        ":hashtablez_sampler",
617        "//absl/base:config",
618        "//absl/base:core_headers",
619        "//absl/profiling:sample_recorder",
620        "//absl/synchronization",
621        "//absl/synchronization:thread_pool",
622        "//absl/time",
623        "@com_google_googletest//:gtest",
624        "@com_google_googletest//:gtest_main",
625    ],
626)
627
628cc_library(
629    name = "node_slot_policy",
630    hdrs = ["internal/node_slot_policy.h"],
631    copts = ABSL_DEFAULT_COPTS,
632    linkopts = ABSL_DEFAULT_LINKOPTS,
633    deps = ["//absl/base:config"],
634)
635
636cc_test(
637    name = "node_slot_policy_test",
638    srcs = ["internal/node_slot_policy_test.cc"],
639    copts = ABSL_TEST_COPTS,
640    linkopts = ABSL_DEFAULT_LINKOPTS,
641    deps = [
642        ":hash_policy_traits",
643        ":node_slot_policy",
644        "//absl/base:config",
645        "@com_google_googletest//:gtest",
646        "@com_google_googletest//:gtest_main",
647    ],
648)
649
650cc_library(
651    name = "raw_hash_map",
652    hdrs = ["internal/raw_hash_map.h"],
653    copts = ABSL_DEFAULT_COPTS,
654    linkopts = ABSL_DEFAULT_LINKOPTS,
655    deps = [
656        ":container_memory",
657        ":raw_hash_set",
658        "//absl/base:config",
659        "//absl/base:core_headers",
660        "//absl/base:throw_delegate",
661    ],
662)
663
664cc_library(
665    name = "common",
666    hdrs = ["internal/common.h"],
667    copts = ABSL_DEFAULT_COPTS,
668    linkopts = ABSL_DEFAULT_LINKOPTS,
669    deps = [
670        "//absl/meta:type_traits",
671        "//absl/types:optional",
672    ],
673)
674
675cc_library(
676    name = "raw_hash_set",
677    srcs = ["internal/raw_hash_set.cc"],
678    hdrs = ["internal/raw_hash_set.h"],
679    copts = ABSL_DEFAULT_COPTS,
680    linkopts = ABSL_DEFAULT_LINKOPTS,
681    deps = [
682        ":common",
683        ":compressed_tuple",
684        ":container_memory",
685        ":hash_policy_traits",
686        ":hashtable_debug_hooks",
687        ":hashtablez_sampler",
688        "//absl/base:config",
689        "//absl/base:core_headers",
690        "//absl/base:dynamic_annotations",
691        "//absl/base:endian",
692        "//absl/base:prefetch",
693        "//absl/base:raw_logging_internal",
694        "//absl/hash",
695        "//absl/memory",
696        "//absl/meta:type_traits",
697        "//absl/numeric:bits",
698        "//absl/utility",
699    ],
700)
701
702cc_test(
703    name = "raw_hash_set_test",
704    srcs = ["internal/raw_hash_set_test.cc"],
705    copts = ABSL_TEST_COPTS,
706    linkstatic = 1,
707    tags = NOTEST_TAGS_MOBILE + [
708        "no_test_loonix",
709        # TODO(b/237097643): investigate race and remove
710        "noarm_gemu",
711    ],
712    deps = [
713        ":container_memory",
714        ":flat_hash_map",
715        ":flat_hash_set",
716        ":hash_function_defaults",
717        ":hash_policy_testing",
718        ":hashtable_debug",
719        ":hashtablez_sampler",
720        ":node_hash_set",
721        ":raw_hash_set",
722        ":test_allocator",
723        ":test_instance_tracker",
724        "//absl/base",
725        "//absl/base:config",
726        "//absl/base:core_headers",
727        "//absl/base:prefetch",
728        "//absl/functional:function_ref",
729        "//absl/hash",
730        "//absl/log",
731        "//absl/log:check",
732        "//absl/memory",
733        "//absl/meta:type_traits",
734        "//absl/strings",
735        "@com_google_googletest//:gtest",
736        "@com_google_googletest//:gtest_main",
737    ],
738)
739
740cc_binary(
741    name = "raw_hash_set_benchmark",
742    testonly = True,
743    srcs = ["internal/raw_hash_set_benchmark.cc"],
744    copts = ABSL_TEST_COPTS,
745    linkopts = ABSL_DEFAULT_LINKOPTS,
746    tags = ["benchmark"],
747    visibility = ["//visibility:private"],
748    deps = [
749        ":container_memory",
750        ":hash_function_defaults",
751        ":raw_hash_set",
752        "//absl/base:raw_logging_internal",
753        "//absl/random",
754        "//absl/strings:str_format",
755        "@com_github_google_benchmark//:benchmark_main",
756    ],
757)
758
759cc_binary(
760    name = "raw_hash_set_probe_benchmark",
761    testonly = True,
762    srcs = ["internal/raw_hash_set_probe_benchmark.cc"],
763    copts = ABSL_TEST_COPTS,
764    linkopts = select({
765        "//conditions:default": [],
766    }) + ABSL_DEFAULT_LINKOPTS,
767    tags = ["benchmark"],
768    visibility = ["//visibility:private"],
769    deps = [
770        ":flat_hash_map",
771        ":hash_function_defaults",
772        ":hashtable_debug",
773        ":raw_hash_set",
774        "//absl/base:no_destructor",
775        "//absl/random",
776        "//absl/random:distributions",
777        "//absl/strings",
778        "//absl/strings:str_format",
779        "//absl/types:optional",
780    ],
781)
782
783cc_test(
784    name = "raw_hash_set_allocator_test",
785    size = "small",
786    srcs = ["internal/raw_hash_set_allocator_test.cc"],
787    copts = ABSL_TEST_COPTS,
788    linkopts = ABSL_DEFAULT_LINKOPTS,
789    deps = [
790        ":container_memory",
791        ":raw_hash_set",
792        ":tracked",
793        "//absl/base:config",
794        "@com_google_googletest//:gtest",
795        "@com_google_googletest//:gtest_main",
796    ],
797)
798
799cc_library(
800    name = "layout",
801    hdrs = ["internal/layout.h"],
802    copts = ABSL_DEFAULT_COPTS,
803    linkopts = ABSL_DEFAULT_LINKOPTS,
804    deps = [
805        "//absl/base:config",
806        "//absl/base:core_headers",
807        "//absl/debugging:demangle_internal",
808        "//absl/meta:type_traits",
809        "//absl/strings",
810        "//absl/types:span",
811        "//absl/utility",
812    ],
813)
814
815cc_test(
816    name = "layout_test",
817    size = "small",
818    srcs = ["internal/layout_test.cc"],
819    copts = ABSL_TEST_COPTS,
820    linkopts = ABSL_DEFAULT_LINKOPTS,
821    tags = NOTEST_TAGS_MOBILE + ["no_test_loonix"],
822    visibility = ["//visibility:private"],
823    deps = [
824        ":layout",
825        "//absl/base:config",
826        "//absl/log:check",
827        "//absl/types:span",
828        "//absl/utility",
829        "@com_google_googletest//:gtest",
830        "@com_google_googletest//:gtest_main",
831    ],
832)
833
834cc_binary(
835    name = "layout_benchmark",
836    testonly = True,
837    srcs = ["internal/layout_benchmark.cc"],
838    copts = ABSL_TEST_COPTS,
839    linkopts = ABSL_DEFAULT_LINKOPTS,
840    tags = ["benchmark"],
841    visibility = ["//visibility:private"],
842    deps = [
843        ":layout",
844        "//absl/base:core_headers",
845        "//absl/base:raw_logging_internal",
846        "@com_github_google_benchmark//:benchmark_main",
847    ],
848)
849
850cc_library(
851    name = "tracked",
852    testonly = True,
853    hdrs = ["internal/tracked.h"],
854    copts = ABSL_TEST_COPTS,
855    linkopts = ABSL_DEFAULT_LINKOPTS,
856    deps = [
857        "//absl/base:config",
858    ],
859)
860
861cc_library(
862    name = "unordered_map_constructor_test",
863    testonly = True,
864    hdrs = ["internal/unordered_map_constructor_test.h"],
865    copts = ABSL_TEST_COPTS,
866    linkopts = ABSL_DEFAULT_LINKOPTS,
867    deps = [
868        ":hash_generator_testing",
869        ":hash_policy_testing",
870        "@com_google_googletest//:gtest",
871    ],
872)
873
874cc_library(
875    name = "unordered_map_lookup_test",
876    testonly = True,
877    hdrs = ["internal/unordered_map_lookup_test.h"],
878    copts = ABSL_TEST_COPTS,
879    linkopts = ABSL_DEFAULT_LINKOPTS,
880    deps = [
881        ":hash_generator_testing",
882        ":hash_policy_testing",
883        "@com_google_googletest//:gtest",
884    ],
885)
886
887cc_library(
888    name = "unordered_map_modifiers_test",
889    testonly = True,
890    hdrs = ["internal/unordered_map_modifiers_test.h"],
891    copts = ABSL_TEST_COPTS,
892    linkopts = ABSL_DEFAULT_LINKOPTS,
893    deps = [
894        ":hash_generator_testing",
895        ":hash_policy_testing",
896        "@com_google_googletest//:gtest",
897    ],
898)
899
900cc_library(
901    name = "unordered_set_constructor_test",
902    testonly = True,
903    hdrs = ["internal/unordered_set_constructor_test.h"],
904    copts = ABSL_TEST_COPTS,
905    linkopts = ABSL_DEFAULT_LINKOPTS,
906    deps = [
907        ":hash_generator_testing",
908        ":hash_policy_testing",
909        "//absl/meta:type_traits",
910        "@com_google_googletest//:gtest",
911    ],
912)
913
914cc_library(
915    name = "unordered_set_members_test",
916    testonly = True,
917    hdrs = ["internal/unordered_set_members_test.h"],
918    copts = ABSL_TEST_COPTS,
919    linkopts = ABSL_DEFAULT_LINKOPTS,
920    deps = [
921        "//absl/meta:type_traits",
922        "@com_google_googletest//:gtest",
923    ],
924)
925
926cc_library(
927    name = "unordered_map_members_test",
928    testonly = True,
929    hdrs = ["internal/unordered_map_members_test.h"],
930    copts = ABSL_TEST_COPTS,
931    linkopts = ABSL_DEFAULT_LINKOPTS,
932    deps = [
933        "//absl/meta:type_traits",
934        "@com_google_googletest//:gtest",
935    ],
936)
937
938cc_library(
939    name = "unordered_set_lookup_test",
940    testonly = True,
941    hdrs = ["internal/unordered_set_lookup_test.h"],
942    copts = ABSL_TEST_COPTS,
943    linkopts = ABSL_DEFAULT_LINKOPTS,
944    deps = [
945        ":hash_generator_testing",
946        ":hash_policy_testing",
947        "@com_google_googletest//:gtest",
948    ],
949)
950
951cc_library(
952    name = "unordered_set_modifiers_test",
953    testonly = True,
954    hdrs = ["internal/unordered_set_modifiers_test.h"],
955    copts = ABSL_TEST_COPTS,
956    linkopts = ABSL_DEFAULT_LINKOPTS,
957    deps = [
958        ":hash_generator_testing",
959        ":hash_policy_testing",
960        "@com_google_googletest//:gtest",
961    ],
962)
963
964cc_test(
965    name = "unordered_set_test",
966    srcs = ["internal/unordered_set_test.cc"],
967    copts = ABSL_TEST_COPTS,
968    linkopts = ABSL_DEFAULT_LINKOPTS,
969    tags = ["no_test_loonix"],
970    deps = [
971        ":unordered_set_constructor_test",
972        ":unordered_set_lookup_test",
973        ":unordered_set_members_test",
974        ":unordered_set_modifiers_test",
975        "@com_google_googletest//:gtest",
976        "@com_google_googletest//:gtest_main",
977    ],
978)
979
980cc_test(
981    name = "unordered_map_test",
982    srcs = ["internal/unordered_map_test.cc"],
983    copts = ABSL_TEST_COPTS,
984    linkopts = ABSL_DEFAULT_LINKOPTS,
985    tags = ["no_test_loonix"],
986    deps = [
987        ":unordered_map_constructor_test",
988        ":unordered_map_lookup_test",
989        ":unordered_map_members_test",
990        ":unordered_map_modifiers_test",
991        "@com_google_googletest//:gtest",
992        "@com_google_googletest//:gtest_main",
993    ],
994)
995
996cc_test(
997    name = "sample_element_size_test",
998    srcs = ["sample_element_size_test.cc"],
999    copts = ABSL_TEST_COPTS,
1000    linkopts = ABSL_DEFAULT_LINKOPTS,
1001    tags = ["no_test_loonix"],
1002    visibility = ["//visibility:private"],
1003    deps = [
1004        ":flat_hash_map",
1005        ":flat_hash_set",
1006        ":node_hash_map",
1007        ":node_hash_set",
1008        "@com_google_googletest//:gtest",
1009        "@com_google_googletest//:gtest_main",
1010    ],
1011)
1012
1013cc_library(
1014    name = "btree",
1015    srcs = [
1016        "internal/btree.h",
1017        "internal/btree_container.h",
1018    ],
1019    hdrs = [
1020        "btree_map.h",
1021        "btree_set.h",
1022    ],
1023    copts = ABSL_DEFAULT_COPTS,
1024    linkopts = ABSL_DEFAULT_LINKOPTS,
1025    visibility = ["//visibility:public"],
1026    deps = [
1027        ":common",
1028        ":common_policy_traits",
1029        ":compressed_tuple",
1030        ":container_memory",
1031        ":layout",
1032        "//absl/base:config",
1033        "//absl/base:core_headers",
1034        "//absl/base:raw_logging_internal",
1035        "//absl/base:throw_delegate",
1036        "//absl/memory",
1037        "//absl/meta:type_traits",
1038        "//absl/strings",
1039        "//absl/strings:cord",
1040        "//absl/types:compare",
1041    ],
1042)
1043
1044cc_library(
1045    name = "btree_test_common",
1046    testonly = True,
1047    hdrs = ["btree_test.h"],
1048    copts = ABSL_TEST_COPTS,
1049    linkopts = ABSL_DEFAULT_LINKOPTS,
1050    visibility = ["//visibility:private"],
1051    deps = [
1052        ":btree",
1053        ":flat_hash_set",
1054        "//absl/strings",
1055        "//absl/strings:cord",
1056        "//absl/time",
1057    ],
1058)
1059
1060cc_test(
1061    name = "btree_test",
1062    size = "large",
1063    srcs = [
1064        "btree_test.cc",
1065    ],
1066    copts = ABSL_TEST_COPTS,
1067    linkopts = ABSL_DEFAULT_LINKOPTS,
1068    shard_count = 10,
1069    tags = [
1070        "no_test:os:ios",
1071        "no_test_ios",
1072        "no_test_wasm",
1073    ],
1074    visibility = ["//visibility:private"],
1075    deps = [
1076        ":btree",
1077        ":btree_test_common",
1078        ":test_allocator",
1079        ":test_instance_tracker",
1080        "//absl/algorithm:container",
1081        "//absl/base:core_headers",
1082        "//absl/base:raw_logging_internal",
1083        "//absl/flags:flag",
1084        "//absl/hash:hash_testing",
1085        "//absl/memory",
1086        "//absl/random",
1087        "//absl/strings",
1088        "//absl/types:compare",
1089        "//absl/types:optional",
1090        "@com_google_googletest//:gtest",
1091        "@com_google_googletest//:gtest_main",
1092    ],
1093)
1094
1095cc_binary(
1096    name = "btree_benchmark",
1097    testonly = True,
1098    srcs = [
1099        "btree_benchmark.cc",
1100    ],
1101    copts = ABSL_TEST_COPTS,
1102    linkopts = ABSL_DEFAULT_LINKOPTS,
1103    tags = ["benchmark"],
1104    visibility = ["//visibility:private"],
1105    deps = [
1106        ":btree",
1107        ":btree_test_common",
1108        ":flat_hash_map",
1109        ":flat_hash_set",
1110        ":hashtable_debug",
1111        "//absl/algorithm:container",
1112        "//absl/base:raw_logging_internal",
1113        "//absl/hash",
1114        "//absl/log",
1115        "//absl/memory",
1116        "//absl/random",
1117        "//absl/strings:cord",
1118        "//absl/strings:str_format",
1119        "//absl/time",
1120        "@com_github_google_benchmark//:benchmark_main",
1121        "@com_google_googletest//:gtest",
1122    ],
1123)
1124