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