re2 1.23.0 → 1.23.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/binding.gyp +3 -2
- package/package.json +5 -5
- package/vendor/abseil-cpp/CMake/AbseilDll.cmake +25 -4
- package/vendor/abseil-cpp/CMake/AbseilHelpers.cmake +6 -1
- package/vendor/abseil-cpp/CMakeLists.txt +2 -2
- package/vendor/abseil-cpp/MODULE.bazel +2 -2
- package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +0 -1
- package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +0 -2
- package/vendor/abseil-cpp/absl/algorithm/container.h +191 -140
- package/vendor/abseil-cpp/absl/algorithm/container_test.cc +818 -0
- package/vendor/abseil-cpp/absl/base/BUILD.bazel +44 -5
- package/vendor/abseil-cpp/absl/base/CMakeLists.txt +42 -3
- package/vendor/abseil-cpp/absl/base/attributes.h +5 -1
- package/vendor/abseil-cpp/absl/base/call_once_test.cc +10 -10
- package/vendor/abseil-cpp/absl/base/casts.cc +61 -0
- package/vendor/abseil-cpp/absl/base/casts.h +128 -2
- package/vendor/abseil-cpp/absl/base/casts_test.cc +151 -0
- package/vendor/abseil-cpp/absl/base/config.h +13 -37
- package/vendor/abseil-cpp/absl/base/internal/dynamic_annotations.h +1 -1
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +4 -0
- package/vendor/abseil-cpp/absl/base/internal/nullability_traits.h +71 -0
- package/vendor/abseil-cpp/absl/base/internal/nullability_traits_test.cc +98 -0
- package/vendor/abseil-cpp/absl/base/internal/raw_logging.cc +3 -4
- package/vendor/abseil-cpp/absl/base/internal/spinlock.cc +13 -7
- package/vendor/abseil-cpp/absl/base/internal/spinlock.h +16 -11
- package/vendor/abseil-cpp/absl/base/internal/strerror_test.cc +2 -1
- package/vendor/abseil-cpp/absl/base/internal/sysinfo.cc +0 -9
- package/vendor/abseil-cpp/absl/base/internal/sysinfo_test.cc +0 -6
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -1
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +1 -1
- package/vendor/abseil-cpp/absl/base/macros.h +40 -17
- package/vendor/abseil-cpp/absl/base/nullability.h +1 -1
- package/vendor/abseil-cpp/absl/base/optimization.h +1 -3
- package/vendor/abseil-cpp/absl/base/options.h +1 -27
- package/vendor/abseil-cpp/absl/base/spinlock_test_common.cc +5 -8
- package/vendor/abseil-cpp/absl/cleanup/cleanup.h +4 -0
- package/vendor/abseil-cpp/absl/container/BUILD.bazel +195 -2
- package/vendor/abseil-cpp/absl/container/CMakeLists.txt +136 -2
- package/vendor/abseil-cpp/absl/container/btree_map.h +56 -6
- package/vendor/abseil-cpp/absl/container/btree_set.h +52 -6
- package/vendor/abseil-cpp/absl/container/btree_test.cc +107 -1
- package/vendor/abseil-cpp/absl/container/chunked_queue.h +755 -0
- package/vendor/abseil-cpp/absl/container/chunked_queue_benchmark.cc +386 -0
- package/vendor/abseil-cpp/absl/container/chunked_queue_test.cc +768 -0
- package/vendor/abseil-cpp/absl/container/fixed_array.h +4 -6
- package/vendor/abseil-cpp/absl/container/flat_hash_map.h +16 -6
- package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +1 -2
- package/vendor/abseil-cpp/absl/container/flat_hash_set.h +16 -6
- package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +0 -2
- package/vendor/abseil-cpp/absl/container/inlined_vector.h +12 -4
- package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +21 -0
- package/vendor/abseil-cpp/absl/container/internal/btree_container.h +14 -5
- package/vendor/abseil-cpp/absl/container/internal/chunked_queue.h +173 -0
- package/vendor/abseil-cpp/absl/container/internal/common.h +51 -0
- package/vendor/abseil-cpp/absl/container/internal/container_memory.h +7 -1
- package/vendor/abseil-cpp/absl/container/internal/container_memory_test.cc +11 -0
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.cc +0 -2
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +1 -2
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing.h +0 -14
- package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +11 -8
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +3 -4
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +23 -6
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +31 -15
- package/vendor/abseil-cpp/absl/container/internal/heterogeneous_lookup_testing.h +80 -0
- package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +4 -12
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +35 -10
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +149 -23
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +120 -126
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +4 -0
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +8 -0
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +14 -59
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +111 -22
- package/vendor/abseil-cpp/absl/container/internal/unordered_map_constructor_test.h +53 -112
- package/vendor/abseil-cpp/absl/container/internal/unordered_map_lookup_test.h +10 -15
- package/vendor/abseil-cpp/absl/container/internal/unordered_map_members_test.h +3 -3
- package/vendor/abseil-cpp/absl/container/internal/unordered_map_modifiers_test.h +45 -61
- package/vendor/abseil-cpp/absl/container/internal/unordered_set_constructor_test.h +53 -112
- package/vendor/abseil-cpp/absl/container/internal/unordered_set_lookup_test.h +6 -9
- package/vendor/abseil-cpp/absl/container/internal/unordered_set_members_test.h +3 -3
- package/vendor/abseil-cpp/absl/container/internal/unordered_set_modifiers_test.h +25 -31
- package/vendor/abseil-cpp/absl/container/linked_hash_map.h +666 -0
- package/vendor/abseil-cpp/absl/container/linked_hash_map_benchmark.cc +140 -0
- package/vendor/abseil-cpp/absl/container/linked_hash_map_test.cc +987 -0
- package/vendor/abseil-cpp/absl/container/linked_hash_set.h +527 -0
- package/vendor/abseil-cpp/absl/container/linked_hash_set_benchmark.cc +84 -0
- package/vendor/abseil-cpp/absl/container/linked_hash_set_test.cc +947 -0
- package/vendor/abseil-cpp/absl/container/node_hash_map.h +17 -6
- package/vendor/abseil-cpp/absl/container/node_hash_set.h +16 -5
- package/vendor/abseil-cpp/absl/container/node_hash_set_test.cc +1 -2
- package/vendor/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +79 -0
- package/vendor/abseil-cpp/absl/copts/GENERATED_copts.bzl +79 -0
- package/vendor/abseil-cpp/absl/copts/copts.py +17 -4
- package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +67 -13
- package/vendor/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +4 -2
- package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +31 -0
- package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +34 -0
- package/vendor/abseil-cpp/absl/debugging/failure_signal_handler.cc +2 -2
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc +118 -0
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.h +71 -0
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer_test.cc +97 -0
- package/vendor/abseil-cpp/absl/debugging/internal/demangle.cc +2 -2
- package/vendor/abseil-cpp/absl/debugging/internal/elf_mem_image.h +4 -4
- package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.cc +4 -0
- package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.h +7 -0
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +1 -1
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +0 -7
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +3 -2
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +2 -1
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +8 -3
- package/vendor/abseil-cpp/absl/debugging/internal/symbolize.h +2 -2
- package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +35 -67
- package/vendor/abseil-cpp/absl/debugging/stacktrace.h +3 -0
- package/vendor/abseil-cpp/absl/debugging/stacktrace_benchmark.cc +24 -1
- package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +39 -15
- package/vendor/abseil-cpp/absl/debugging/symbolize_emscripten.inc +4 -17
- package/vendor/abseil-cpp/absl/debugging/symbolize_test.cc +25 -40
- package/vendor/abseil-cpp/absl/debugging/symbolize_win32.inc +2 -4
- package/vendor/abseil-cpp/absl/flags/BUILD.bazel +1 -0
- package/vendor/abseil-cpp/absl/flags/declare.h +9 -0
- package/vendor/abseil-cpp/absl/flags/flag.h +2 -1
- package/vendor/abseil-cpp/absl/flags/internal/commandlineflag.h +1 -1
- package/vendor/abseil-cpp/absl/flags/internal/flag.cc +3 -2
- package/vendor/abseil-cpp/absl/flags/marshalling.cc +1 -16
- package/vendor/abseil-cpp/absl/flags/parse.cc +4 -2
- package/vendor/abseil-cpp/absl/flags/parse_test.cc +1 -1
- package/vendor/abseil-cpp/absl/flags/reflection.cc +4 -3
- package/vendor/abseil-cpp/absl/functional/BUILD.bazel +4 -0
- package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +4 -0
- package/vendor/abseil-cpp/absl/functional/any_invocable.h +3 -1
- package/vendor/abseil-cpp/absl/functional/function_ref.h +125 -20
- package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +122 -9
- package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +13 -2
- package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +42 -4
- package/vendor/abseil-cpp/absl/hash/hash_benchmark.cc +11 -0
- package/vendor/abseil-cpp/absl/hash/hash_test.cc +5 -2
- package/vendor/abseil-cpp/absl/hash/internal/hash.cc +184 -53
- package/vendor/abseil-cpp/absl/hash/internal/hash.h +116 -10
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +43 -4
- package/vendor/abseil-cpp/absl/log/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/log/CMakeLists.txt +35 -1
- package/vendor/abseil-cpp/absl/log/check_test_impl.inc +59 -4
- package/vendor/abseil-cpp/absl/log/die_if_null.cc +3 -1
- package/vendor/abseil-cpp/absl/log/die_if_null.h +24 -3
- package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +31 -1
- package/vendor/abseil-cpp/absl/log/internal/check_impl.h +2 -1
- package/vendor/abseil-cpp/absl/log/internal/check_op.cc +3 -1
- package/vendor/abseil-cpp/absl/log/internal/check_op.h +44 -18
- package/vendor/abseil-cpp/absl/log/internal/conditions.h +38 -35
- package/vendor/abseil-cpp/absl/log/internal/container.h +312 -0
- package/vendor/abseil-cpp/absl/log/internal/container_test.cc +254 -0
- package/vendor/abseil-cpp/absl/log/internal/log_impl.h +108 -110
- package/vendor/abseil-cpp/absl/log/internal/log_message.cc +5 -2
- package/vendor/abseil-cpp/absl/log/internal/log_message.h +5 -1
- package/vendor/abseil-cpp/absl/log/internal/strip.h +30 -31
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +19 -19
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.h +0 -1
- package/vendor/abseil-cpp/absl/log/log.h +2 -2
- package/vendor/abseil-cpp/absl/meta/BUILD.bazel +51 -0
- package/vendor/abseil-cpp/absl/meta/CMakeLists.txt +46 -0
- package/vendor/abseil-cpp/absl/meta/internal/constexpr_testing.h +73 -0
- package/vendor/abseil-cpp/absl/meta/internal/constexpr_testing_test.cc +40 -0
- package/vendor/abseil-cpp/absl/meta/internal/requires.h +67 -0
- package/vendor/abseil-cpp/absl/meta/internal/requires_test.cc +66 -0
- package/vendor/abseil-cpp/absl/meta/type_traits.h +42 -1
- package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +14 -0
- package/vendor/abseil-cpp/absl/numeric/int128.h +41 -21
- package/vendor/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +16 -22
- package/vendor/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +5 -7
- package/vendor/abseil-cpp/absl/numeric/int128_test.cc +52 -5
- package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +1 -0
- package/vendor/abseil-cpp/absl/profiling/CMakeLists.txt +1 -0
- package/vendor/abseil-cpp/absl/profiling/hashtable.cc +18 -7
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +1 -0
- package/vendor/abseil-cpp/absl/random/internal/fastmath_test.cc +3 -5
- package/vendor/abseil-cpp/absl/random/internal/platform.h +0 -13
- package/vendor/abseil-cpp/absl/random/internal/randen_engine_test.cc +0 -1
- package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +1 -27
- package/vendor/abseil-cpp/absl/status/BUILD.bazel +17 -0
- package/vendor/abseil-cpp/absl/status/CMakeLists.txt +16 -0
- package/vendor/abseil-cpp/absl/status/internal/status_internal.h +4 -2
- package/vendor/abseil-cpp/absl/status/internal/status_matchers.h +2 -2
- package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +2 -1
- package/vendor/abseil-cpp/absl/status/status.cc +4 -0
- package/vendor/abseil-cpp/absl/status/status.h +5 -0
- package/vendor/abseil-cpp/absl/status/status_matchers.h +48 -0
- package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +27 -0
- package/vendor/abseil-cpp/absl/status/status_test.cc +1 -0
- package/vendor/abseil-cpp/absl/status/statusor.h +1 -1
- package/vendor/abseil-cpp/absl/strings/BUILD.bazel +101 -21
- package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +99 -5
- package/vendor/abseil-cpp/absl/strings/ascii.h +9 -4
- package/vendor/abseil-cpp/absl/strings/cord.cc +15 -10
- package/vendor/abseil-cpp/absl/strings/cord.h +1 -1
- package/vendor/abseil-cpp/absl/strings/escaping.cc +126 -94
- package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
- package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite_test.cc +95 -0
- package/vendor/abseil-cpp/absl/strings/internal/cord_internal.h +2 -0
- package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree_test.cc +8 -8
- package/vendor/abseil-cpp/absl/strings/internal/cordz_info.cc +24 -18
- package/vendor/abseil-cpp/absl/strings/internal/cordz_info.h +10 -16
- package/vendor/abseil-cpp/absl/strings/internal/escaping.h +9 -7
- package/vendor/abseil-cpp/absl/strings/internal/generic_printer.cc +107 -0
- package/vendor/abseil-cpp/absl/strings/internal/generic_printer.h +115 -0
- package/vendor/abseil-cpp/absl/strings/internal/generic_printer_internal.h +423 -0
- package/vendor/abseil-cpp/absl/strings/internal/generic_printer_test.cc +685 -0
- package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized.h +0 -12
- package/vendor/abseil-cpp/absl/strings/internal/str_format/checker.h +2 -4
- package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +21 -7
- package/vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +495 -8
- package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +18 -15
- package/vendor/abseil-cpp/absl/strings/numbers.cc +71 -8
- package/vendor/abseil-cpp/absl/strings/numbers.h +25 -12
- package/vendor/abseil-cpp/absl/strings/numbers_test.cc +70 -0
- package/vendor/abseil-cpp/absl/strings/resize_and_overwrite.h +194 -0
- package/vendor/abseil-cpp/absl/strings/resize_and_overwrite_test.cc +154 -0
- package/vendor/abseil-cpp/absl/strings/str_cat.cc +96 -91
- package/vendor/abseil-cpp/absl/strings/str_cat.h +17 -12
- package/vendor/abseil-cpp/absl/strings/str_format_test.cc +4 -4
- package/vendor/abseil-cpp/absl/strings/str_split.h +1 -1
- package/vendor/abseil-cpp/absl/strings/str_split_test.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/string_view.h +8 -718
- package/vendor/abseil-cpp/absl/strings/string_view_test.cc +1 -1265
- package/vendor/abseil-cpp/absl/strings/substitute.cc +24 -24
- package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +2 -3
- package/vendor/abseil-cpp/absl/synchronization/CMakeLists.txt +1 -0
- package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -2
- package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout_test.cc +15 -5
- package/vendor/abseil-cpp/absl/synchronization/mutex.cc +2 -1
- package/vendor/abseil-cpp/absl/synchronization/mutex.h +47 -23
- package/vendor/abseil-cpp/absl/synchronization/notification.h +1 -1
- package/vendor/abseil-cpp/absl/time/CMakeLists.txt +2 -0
- package/vendor/abseil-cpp/absl/time/civil_time_benchmark.cc +1 -2
- package/vendor/abseil-cpp/absl/time/civil_time_test.cc +58 -103
- package/vendor/abseil-cpp/absl/time/clock.cc +18 -16
- package/vendor/abseil-cpp/absl/time/clock_test.cc +2 -2
- package/vendor/abseil-cpp/absl/time/duration_benchmark.cc +144 -0
- package/vendor/abseil-cpp/absl/time/duration_test.cc +26 -29
- package/vendor/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +7 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +4 -2
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +6 -103
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +186 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ensenada +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santa_Isabel +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tijuana +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/BajaNorte +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/iso3166.tab +9 -9
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +12 -12
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +47 -47
- package/vendor/abseil-cpp/absl/time/time.cc +4 -4
- package/vendor/abseil-cpp/absl/time/time.h +10 -10
- package/vendor/abseil-cpp/absl/time/time_test.cc +1 -0
- package/vendor/abseil-cpp/absl/types/compare.h +62 -61
- package/vendor/abseil-cpp/absl/types/compare_test.cc +3 -3
- package/vendor/abseil-cpp/absl/types/internal/span.h +1 -0
- package/vendor/abseil-cpp/absl/types/optional.h +2 -2
- package/vendor/abseil-cpp/absl/types/span.h +10 -2
- package/vendor/abseil-cpp/absl/utility/utility.h +13 -0
- package/vendor/abseil-cpp/ci/absl_alternate_options.h +0 -1
- package/vendor/abseil-cpp/ci/cmake_common.sh +1 -1
- package/vendor/abseil-cpp/ci/cmake_install_test.sh +6 -0
- package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +1 -0
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +2 -0
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +1 -0
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +1 -0
- package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +1 -0
- package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +1 -0
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +1 -0
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +6 -0
- package/vendor/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +6 -0
- package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +3 -2
- package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +5 -0
- package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +1 -0
- package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +1 -0
- package/vendor/abseil-cpp/ci/windows_msvc_cmake.bat +6 -1
- package/vendor/abseil-cpp/absl/base/internal/identity.h +0 -39
- package/vendor/abseil-cpp/absl/strings/string_view.cc +0 -257
- package/vendor/abseil-cpp/absl/strings/string_view_benchmark.cc +0 -380
|
@@ -73,17 +73,11 @@ constexpr int128::int128(unsigned long long v) : v_{v} {}
|
|
|
73
73
|
|
|
74
74
|
constexpr int128::int128(unsigned __int128 v) : v_{static_cast<__int128>(v)} {}
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
v_ = static_cast<__int128>(v);
|
|
78
|
-
}
|
|
76
|
+
constexpr int128::int128(float v) : v_{static_cast<__int128>(v)} {}
|
|
79
77
|
|
|
80
|
-
|
|
81
|
-
v_ = static_cast<__int128>(v);
|
|
82
|
-
}
|
|
78
|
+
constexpr int128::int128(double v) : v_{static_cast<__int128>(v)} {}
|
|
83
79
|
|
|
84
|
-
|
|
85
|
-
v_ = static_cast<__int128>(v);
|
|
86
|
-
}
|
|
80
|
+
constexpr int128::int128(long double v) : v_{static_cast<__int128>(v)} {}
|
|
87
81
|
|
|
88
82
|
constexpr int128::int128(uint128 v) : v_{static_cast<__int128>(v)} {}
|
|
89
83
|
|
|
@@ -119,9 +113,7 @@ constexpr int128::operator unsigned short() const { // NOLINT(runtime/int)
|
|
|
119
113
|
return static_cast<unsigned short>(v_); // NOLINT(runtime/int)
|
|
120
114
|
}
|
|
121
115
|
|
|
122
|
-
constexpr int128::operator int() const {
|
|
123
|
-
return static_cast<int>(v_);
|
|
124
|
-
}
|
|
116
|
+
constexpr int128::operator int() const { return static_cast<int>(v_); }
|
|
125
117
|
|
|
126
118
|
constexpr int128::operator unsigned int() const {
|
|
127
119
|
return static_cast<unsigned int>(v_);
|
|
@@ -153,17 +145,17 @@ constexpr int128::operator unsigned __int128() const {
|
|
|
153
145
|
// conversions. In that case, we do the conversion with a similar implementation
|
|
154
146
|
// to the conversion operators in int128_no_intrinsic.inc.
|
|
155
147
|
#if defined(__clang__) && !defined(__ppc64__)
|
|
156
|
-
|
|
148
|
+
constexpr int128::operator float() const { return static_cast<float>(v_); }
|
|
157
149
|
|
|
158
|
-
|
|
150
|
+
constexpr int128::operator double() const { return static_cast<double>(v_); }
|
|
159
151
|
|
|
160
|
-
|
|
152
|
+
constexpr int128::operator long double() const {
|
|
161
153
|
return static_cast<long double>(v_);
|
|
162
154
|
}
|
|
163
155
|
|
|
164
|
-
#else
|
|
156
|
+
#else // Clang on PowerPC
|
|
165
157
|
|
|
166
|
-
|
|
158
|
+
constexpr int128::operator float() const {
|
|
167
159
|
// We must convert the absolute value and then negate as needed, because
|
|
168
160
|
// floating point types are typically sign-magnitude. Otherwise, the
|
|
169
161
|
// difference between the high and low 64 bits when interpreted as two's
|
|
@@ -177,7 +169,7 @@ inline int128::operator float() const {
|
|
|
177
169
|
static_cast<float>(Int128High64(*this)) * pow_2_64;
|
|
178
170
|
}
|
|
179
171
|
|
|
180
|
-
|
|
172
|
+
constexpr int128::operator double() const {
|
|
181
173
|
// See comment in int128::operator float() above.
|
|
182
174
|
constexpr double pow_2_64 = 18446744073709551616.0;
|
|
183
175
|
return v_ < 0 && *this != Int128Min()
|
|
@@ -186,7 +178,7 @@ inline int128::operator double() const {
|
|
|
186
178
|
static_cast<double>(Int128High64(*this)) * pow_2_64;
|
|
187
179
|
}
|
|
188
180
|
|
|
189
|
-
|
|
181
|
+
constexpr int128::operator long double() const {
|
|
190
182
|
// See comment in int128::operator float() above.
|
|
191
183
|
constexpr long double pow_2_64 = 18446744073709551616.0L;
|
|
192
184
|
return v_ < 0 && *this != Int128Min()
|
|
@@ -254,17 +246,19 @@ constexpr int128 operator-(int128 lhs, int128 rhs) {
|
|
|
254
246
|
return static_cast<__int128>(lhs) - static_cast<__int128>(rhs);
|
|
255
247
|
}
|
|
256
248
|
|
|
257
|
-
|
|
249
|
+
#if defined(ABSL_HAVE_INTRINSIC_INT128)
|
|
250
|
+
constexpr int128 operator*(int128 lhs, int128 rhs) {
|
|
258
251
|
return static_cast<__int128>(lhs) * static_cast<__int128>(rhs);
|
|
259
252
|
}
|
|
260
253
|
|
|
261
|
-
|
|
254
|
+
constexpr int128 operator/(int128 lhs, int128 rhs) {
|
|
262
255
|
return static_cast<__int128>(lhs) / static_cast<__int128>(rhs);
|
|
263
256
|
}
|
|
264
257
|
|
|
265
|
-
|
|
258
|
+
constexpr int128 operator%(int128 lhs, int128 rhs) {
|
|
266
259
|
return static_cast<__int128>(lhs) % static_cast<__int128>(rhs);
|
|
267
260
|
}
|
|
261
|
+
#endif // ABSL_HAVE_INTRINSIC_INT128
|
|
268
262
|
|
|
269
263
|
inline int128 int128::operator++(int) {
|
|
270
264
|
int128 tmp(*this);
|
|
@@ -132,7 +132,7 @@ constexpr int128::operator unsigned long long() const { // NOLINT(runtime/int)
|
|
|
132
132
|
return static_cast<unsigned long long>(lo_); // NOLINT(runtime/int)
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
|
|
135
|
+
constexpr int128::operator float() const {
|
|
136
136
|
// We must convert the absolute value and then negate as needed, because
|
|
137
137
|
// floating point types are typically sign-magnitude. Otherwise, the
|
|
138
138
|
// difference between the high and low 64 bits when interpreted as two's
|
|
@@ -142,20 +142,18 @@ inline int128::operator float() const {
|
|
|
142
142
|
constexpr float pow_2_64 = 18446744073709551616.0f;
|
|
143
143
|
return hi_ < 0 && *this != Int128Min()
|
|
144
144
|
? -static_cast<float>(-*this)
|
|
145
|
-
: static_cast<float>(lo_) +
|
|
146
|
-
static_cast<float>(hi_) * pow_2_64;
|
|
145
|
+
: static_cast<float>(lo_) + static_cast<float>(hi_) * pow_2_64;
|
|
147
146
|
}
|
|
148
147
|
|
|
149
|
-
|
|
148
|
+
constexpr int128::operator double() const {
|
|
150
149
|
// See comment in int128::operator float() above.
|
|
151
150
|
constexpr double pow_2_64 = 18446744073709551616.0;
|
|
152
151
|
return hi_ < 0 && *this != Int128Min()
|
|
153
152
|
? -static_cast<double>(-*this)
|
|
154
|
-
: static_cast<double>(lo_) +
|
|
155
|
-
static_cast<double>(hi_) * pow_2_64;
|
|
153
|
+
: static_cast<double>(lo_) + static_cast<double>(hi_) * pow_2_64;
|
|
156
154
|
}
|
|
157
155
|
|
|
158
|
-
|
|
156
|
+
constexpr int128::operator long double() const {
|
|
159
157
|
// See comment in int128::operator float() above.
|
|
160
158
|
constexpr long double pow_2_64 = 18446744073709551616.0L;
|
|
161
159
|
return hi_ < 0 && *this != Int128Min()
|
|
@@ -350,7 +350,7 @@ TEST(Uint128, Multiply) {
|
|
|
350
350
|
c = a * b;
|
|
351
351
|
EXPECT_EQ(absl::MakeUint128(0x530EDA741C71D4C3, 0xBF25975319080000), c);
|
|
352
352
|
EXPECT_EQ(0, c - b * a);
|
|
353
|
-
EXPECT_EQ(a*a - b*b, (a+b) * (a-b));
|
|
353
|
+
EXPECT_EQ(a * a - b * b, (a + b) * (a - b));
|
|
354
354
|
|
|
355
355
|
// Verified with dc.
|
|
356
356
|
a = absl::MakeUint128(0x0123456789abcdef, 0xfedcba9876543210);
|
|
@@ -358,7 +358,7 @@ TEST(Uint128, Multiply) {
|
|
|
358
358
|
c = a * b;
|
|
359
359
|
EXPECT_EQ(absl::MakeUint128(0x97a87f4f261ba3f2, 0x342d0bbf48948200), c);
|
|
360
360
|
EXPECT_EQ(0, c - b * a);
|
|
361
|
-
EXPECT_EQ(a*a - b*b, (a+b) * (a-b));
|
|
361
|
+
EXPECT_EQ(a * a - b * b, (a + b) * (a - b));
|
|
362
362
|
}
|
|
363
363
|
|
|
364
364
|
TEST(Uint128, AliasTests) {
|
|
@@ -462,6 +462,26 @@ TEST(Uint128, ConstexprTest) {
|
|
|
462
462
|
EXPECT_EQ(zero, absl::uint128(0));
|
|
463
463
|
EXPECT_EQ(one, absl::uint128(1));
|
|
464
464
|
EXPECT_EQ(minus_two, absl::MakeUint128(-1, -2));
|
|
465
|
+
|
|
466
|
+
constexpr double f = static_cast<float>(absl::uint128(123));
|
|
467
|
+
EXPECT_EQ(f, 123.0f);
|
|
468
|
+
|
|
469
|
+
constexpr double d = static_cast<double>(absl::uint128(123));
|
|
470
|
+
EXPECT_EQ(d, 123.0);
|
|
471
|
+
|
|
472
|
+
constexpr long double ld = static_cast<long double>(absl::uint128(123));
|
|
473
|
+
EXPECT_EQ(ld, 123.0);
|
|
474
|
+
|
|
475
|
+
#ifdef ABSL_HAVE_INTRINSIC_INT128
|
|
476
|
+
constexpr absl::uint128 division = absl::uint128(10) / absl::uint128(2);
|
|
477
|
+
EXPECT_EQ(division, absl::uint128(5));
|
|
478
|
+
|
|
479
|
+
constexpr absl::uint128 modulus = absl::int128(10) % absl::int128(3);
|
|
480
|
+
EXPECT_EQ(modulus, absl::uint128(1));
|
|
481
|
+
|
|
482
|
+
constexpr absl::uint128 multiplication = absl::uint128(10) * absl::uint128(3);
|
|
483
|
+
EXPECT_EQ(multiplication, absl::uint128(30));
|
|
484
|
+
#endif // ABSL_HAVE_INTRINSIC_INT128
|
|
465
485
|
}
|
|
466
486
|
|
|
467
487
|
TEST(Uint128, NumericLimitsTest) {
|
|
@@ -522,7 +542,6 @@ TEST(Uint128, Hash) {
|
|
|
522
542
|
EXPECT_TRUE(absl::VerifyTypeImplementsAbslHashCorrectly(values));
|
|
523
543
|
}
|
|
524
544
|
|
|
525
|
-
|
|
526
545
|
TEST(Int128Uint128, ConversionTest) {
|
|
527
546
|
absl::int128 nonnegative_signed_values[] = {
|
|
528
547
|
0,
|
|
@@ -540,8 +559,7 @@ TEST(Int128Uint128, ConversionTest) {
|
|
|
540
559
|
}
|
|
541
560
|
|
|
542
561
|
absl::int128 negative_values[] = {
|
|
543
|
-
-1, -0x1234567890abcdef,
|
|
544
|
-
absl::MakeInt128(-0x5544332211ffeedd, 0),
|
|
562
|
+
-1, -0x1234567890abcdef, absl::MakeInt128(-0x5544332211ffeedd, 0),
|
|
545
563
|
-absl::MakeInt128(0x76543210fedcba98, 0xabcdef0123456789)};
|
|
546
564
|
for (absl::int128 value : negative_values) {
|
|
547
565
|
EXPECT_EQ(absl::uint128(-value), -absl::uint128(value));
|
|
@@ -769,6 +787,35 @@ TEST(Int128, ConstexprTest) {
|
|
|
769
787
|
EXPECT_EQ(minus_two, absl::MakeInt128(-1, -2));
|
|
770
788
|
EXPECT_GT(max, one);
|
|
771
789
|
EXPECT_LT(min, minus_two);
|
|
790
|
+
|
|
791
|
+
constexpr double f = static_cast<float>(absl::int128(123));
|
|
792
|
+
EXPECT_EQ(f, 123.0f);
|
|
793
|
+
|
|
794
|
+
constexpr double d = static_cast<double>(absl::int128(123));
|
|
795
|
+
EXPECT_EQ(d, 123.0);
|
|
796
|
+
|
|
797
|
+
constexpr long double ld = static_cast<long double>(absl::int128(123));
|
|
798
|
+
EXPECT_EQ(ld, 123.0);
|
|
799
|
+
|
|
800
|
+
#ifdef ABSL_HAVE_INTRINSIC_INT128
|
|
801
|
+
constexpr absl::int128 f_int128(static_cast<float>(123.0));
|
|
802
|
+
EXPECT_EQ(f_int128, absl::int128(123));
|
|
803
|
+
|
|
804
|
+
constexpr absl::int128 d_int128(static_cast<double>(123.0));
|
|
805
|
+
EXPECT_EQ(d_int128, absl::int128(123));
|
|
806
|
+
|
|
807
|
+
constexpr absl::int128 ld_int128(static_cast<long double>(123.0));
|
|
808
|
+
EXPECT_EQ(ld_int128, absl::int128(123));
|
|
809
|
+
|
|
810
|
+
constexpr absl::int128 division = absl::int128(10) / absl::int128(2);
|
|
811
|
+
EXPECT_EQ(division, absl::int128(5));
|
|
812
|
+
|
|
813
|
+
constexpr absl::int128 modulus = absl::int128(10) % absl::int128(3);
|
|
814
|
+
EXPECT_EQ(modulus, absl::int128(1));
|
|
815
|
+
|
|
816
|
+
constexpr absl::int128 multiplication = absl::int128(10) * absl::int128(3);
|
|
817
|
+
EXPECT_EQ(multiplication, absl::int128(30));
|
|
818
|
+
#endif // ABSL_HAVE_INTRINSIC_INT128
|
|
772
819
|
}
|
|
773
820
|
|
|
774
821
|
TEST(Int128, ComparisonTest) {
|
|
@@ -42,6 +42,8 @@ StatusOr<std::string> MarshalHashtableProfile() {
|
|
|
42
42
|
|
|
43
43
|
namespace debugging_internal {
|
|
44
44
|
|
|
45
|
+
static void DroppedHashtableSample() {}
|
|
46
|
+
|
|
45
47
|
StatusOr<std::string> MarshalHashtableProfile(
|
|
46
48
|
container_internal::HashtablezSampler& sampler, Time now) {
|
|
47
49
|
static constexpr absl::string_view kDropFrames =
|
|
@@ -58,6 +60,7 @@ StatusOr<std::string> MarshalHashtableProfile(
|
|
|
58
60
|
const auto capacity_id = builder.InternString("capacity");
|
|
59
61
|
const auto size_id = builder.InternString("size");
|
|
60
62
|
const auto num_erases_id = builder.InternString("num_erases");
|
|
63
|
+
const auto num_insert_hits_id = builder.InternString("num_insert_hits");
|
|
61
64
|
const auto num_rehashes_id = builder.InternString("num_rehashes");
|
|
62
65
|
const auto max_probe_length_id = builder.InternString("max_probe_length");
|
|
63
66
|
const auto total_probe_length_id = builder.InternString("total_probe_length");
|
|
@@ -67,7 +70,6 @@ StatusOr<std::string> MarshalHashtableProfile(
|
|
|
67
70
|
const auto key_size_id = builder.InternString("key_size");
|
|
68
71
|
const auto value_size_id = builder.InternString("value_size");
|
|
69
72
|
const auto soo_capacity_id = builder.InternString("soo_capacity");
|
|
70
|
-
const auto checksum_id = builder.InternString("checksum");
|
|
71
73
|
const auto table_age_id = builder.InternString("table_age");
|
|
72
74
|
const auto max_reserve_id = builder.InternString("max_reserve");
|
|
73
75
|
|
|
@@ -87,6 +89,9 @@ StatusOr<std::string> MarshalHashtableProfile(
|
|
|
87
89
|
add_label(size_id, info.size.load(std::memory_order_relaxed));
|
|
88
90
|
add_label(num_erases_id,
|
|
89
91
|
info.num_erases.load(std::memory_order_relaxed));
|
|
92
|
+
// TODO(b/436909492): Revisit whether this value is useful.
|
|
93
|
+
add_label(num_insert_hits_id,
|
|
94
|
+
info.num_insert_hits.load(std::memory_order_relaxed));
|
|
90
95
|
add_label(num_rehashes_id,
|
|
91
96
|
info.num_rehashes.load(std::memory_order_relaxed));
|
|
92
97
|
add_label(max_probe_length_id,
|
|
@@ -100,8 +105,6 @@ StatusOr<std::string> MarshalHashtableProfile(
|
|
|
100
105
|
add_label(key_size_id, info.key_size);
|
|
101
106
|
add_label(value_size_id, info.value_size);
|
|
102
107
|
add_label(soo_capacity_id, info.soo_capacity);
|
|
103
|
-
add_label(checksum_id,
|
|
104
|
-
info.hashes_bitwise_xor.load(std::memory_order_relaxed));
|
|
105
108
|
add_label(
|
|
106
109
|
table_age_id,
|
|
107
110
|
static_cast<uint64_t>(ToInt64Microseconds(now - info.create_time)));
|
|
@@ -111,10 +114,18 @@ StatusOr<std::string> MarshalHashtableProfile(
|
|
|
111
114
|
MakeSpan(info.stack, info.depth), labels);
|
|
112
115
|
});
|
|
113
116
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
117
|
+
if (dropped > 0) {
|
|
118
|
+
// If we dropped samples, we don't have information for them, including
|
|
119
|
+
// their sizes. The non-zero weight allows it to be noticed in the profile
|
|
120
|
+
// and examined more closely.
|
|
121
|
+
//
|
|
122
|
+
// We compensate for the fixup done by AddSample by adjusting the address
|
|
123
|
+
// here.
|
|
124
|
+
const void* kFakeStack[] = {
|
|
125
|
+
absl::bit_cast<void*>(
|
|
126
|
+
reinterpret_cast<uintptr_t>(&DroppedHashtableSample)+1)};
|
|
127
|
+
builder.AddSample(static_cast<int64_t>(dropped), kFakeStack, {});
|
|
128
|
+
}
|
|
118
129
|
builder.AddCurrentMappings();
|
|
119
130
|
return std::move(builder).Emit();
|
|
120
131
|
}
|
|
@@ -16,12 +16,10 @@
|
|
|
16
16
|
|
|
17
17
|
#include "gtest/gtest.h"
|
|
18
18
|
|
|
19
|
-
#if defined(
|
|
20
|
-
//
|
|
19
|
+
#if defined(__EMSCRIPTEN__)
|
|
20
|
+
// Emscripten has a less accurate implementation of std::log2 than most of
|
|
21
21
|
// the other platforms. For some values which should have integral results,
|
|
22
|
-
// sometimes
|
|
23
|
-
//
|
|
24
|
-
// The MUSL libc used by emscripten also has a similar bug.
|
|
22
|
+
// sometimes Emscripten returns slightly larger values.
|
|
25
23
|
#define ABSL_RANDOM_INACCURATE_LOG2
|
|
26
24
|
#endif
|
|
27
25
|
|
|
@@ -35,7 +35,6 @@
|
|
|
35
35
|
// Darwin (macOS and iOS) __APPLE__
|
|
36
36
|
// Akaros (http://akaros.org) __ros__
|
|
37
37
|
// Windows _WIN32
|
|
38
|
-
// NaCL __native_client__
|
|
39
38
|
// AsmJS __asmjs__
|
|
40
39
|
// WebAssembly __wasm__
|
|
41
40
|
// Fuchsia __Fuchsia__
|
|
@@ -125,12 +124,6 @@
|
|
|
125
124
|
|
|
126
125
|
#endif
|
|
127
126
|
|
|
128
|
-
// NaCl does not allow AES.
|
|
129
|
-
#if defined(__native_client__)
|
|
130
|
-
#undef ABSL_HAVE_ACCELERATED_AES
|
|
131
|
-
#define ABSL_HAVE_ACCELERATED_AES 0
|
|
132
|
-
#endif
|
|
133
|
-
|
|
134
127
|
// ABSL_RANDOM_INTERNAL_AES_DISPATCH indicates whether the currently active
|
|
135
128
|
// platform has, or should use run-time dispatch for selecting the
|
|
136
129
|
// accelerated Randen implementation.
|
|
@@ -162,10 +155,4 @@
|
|
|
162
155
|
#define ABSL_RANDOM_INTERNAL_AES_DISPATCH 1
|
|
163
156
|
#endif
|
|
164
157
|
|
|
165
|
-
// NaCl does not allow dispatch.
|
|
166
|
-
#if defined(__native_client__)
|
|
167
|
-
#undef ABSL_RANDOM_INTERNAL_AES_DISPATCH
|
|
168
|
-
#define ABSL_RANDOM_INTERNAL_AES_DISPATCH 0
|
|
169
|
-
#endif
|
|
170
|
-
|
|
171
158
|
#endif // ABSL_RANDOM_INTERNAL_PLATFORM_H_
|
|
@@ -632,7 +632,6 @@ TEST(RandenTest, IsFastOrSlow) {
|
|
|
632
632
|
//
|
|
633
633
|
// linux, optimized ~5ns
|
|
634
634
|
// ppc, optimized ~7ns
|
|
635
|
-
// nacl (slow), ~1100ns
|
|
636
635
|
//
|
|
637
636
|
// `kCount` is chosen below so that, in debug builds and without hardware
|
|
638
637
|
// acceleration, the test (assuming ~1us per call) should finish in ~0.1s
|
|
@@ -41,12 +41,7 @@
|
|
|
41
41
|
#include "absl/types/optional.h"
|
|
42
42
|
#include "absl/types/span.h"
|
|
43
43
|
|
|
44
|
-
#if defined(
|
|
45
|
-
|
|
46
|
-
#include <nacl/nacl_random.h>
|
|
47
|
-
#define ABSL_RANDOM_USE_NACL_SECURE_RANDOM 1
|
|
48
|
-
|
|
49
|
-
#elif defined(_WIN32)
|
|
44
|
+
#if defined(_WIN32)
|
|
50
45
|
|
|
51
46
|
#include <windows.h>
|
|
52
47
|
#define ABSL_RANDOM_USE_BCRYPT 1
|
|
@@ -109,27 +104,6 @@ bool ReadSeedMaterialFromOSEntropyImpl(absl::Span<uint32_t> values) {
|
|
|
109
104
|
return BCRYPT_SUCCESS(ret);
|
|
110
105
|
}
|
|
111
106
|
|
|
112
|
-
#elif defined(ABSL_RANDOM_USE_NACL_SECURE_RANDOM)
|
|
113
|
-
|
|
114
|
-
// On NaCL use nacl_secure_random to acquire bytes.
|
|
115
|
-
bool ReadSeedMaterialFromOSEntropyImpl(absl::Span<uint32_t> values) {
|
|
116
|
-
auto buffer = reinterpret_cast<uint8_t*>(values.data());
|
|
117
|
-
size_t buffer_size = sizeof(uint32_t) * values.size();
|
|
118
|
-
|
|
119
|
-
uint8_t* output_ptr = buffer;
|
|
120
|
-
while (buffer_size > 0) {
|
|
121
|
-
size_t nread = 0;
|
|
122
|
-
const int error = nacl_secure_random(output_ptr, buffer_size, &nread);
|
|
123
|
-
if (error != 0 || nread > buffer_size) {
|
|
124
|
-
ABSL_RAW_LOG(ERROR, "Failed to read secure_random seed data: %d", error);
|
|
125
|
-
return false;
|
|
126
|
-
}
|
|
127
|
-
output_ptr += nread;
|
|
128
|
-
buffer_size -= nread;
|
|
129
|
-
}
|
|
130
|
-
return true;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
107
|
#elif defined(__Fuchsia__)
|
|
134
108
|
|
|
135
109
|
bool ReadSeedMaterialFromOSEntropyImpl(absl::Span<uint32_t> values) {
|
|
@@ -192,3 +192,20 @@ cc_test(
|
|
|
192
192
|
"@googletest//:gtest_main",
|
|
193
193
|
],
|
|
194
194
|
)
|
|
195
|
+
|
|
196
|
+
cc_test(
|
|
197
|
+
name = "status_matchers_with_unqualified_macros_test",
|
|
198
|
+
size = "small",
|
|
199
|
+
srcs = ["status_matchers_test.cc"],
|
|
200
|
+
copts = ABSL_TEST_COPTS,
|
|
201
|
+
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
202
|
+
local_defines = ["ABSL_DEFINE_UNQUALIFIED_STATUS_TESTING_MACROS"],
|
|
203
|
+
deps = [
|
|
204
|
+
":status",
|
|
205
|
+
":status_matchers",
|
|
206
|
+
":statusor",
|
|
207
|
+
"//absl/strings",
|
|
208
|
+
"@googletest//:gtest",
|
|
209
|
+
"@googletest//:gtest_main",
|
|
210
|
+
],
|
|
211
|
+
)
|
|
@@ -141,3 +141,19 @@ absl_cc_test(
|
|
|
141
141
|
absl::status_matchers
|
|
142
142
|
GTest::gmock_main
|
|
143
143
|
)
|
|
144
|
+
|
|
145
|
+
absl_cc_test(
|
|
146
|
+
NAME
|
|
147
|
+
status_matchers_with_unqualified_macros_test
|
|
148
|
+
SRCS
|
|
149
|
+
"status_matchers_test.cc"
|
|
150
|
+
COPTS
|
|
151
|
+
${ABSL_TEST_COPTS}
|
|
152
|
+
DEFINES
|
|
153
|
+
"ABSL_DEFINE_UNQUALIFIED_STATUS_TESTING_MACROS"
|
|
154
|
+
DEPS
|
|
155
|
+
absl::status
|
|
156
|
+
absl::statusor
|
|
157
|
+
absl::status_matchers
|
|
158
|
+
GTest::gmock_main
|
|
159
|
+
)
|
|
@@ -38,9 +38,11 @@ ABSL_NAMESPACE_BEGIN
|
|
|
38
38
|
// TODO(b/176172494): ABSL_MUST_USE_RESULT should expand to the more strict
|
|
39
39
|
// [[nodiscard]]. For now, just use [[nodiscard]] directly when it is available.
|
|
40
40
|
#if ABSL_HAVE_CPP_ATTRIBUTE(nodiscard)
|
|
41
|
-
class [[nodiscard]] ABSL_ATTRIBUTE_TRIVIAL_ABI
|
|
41
|
+
class [[nodiscard]] ABSL_ATTRIBUTE_TRIVIAL_ABI
|
|
42
|
+
Status;
|
|
42
43
|
#else
|
|
43
|
-
class ABSL_MUST_USE_RESULT ABSL_ATTRIBUTE_TRIVIAL_ABI
|
|
44
|
+
class ABSL_MUST_USE_RESULT ABSL_ATTRIBUTE_TRIVIAL_ABI
|
|
45
|
+
Status;
|
|
44
46
|
#endif
|
|
45
47
|
ABSL_NAMESPACE_END
|
|
46
48
|
} // namespace absl
|
|
@@ -69,8 +69,8 @@ class IsOkAndHoldsMatcherImpl
|
|
|
69
69
|
bool MatchAndExplain(
|
|
70
70
|
StatusOrType actual_value,
|
|
71
71
|
::testing::MatchResultListener* result_listener) const override {
|
|
72
|
-
if (!
|
|
73
|
-
*result_listener << "which has status " <<
|
|
72
|
+
if (!actual_value.ok()) {
|
|
73
|
+
*result_listener << "which has status " << actual_value.status();
|
|
74
74
|
return false;
|
|
75
75
|
}
|
|
76
76
|
|
|
@@ -47,6 +47,10 @@ static_assert(
|
|
|
47
47
|
"absl::Status assumes it can use the bottom 2 bits of a StatusRep*.");
|
|
48
48
|
|
|
49
49
|
std::string StatusCodeToString(StatusCode code) {
|
|
50
|
+
return std::string(absl::StatusCodeToStringView(code));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
absl::string_view StatusCodeToStringView(StatusCode code) {
|
|
50
54
|
switch (code) {
|
|
51
55
|
case StatusCode::kOk:
|
|
52
56
|
return "OK";
|
|
@@ -284,6 +284,11 @@ enum class StatusCode : int {
|
|
|
284
284
|
// Returns the name for the status code, or "" if it is an unknown value.
|
|
285
285
|
std::string StatusCodeToString(StatusCode code);
|
|
286
286
|
|
|
287
|
+
// StatusCodeToStringView()
|
|
288
|
+
//
|
|
289
|
+
// Same as StatusCodeToString(), but returns a string_view.
|
|
290
|
+
absl::string_view StatusCodeToStringView(StatusCode code);
|
|
291
|
+
|
|
287
292
|
// operator<<
|
|
288
293
|
//
|
|
289
294
|
// Streams StatusCodeToString(code) to `os`.
|
|
@@ -20,6 +20,24 @@
|
|
|
20
20
|
//
|
|
21
21
|
// Defines the following utilities:
|
|
22
22
|
//
|
|
23
|
+
// =================
|
|
24
|
+
// ABSL_EXPECT_OK(s)
|
|
25
|
+
//
|
|
26
|
+
// ABSL_ASSERT_OK(s)
|
|
27
|
+
// =================
|
|
28
|
+
// Convenience macros for `EXPECT_THAT(s, IsOk())`, where `s` is either
|
|
29
|
+
// a `Status` or a `StatusOr<T>`.
|
|
30
|
+
//
|
|
31
|
+
// There are no EXPECT_NOT_OK/ASSERT_NOT_OK macros since they would not
|
|
32
|
+
// provide much value (when they fail, they would just print the OK status
|
|
33
|
+
// which conveys no more information than `EXPECT_FALSE(s.ok())`. You can
|
|
34
|
+
// of course use `EXPECT_THAT(s, Not(IsOk()))` if you prefer _THAT style.
|
|
35
|
+
//
|
|
36
|
+
// If you want to check for particular errors, better alternatives are:
|
|
37
|
+
// EXPECT_THAT(s, StatusIs(expected_error));
|
|
38
|
+
// EXPECT_THAT(s, StatusIs(_, _, HasSubstr("expected error")));
|
|
39
|
+
//
|
|
40
|
+
//
|
|
23
41
|
// ===============
|
|
24
42
|
// `IsOkAndHolds(m)`
|
|
25
43
|
// ===============
|
|
@@ -76,6 +94,13 @@
|
|
|
76
94
|
namespace absl_testing {
|
|
77
95
|
ABSL_NAMESPACE_BEGIN
|
|
78
96
|
|
|
97
|
+
// Macros for testing the results of functions that return absl::Status or
|
|
98
|
+
// absl::StatusOr<T> (for any type T).
|
|
99
|
+
#define ABSL_EXPECT_OK(expression) \
|
|
100
|
+
EXPECT_THAT(expression, ::absl_testing::IsOk())
|
|
101
|
+
#define ABSL_ASSERT_OK(expression) \
|
|
102
|
+
ASSERT_THAT(expression, ::absl_testing::IsOk())
|
|
103
|
+
|
|
79
104
|
// Returns a gMock matcher that matches a StatusOr<> whose status is
|
|
80
105
|
// OK and whose value matches the inner matcher.
|
|
81
106
|
template <typename InnerMatcherT>
|
|
@@ -112,6 +137,29 @@ inline status_internal::IsOkMatcher IsOk() {
|
|
|
112
137
|
return status_internal::IsOkMatcher();
|
|
113
138
|
}
|
|
114
139
|
|
|
140
|
+
// By defining ABSL_DEFINE_UNQUALIFIED_STATUS_TESTING_MACROS, this library also
|
|
141
|
+
// provides unqualified versions of macros
|
|
142
|
+
//
|
|
143
|
+
// Unqualified macro names are likely to collide with those other projects, and
|
|
144
|
+
// so are not recommended. Further, this is true of any transitive dependency
|
|
145
|
+
// of Abseil; it is impossible to be confident no downstream library will not
|
|
146
|
+
// also define these macros itself nor depend on a different library that also
|
|
147
|
+
// defines them.
|
|
148
|
+
//
|
|
149
|
+
// To enable this, define `ABSL_DEFINE_UNQUALIFIED_STATUS_TESTING_MACROS`
|
|
150
|
+
// preferably at the command line, e.g.
|
|
151
|
+
// `-DABSL_DEFINE_UNQUALIFIED_STATUS_TESTING_MACROS` or
|
|
152
|
+
// `local_defines = ["ABSL_DEFINE_UNQUALIFIED_STATUS_TESTING_MACROS"]` if using
|
|
153
|
+
// Bazel.
|
|
154
|
+
//
|
|
155
|
+
// These are turned on by default inside Google's internal codebase where their
|
|
156
|
+
// use is historically ubiquitous. Other OSS Google projects should use the
|
|
157
|
+
// qualified versions or the `EXPECT_THAT(..., IsOk())` form.
|
|
158
|
+
#ifdef ABSL_DEFINE_UNQUALIFIED_STATUS_TESTING_MACROS
|
|
159
|
+
#define EXPECT_OK(expression) ABSL_EXPECT_OK(expression)
|
|
160
|
+
#define ASSERT_OK(expression) ABSL_ASSERT_OK(expression)
|
|
161
|
+
#endif // ABSL_DEFINE_UNQUALIFIED_STATUS_TESTING_MACROS
|
|
162
|
+
|
|
115
163
|
ABSL_NAMESPACE_END
|
|
116
164
|
} // namespace absl_testing
|
|
117
165
|
|
|
@@ -39,6 +39,33 @@ using ::testing::MatchesRegex;
|
|
|
39
39
|
using ::testing::Not;
|
|
40
40
|
using ::testing::Ref;
|
|
41
41
|
|
|
42
|
+
TEST(StatusMatcherTest, AbslExpectAssertOk) {
|
|
43
|
+
ABSL_EXPECT_OK(absl::OkStatus());
|
|
44
|
+
ABSL_ASSERT_OK(absl::OkStatus());
|
|
45
|
+
EXPECT_NONFATAL_FAILURE(ABSL_EXPECT_OK(absl::InternalError("Smigla error")),
|
|
46
|
+
"Smigla error");
|
|
47
|
+
EXPECT_FATAL_FAILURE(ABSL_ASSERT_OK(absl::InternalError("Smigla error")),
|
|
48
|
+
"Smigla error");
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
TEST(StatusMatcherTest, ExpectAssertOk) {
|
|
52
|
+
#ifdef ABSL_DEFINE_UNQUALIFIED_STATUS_TESTING_MACROS
|
|
53
|
+
EXPECT_OK(absl::OkStatus());
|
|
54
|
+
ASSERT_OK(absl::OkStatus());
|
|
55
|
+
EXPECT_NONFATAL_FAILURE(EXPECT_OK(absl::InternalError("Smigla error")),
|
|
56
|
+
"Smigla error");
|
|
57
|
+
EXPECT_FATAL_FAILURE(ASSERT_OK(absl::InternalError("Smigla error")),
|
|
58
|
+
"Smigla error");
|
|
59
|
+
#else
|
|
60
|
+
#ifdef EXPECT_OK
|
|
61
|
+
static_assert(false, "EXPECT_OK defined despite being turned off.");
|
|
62
|
+
#endif // EXPECT_OK
|
|
63
|
+
#ifdef ASSERT_OK
|
|
64
|
+
static_assert(false, "ASSERT_OK defined despite being turned off.");
|
|
65
|
+
#endif // ASSERT_OK
|
|
66
|
+
#endif // ABSL_DEFINE_UNQUALIFIED_STATUS_TESTING_MACROS
|
|
67
|
+
}
|
|
68
|
+
|
|
42
69
|
TEST(StatusMatcherTest, StatusIsOk) { EXPECT_THAT(absl::OkStatus(), IsOk()); }
|
|
43
70
|
|
|
44
71
|
TEST(StatusMatcherTest, StatusOrIsOk) {
|
|
@@ -39,6 +39,7 @@ TEST(StatusCode, InsertionOperator) {
|
|
|
39
39
|
std::ostringstream oss;
|
|
40
40
|
oss << code;
|
|
41
41
|
EXPECT_EQ(oss.str(), absl::StatusCodeToString(code));
|
|
42
|
+
EXPECT_EQ(oss.str(), absl::StatusCodeToStringView(code));
|
|
42
43
|
}
|
|
43
44
|
|
|
44
45
|
// This structure holds the details for testing a single error code,
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
#include <utility>
|
|
46
46
|
|
|
47
47
|
#include "absl/base/attributes.h"
|
|
48
|
-
#include "absl/base/nullability.h"
|
|
49
48
|
#include "absl/base/call_once.h"
|
|
49
|
+
#include "absl/base/nullability.h"
|
|
50
50
|
#include "absl/meta/type_traits.h"
|
|
51
51
|
#include "absl/status/internal/statusor_internal.h"
|
|
52
52
|
#include "absl/status/status.h"
|