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