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