tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

BUILD.bazel (19440B)


      1 #
      2 # Copyright 2019 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 
     17 load("@bazel_skylib//lib:selects.bzl", "selects")
     18 
     19 # Internal-only implementation classes for Abseil Random
     20 load(
     21    "//absl:copts/configure_copts.bzl",
     22    "ABSL_DEFAULT_COPTS",
     23    "ABSL_DEFAULT_LINKOPTS",
     24    "ABSL_TEST_COPTS",
     25 )
     26 
     27 default_package_visibility = [
     28    "//absl/random:__pkg__",
     29 ]
     30 
     31 package(
     32    default_visibility = default_package_visibility,
     33    features = [
     34        "header_modules",
     35        "layering_check",
     36        "parse_headers",
     37    ],
     38 )
     39 
     40 licenses(["notice"])
     41 
     42 # Used to select on compilers that support GCC-compatible options
     43 # (e.g. "-maes").
     44 selects.config_setting_group(
     45    name = "gcc_compatible",
     46    match_any = [
     47        "@rules_cc//cc/compiler:clang",
     48        "@rules_cc//cc/compiler:gcc",
     49    ],
     50 )
     51 
     52 selects.config_setting_group(
     53    name = "gcc_compatible-aarch32",
     54    match_all = [
     55        ":gcc_compatible",
     56        "@platforms//cpu:aarch32",
     57    ],
     58 )
     59 
     60 selects.config_setting_group(
     61    name = "gcc_compatible-aarch64",
     62    match_all = [
     63        ":gcc_compatible",
     64        "@platforms//cpu:aarch64",
     65    ],
     66 )
     67 
     68 selects.config_setting_group(
     69    name = "ppc_crypto",
     70    match_any = [
     71        "@platforms//cpu:ppc",
     72        "@platforms//cpu:ppc32",
     73        "@platforms//cpu:ppc64le",
     74    ],
     75 )
     76 
     77 selects.config_setting_group(
     78    name = "gcc_compatible-ppc_crypto",
     79    match_all = [
     80        ":gcc_compatible",
     81        ":ppc_crypto",
     82    ],
     83 )
     84 
     85 selects.config_setting_group(
     86    name = "gcc_compatible-x86_64",
     87    match_all = [
     88        ":gcc_compatible",
     89        "@platforms//cpu:x86_64",
     90    ],
     91 )
     92 
     93 # Some libraries are compiled with options to generate AES-NI
     94 # instructions, and runtime dispatch is used to determine if the host
     95 # microarchitecture supports AES-NI or if a portable fallback library
     96 # should be called.
     97 ABSL_RANDOM_RANDEN_COPTS = select({
     98    ":gcc_compatible-aarch32": ["-mfpu=neon"],
     99    ":gcc_compatible-aarch64": ["-march=armv8-a+crypto"],
    100    ":gcc_compatible-ppc_crypto": ["-mcrypto"],
    101    ":gcc_compatible-x86_64": [
    102        "-maes",
    103        "-msse4.1",
    104    ],
    105    "//conditions:default": [],
    106 })
    107 
    108 cc_library(
    109    name = "traits",
    110    hdrs = ["traits.h"],
    111    copts = ABSL_DEFAULT_COPTS,
    112    linkopts = ABSL_DEFAULT_LINKOPTS,
    113    deps = [
    114        "//absl/base:config",
    115        "//absl/numeric:bits",
    116        "//absl/numeric:int128",
    117    ],
    118 )
    119 
    120 cc_library(
    121    name = "distribution_caller",
    122    hdrs = ["distribution_caller.h"],
    123    copts = ABSL_DEFAULT_COPTS,
    124    linkopts = ABSL_DEFAULT_LINKOPTS,
    125    deps = [
    126        "//absl/base:config",
    127        "//absl/base:fast_type_id",
    128        "//absl/meta:type_traits",
    129        "//absl/utility",
    130    ],
    131 )
    132 
    133 cc_library(
    134    name = "fast_uniform_bits",
    135    hdrs = [
    136        "fast_uniform_bits.h",
    137    ],
    138    copts = ABSL_DEFAULT_COPTS,
    139    linkopts = ABSL_DEFAULT_LINKOPTS,
    140    deps = [
    141        ":traits",
    142        "//absl/base:config",
    143        "//absl/meta:type_traits",
    144    ],
    145 )
    146 
    147 cc_library(
    148    name = "seed_material",
    149    srcs = [
    150        "seed_material.cc",
    151    ],
    152    hdrs = [
    153        "seed_material.h",
    154    ],
    155    copts = ABSL_DEFAULT_COPTS,
    156    linkopts = ABSL_DEFAULT_LINKOPTS + select({
    157        "@rules_cc//cc/compiler:msvc-cl": ["-DEFAULTLIB:bcrypt.lib"],
    158        "@rules_cc//cc/compiler:clang-cl": ["-DEFAULTLIB:bcrypt.lib"],
    159        "//absl:mingw_compiler": [
    160            "-DEFAULTLIB:bcrypt.lib",
    161            "-lbcrypt",
    162        ],
    163        "//conditions:default": [],
    164    }),
    165    deps = [
    166        ":fast_uniform_bits",
    167        "//absl/base:config",
    168        "//absl/base:dynamic_annotations",
    169        "//absl/base:raw_logging_internal",
    170        "//absl/strings",
    171        "//absl/types:optional",
    172        "//absl/types:span",
    173    ],
    174 )
    175 
    176 cc_library(
    177    name = "entropy_pool",
    178    srcs = ["entropy_pool.cc"],
    179    hdrs = ["entropy_pool.h"],
    180    copts = ABSL_DEFAULT_COPTS,
    181    linkopts = select({
    182        "@rules_cc//cc/compiler:msvc-cl": [],
    183        "@rules_cc//cc/compiler:clang-cl": [],
    184        "@rules_cc//cc/compiler:emscripten": [],
    185        "//conditions:default": ["-pthread"],
    186    }) + ABSL_DEFAULT_LINKOPTS,
    187    deps = [
    188        ":platform",
    189        ":randen",
    190        ":seed_material",
    191        "//absl/base",
    192        "//absl/base:config",
    193        "//absl/base:core_headers",
    194        "//absl/random:seed_gen_exception",
    195        "//absl/types:span",
    196    ],
    197 )
    198 
    199 cc_library(
    200    name = "explicit_seed_seq",
    201    testonly = True,
    202    hdrs = [
    203        "explicit_seed_seq.h",
    204    ],
    205    copts = ABSL_DEFAULT_COPTS,
    206    linkopts = ABSL_DEFAULT_LINKOPTS,
    207    deps = [
    208        "//absl/base:config",
    209        "//absl/base:endian",
    210    ],
    211 )
    212 
    213 cc_library(
    214    name = "sequence_urbg",
    215    testonly = True,
    216    hdrs = [
    217        "sequence_urbg.h",
    218    ],
    219    copts = ABSL_DEFAULT_COPTS,
    220    linkopts = ABSL_DEFAULT_LINKOPTS,
    221    deps = ["//absl/base:config"],
    222 )
    223 
    224 cc_library(
    225    name = "salted_seed_seq",
    226    hdrs = [
    227        "salted_seed_seq.h",
    228    ],
    229    copts = ABSL_DEFAULT_COPTS,
    230    linkopts = ABSL_DEFAULT_LINKOPTS,
    231    deps = [
    232        ":seed_material",
    233        "//absl/container:inlined_vector",
    234        "//absl/meta:type_traits",
    235        "//absl/types:optional",
    236        "//absl/types:span",
    237    ],
    238 )
    239 
    240 cc_library(
    241    name = "iostream_state_saver",
    242    hdrs = ["iostream_state_saver.h"],
    243    copts = ABSL_DEFAULT_COPTS,
    244    linkopts = ABSL_DEFAULT_LINKOPTS,
    245    deps = [
    246        "//absl/base:config",
    247        "//absl/meta:type_traits",
    248        "//absl/numeric:int128",
    249    ],
    250 )
    251 
    252 cc_library(
    253    name = "generate_real",
    254    hdrs = [
    255        "generate_real.h",
    256    ],
    257    copts = ABSL_DEFAULT_COPTS,
    258    linkopts = ABSL_DEFAULT_LINKOPTS,
    259    deps = [
    260        ":fastmath",
    261        ":traits",
    262        "//absl/meta:type_traits",
    263        "//absl/numeric:bits",
    264    ],
    265 )
    266 
    267 cc_library(
    268    name = "fastmath",
    269    hdrs = [
    270        "fastmath.h",
    271    ],
    272    copts = ABSL_DEFAULT_COPTS,
    273    linkopts = ABSL_DEFAULT_LINKOPTS,
    274    deps = ["//absl/numeric:bits"],
    275 )
    276 
    277 cc_library(
    278    name = "wide_multiply",
    279    hdrs = ["wide_multiply.h"],
    280    copts = ABSL_DEFAULT_COPTS,
    281    linkopts = ABSL_DEFAULT_LINKOPTS,
    282    deps = [
    283        ":traits",
    284        "//absl/base:config",
    285        "//absl/numeric:bits",
    286        "//absl/numeric:int128",
    287    ],
    288 )
    289 
    290 cc_library(
    291    name = "nonsecure_base",
    292    hdrs = ["nonsecure_base.h"],
    293    copts = ABSL_DEFAULT_COPTS,
    294    linkopts = ABSL_DEFAULT_LINKOPTS,
    295    deps = [
    296        ":entropy_pool",
    297        ":salted_seed_seq",
    298        ":seed_material",
    299        "//absl/base:config",
    300        "//absl/container:inlined_vector",
    301        "//absl/meta:type_traits",
    302    ],
    303 )
    304 
    305 cc_library(
    306    name = "pcg_engine",
    307    hdrs = ["pcg_engine.h"],
    308    copts = ABSL_DEFAULT_COPTS,
    309    linkopts = ABSL_DEFAULT_LINKOPTS,
    310    deps = [
    311        ":fastmath",
    312        ":iostream_state_saver",
    313        "//absl/base:config",
    314        "//absl/meta:type_traits",
    315        "//absl/numeric:bits",
    316        "//absl/numeric:int128",
    317    ],
    318 )
    319 
    320 cc_library(
    321    name = "randen_engine",
    322    hdrs = ["randen_engine.h"],
    323    copts = ABSL_DEFAULT_COPTS,
    324    linkopts = ABSL_DEFAULT_LINKOPTS,
    325    visibility = default_package_visibility + [
    326    ],
    327    deps = [
    328        ":iostream_state_saver",
    329        ":randen",
    330        "//absl/base:endian",
    331        "//absl/meta:type_traits",
    332    ],
    333 )
    334 
    335 cc_library(
    336    name = "platform",
    337    srcs = [
    338        "randen_round_keys.cc",
    339    ],
    340    hdrs = [
    341        "randen_traits.h",
    342    ],
    343    copts = ABSL_DEFAULT_COPTS,
    344    linkopts = ABSL_DEFAULT_LINKOPTS,
    345    textual_hdrs = [
    346        "platform.h",
    347    ],
    348    deps = ["//absl/base:config"],
    349 )
    350 
    351 cc_library(
    352    name = "randen",
    353    srcs = [
    354        "randen.cc",
    355    ],
    356    hdrs = [
    357        "randen.h",
    358    ],
    359    copts = ABSL_DEFAULT_COPTS,
    360    linkopts = ABSL_DEFAULT_LINKOPTS,
    361    deps = [
    362        ":platform",
    363        ":randen_hwaes",
    364        ":randen_slow",
    365        "//absl/base:raw_logging_internal",
    366    ],
    367 )
    368 
    369 cc_library(
    370    name = "randen_slow",
    371    srcs = ["randen_slow.cc"],
    372    hdrs = ["randen_slow.h"],
    373    copts = ABSL_DEFAULT_COPTS,
    374    linkopts = ABSL_DEFAULT_LINKOPTS,
    375    deps = [
    376        ":platform",
    377        "//absl/base:config",
    378        "//absl/base:core_headers",
    379        "//absl/base:endian",
    380        "//absl/numeric:int128",
    381    ],
    382 )
    383 
    384 cc_library(
    385    name = "randen_hwaes",
    386    srcs = [
    387        "randen_detect.cc",
    388    ],
    389    hdrs = [
    390        "randen_detect.h",
    391        "randen_hwaes.h",
    392    ],
    393    copts = ABSL_DEFAULT_COPTS,
    394    linkopts = ABSL_DEFAULT_LINKOPTS,
    395    deps = [
    396        ":platform",
    397        ":randen_hwaes_impl",
    398        "//absl/base:config",
    399        "//absl/types:optional",
    400    ],
    401 )
    402 
    403 # build with --save_temps to see assembly language output.
    404 cc_library(
    405    name = "randen_hwaes_impl",
    406    srcs = [
    407        "randen_hwaes.cc",
    408        "randen_hwaes.h",
    409    ],
    410    copts = ABSL_DEFAULT_COPTS + ABSL_RANDOM_RANDEN_COPTS + select({
    411        "@rules_cc//cc/compiler:msvc-cl": [],
    412        "@rules_cc//cc/compiler:clang-cl": [],
    413        "//conditions:default": ["-Wno-pass-failed"],
    414    }),
    415    linkopts = ABSL_DEFAULT_LINKOPTS,
    416    deps = [
    417        ":platform",
    418        "//absl/base:config",
    419        "//absl/base:core_headers",
    420        "//absl/numeric:int128",
    421    ],
    422 )
    423 
    424 cc_binary(
    425    name = "gaussian_distribution_gentables",
    426    srcs = [
    427        "gaussian_distribution_gentables.cc",
    428    ],
    429    linkopts = ABSL_DEFAULT_LINKOPTS,
    430    deps = [
    431        "//absl/base:core_headers",
    432        "//absl/random:distributions",
    433    ],
    434 )
    435 
    436 cc_library(
    437    name = "distribution_test_util",
    438    testonly = True,
    439    srcs = [
    440        "chi_square.cc",
    441        "distribution_test_util.cc",
    442    ],
    443    hdrs = [
    444        "chi_square.h",
    445        "distribution_test_util.h",
    446    ],
    447    copts = ABSL_DEFAULT_COPTS,
    448    linkopts = ABSL_DEFAULT_LINKOPTS,
    449    deps = [
    450        "//absl/base:config",
    451        "//absl/base:core_headers",
    452        "//absl/base:raw_logging_internal",
    453        "//absl/strings",
    454        "//absl/strings:str_format",
    455        "//absl/types:span",
    456    ],
    457 )
    458 
    459 # Common tags for tests, etc.
    460 ABSL_RANDOM_NONPORTABLE_TAGS = [
    461    "no_test_android_arm",
    462    "no_test_android_arm64",
    463    "no_test_android_x86",
    464    "no_test_darwin_x86_64",
    465    "no_test_ios_x86_64",
    466    "no_test_loonix",
    467    "no_test_lexan",
    468    "no_test_wasm",
    469 ]
    470 
    471 cc_test(
    472    name = "traits_test",
    473    size = "small",
    474    srcs = ["traits_test.cc"],
    475    copts = ABSL_TEST_COPTS,
    476    linkopts = ABSL_DEFAULT_LINKOPTS,
    477    deps = [
    478        ":traits",
    479        "@googletest//:gtest",
    480        "@googletest//:gtest_main",
    481    ],
    482 )
    483 
    484 cc_test(
    485    name = "generate_real_test",
    486    size = "small",
    487    srcs = [
    488        "generate_real_test.cc",
    489    ],
    490    copts = ABSL_TEST_COPTS,
    491    linkopts = ABSL_DEFAULT_LINKOPTS,
    492    deps = [
    493        ":generate_real",
    494        "//absl/flags:flag",
    495        "//absl/numeric:bits",
    496        "@googletest//:gtest",
    497        "@googletest//:gtest_main",
    498    ],
    499 )
    500 
    501 cc_test(
    502    name = "distribution_test_util_test",
    503    size = "small",
    504    srcs = ["distribution_test_util_test.cc"],
    505    copts = ABSL_TEST_COPTS,
    506    linkopts = ABSL_DEFAULT_LINKOPTS,
    507    deps = [
    508        ":distribution_test_util",
    509        "@googletest//:gtest",
    510        "@googletest//:gtest_main",
    511    ],
    512 )
    513 
    514 cc_test(
    515    name = "fastmath_test",
    516    size = "small",
    517    srcs = ["fastmath_test.cc"],
    518    copts = ABSL_TEST_COPTS,
    519    linkopts = ABSL_DEFAULT_LINKOPTS,
    520    deps = [
    521        ":fastmath",
    522        "@googletest//:gtest",
    523        "@googletest//:gtest_main",
    524    ],
    525 )
    526 
    527 cc_test(
    528    name = "explicit_seed_seq_test",
    529    size = "small",
    530    srcs = ["explicit_seed_seq_test.cc"],
    531    copts = ABSL_TEST_COPTS,
    532    linkopts = ABSL_DEFAULT_LINKOPTS,
    533    deps = [
    534        ":explicit_seed_seq",
    535        "//absl/random:seed_sequences",
    536        "@googletest//:gtest",
    537        "@googletest//:gtest_main",
    538    ],
    539 )
    540 
    541 cc_test(
    542    name = "salted_seed_seq_test",
    543    size = "small",
    544    srcs = ["salted_seed_seq_test.cc"],
    545    copts = ABSL_TEST_COPTS,
    546    linkopts = ABSL_DEFAULT_LINKOPTS,
    547    deps = [
    548        ":salted_seed_seq",
    549        "@googletest//:gtest",
    550        "@googletest//:gtest_main",
    551    ],
    552 )
    553 
    554 cc_test(
    555    name = "chi_square_test",
    556    size = "small",
    557    srcs = [
    558        "chi_square_test.cc",
    559    ],
    560    copts = ABSL_TEST_COPTS,
    561    linkopts = ABSL_DEFAULT_LINKOPTS,
    562    deps = [
    563        ":distribution_test_util",
    564        "//absl/base:core_headers",
    565        "@googletest//:gtest",
    566        "@googletest//:gtest_main",
    567    ],
    568 )
    569 
    570 cc_test(
    571    name = "fast_uniform_bits_test",
    572    size = "small",
    573    srcs = [
    574        "fast_uniform_bits_test.cc",
    575    ],
    576    copts = ABSL_TEST_COPTS,
    577    linkopts = ABSL_DEFAULT_LINKOPTS,
    578    deps = [
    579        ":fast_uniform_bits",
    580        "@googletest//:gtest",
    581        "@googletest//:gtest_main",
    582    ],
    583 )
    584 
    585 cc_library(
    586    name = "mock_helpers",
    587    hdrs = ["mock_helpers.h"],
    588    linkopts = ABSL_DEFAULT_LINKOPTS,
    589    deps = [
    590        "//absl/base:config",
    591        "//absl/base:fast_type_id",
    592        "//absl/types:optional",
    593    ],
    594 )
    595 
    596 cc_library(
    597    name = "mock_overload_set",
    598    testonly = True,
    599    hdrs = ["mock_overload_set.h"],
    600    linkopts = ABSL_DEFAULT_LINKOPTS,
    601    deps = [
    602        ":mock_helpers",
    603        "//absl/base:config",
    604        "//absl/random:mocking_bit_gen",
    605        "@googletest//:gtest",
    606    ],
    607 )
    608 
    609 cc_test(
    610    name = "nonsecure_base_test",
    611    size = "small",
    612    srcs = [
    613        "nonsecure_base_test.cc",
    614    ],
    615    copts = ABSL_TEST_COPTS,
    616    linkopts = ABSL_DEFAULT_LINKOPTS,
    617    deps = [
    618        ":nonsecure_base",
    619        "//absl/container:flat_hash_set",
    620        "//absl/meta:type_traits",
    621        "//absl/random",
    622        "//absl/random:distributions",
    623        "//absl/synchronization",
    624        "@googletest//:gtest",
    625        "@googletest//:gtest_main",
    626    ],
    627 )
    628 
    629 cc_test(
    630    name = "seed_material_test",
    631    size = "small",
    632    srcs = ["seed_material_test.cc"],
    633    copts = ABSL_TEST_COPTS,
    634    linkopts = ABSL_DEFAULT_LINKOPTS,
    635    deps = [
    636        ":seed_material",
    637        "//absl/types:span",
    638        "@googletest//:gtest",
    639        "@googletest//:gtest_main",
    640    ],
    641 )
    642 
    643 cc_test(
    644    name = "entropy_pool_test",
    645    size = "small",
    646    srcs = [
    647        "entropy_pool_test.cc",
    648    ],
    649    copts = ABSL_TEST_COPTS,
    650    linkopts = ABSL_DEFAULT_LINKOPTS,
    651    deps = [
    652        ":entropy_pool",
    653        "//absl/container:flat_hash_set",
    654        "//absl/synchronization",
    655        "@googletest//:gtest",
    656        "@googletest//:gtest_main",
    657    ],
    658 )
    659 
    660 cc_test(
    661    name = "pcg_engine_test",
    662    size = "medium",  # Trying to measure accuracy.
    663    srcs = ["pcg_engine_test.cc"],
    664    copts = ABSL_TEST_COPTS,
    665    flaky = 1,
    666    linkopts = ABSL_DEFAULT_LINKOPTS,
    667    deps = [
    668        ":explicit_seed_seq",
    669        ":pcg_engine",
    670        "//absl/time",
    671        "@googletest//:gtest",
    672        "@googletest//:gtest_main",
    673    ],
    674 )
    675 
    676 cc_test(
    677    name = "randen_engine_test",
    678    size = "medium",
    679    srcs = [
    680        "randen_engine_test.cc",
    681    ],
    682    copts = ABSL_TEST_COPTS,
    683    linkopts = ABSL_DEFAULT_LINKOPTS,
    684    deps = [
    685        ":explicit_seed_seq",
    686        ":randen_engine",
    687        "//absl/log",
    688        "//absl/strings",
    689        "//absl/time",
    690        "@googletest//:gtest",
    691        "@googletest//:gtest_main",
    692    ],
    693 )
    694 
    695 cc_test(
    696    name = "randen_test",
    697    size = "small",
    698    srcs = ["randen_test.cc"],
    699    copts = ABSL_TEST_COPTS,
    700    linkopts = ABSL_DEFAULT_LINKOPTS,
    701    deps = [
    702        ":randen",
    703        "//absl/meta:type_traits",
    704        "@googletest//:gtest",
    705        "@googletest//:gtest_main",
    706    ],
    707 )
    708 
    709 cc_test(
    710    name = "randen_slow_test",
    711    size = "small",
    712    srcs = ["randen_slow_test.cc"],
    713    copts = ABSL_TEST_COPTS,
    714    linkopts = ABSL_DEFAULT_LINKOPTS,
    715    deps = [
    716        ":platform",
    717        ":randen_slow",
    718        "//absl/base:endian",
    719        "@googletest//:gtest",
    720        "@googletest//:gtest_main",
    721    ],
    722 )
    723 
    724 cc_test(
    725    name = "randen_hwaes_test",
    726    size = "small",
    727    srcs = ["randen_hwaes_test.cc"],
    728    copts = ABSL_TEST_COPTS + ABSL_RANDOM_RANDEN_COPTS,
    729    linkopts = ABSL_DEFAULT_LINKOPTS,
    730    tags = ABSL_RANDOM_NONPORTABLE_TAGS,
    731    deps = [
    732        ":platform",
    733        ":randen_hwaes",
    734        ":randen_hwaes_impl",  # build_cleaner: keep
    735        "//absl/log",
    736        "//absl/strings:str_format",
    737        "@googletest//:gtest",
    738    ],
    739 )
    740 
    741 cc_test(
    742    name = "wide_multiply_test",
    743    size = "small",
    744    srcs = ["wide_multiply_test.cc"],
    745    copts = ABSL_TEST_COPTS,
    746    linkopts = ABSL_DEFAULT_LINKOPTS,
    747    deps = [
    748        ":wide_multiply",
    749        "//absl/numeric:int128",
    750        "@googletest//:gtest",
    751        "@googletest//:gtest_main",
    752    ],
    753 )
    754 
    755 cc_library(
    756    name = "nanobenchmark",
    757    srcs = ["nanobenchmark.cc"],
    758    linkopts = ABSL_DEFAULT_LINKOPTS,
    759    textual_hdrs = ["nanobenchmark.h"],
    760    deps = [
    761        ":platform",
    762        ":randen_engine",
    763        "//absl/base:config",
    764        "//absl/base:core_headers",
    765        "//absl/base:raw_logging_internal",
    766    ],
    767 )
    768 
    769 cc_library(
    770    name = "uniform_helper",
    771    hdrs = ["uniform_helper.h"],
    772    copts = ABSL_DEFAULT_COPTS,
    773    linkopts = ABSL_DEFAULT_LINKOPTS,
    774    deps = [
    775        ":traits",
    776        "//absl/base:config",
    777        "//absl/meta:type_traits",
    778    ],
    779 )
    780 
    781 cc_library(
    782    name = "mock_validators",
    783    hdrs = ["mock_validators.h"],
    784    deps = [
    785        ":iostream_state_saver",
    786        ":uniform_helper",
    787        "//absl/base:config",
    788        "//absl/base:raw_logging_internal",
    789        "//absl/strings",
    790        "//absl/strings:string_view",
    791    ],
    792 )
    793 
    794 cc_test(
    795    name = "nanobenchmark_test",
    796    size = "small",
    797    srcs = ["nanobenchmark_test.cc"],
    798    flaky = 1,
    799    linkopts = ABSL_DEFAULT_LINKOPTS,
    800    tags = [
    801        "benchmark",
    802        "no_test_ios_x86_64",
    803        "no_test_loonix",  # Crashing.
    804        "no_test_wasm",
    805    ],
    806    deps = [
    807        ":nanobenchmark",
    808        "//absl/log",
    809        "//absl/log:check",
    810        "//absl/strings",
    811        "//absl/strings:str_format",
    812    ],
    813 )
    814 
    815 cc_test(
    816    name = "randen_benchmarks",
    817    size = "medium",
    818    timeout = "long",
    819    srcs = ["randen_benchmarks.cc"],
    820    copts = ABSL_TEST_COPTS + ABSL_RANDOM_RANDEN_COPTS,
    821    flaky = 1,
    822    linkopts = ABSL_DEFAULT_LINKOPTS,
    823    tags = ABSL_RANDOM_NONPORTABLE_TAGS + ["benchmark"],
    824    deps = [
    825        ":nanobenchmark",
    826        ":platform",
    827        ":randen",
    828        ":randen_engine",
    829        ":randen_hwaes",
    830        ":randen_hwaes_impl",
    831        ":randen_slow",
    832        "//absl/base:raw_logging_internal",
    833        "//absl/strings",
    834    ],
    835 )
    836 
    837 cc_test(
    838    name = "iostream_state_saver_test",
    839    srcs = ["iostream_state_saver_test.cc"],
    840    linkopts = ABSL_DEFAULT_LINKOPTS,
    841    deps = [
    842        ":iostream_state_saver",
    843        "@googletest//:gtest",
    844        "@googletest//:gtest_main",
    845    ],
    846 )
    847 
    848 cc_test(
    849    name = "uniform_helper_test",
    850    size = "small",
    851    srcs = ["uniform_helper_test.cc"],
    852    copts = ABSL_TEST_COPTS,
    853    linkopts = ABSL_DEFAULT_LINKOPTS,
    854    deps = [
    855        ":uniform_helper",
    856        "@googletest//:gtest",
    857        "@googletest//:gtest_main",
    858    ],
    859 )