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