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