re2 1.22.2 → 1.23.0
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 +60 -4
- package/binding.gyp +5 -1
- package/lib/addon.cc +4 -0
- package/lib/new.cc +1 -246
- package/lib/pattern.cc +252 -0
- package/lib/pattern.h +10 -0
- package/lib/set.cc +777 -0
- package/lib/wrapped_re2_set.h +42 -0
- package/package.json +21 -9
- package/re2.d.ts +46 -9
- package/vendor/abseil-cpp/CMake/AbseilDll.cmake +14 -24
- package/vendor/abseil-cpp/CMake/AbseilHelpers.cmake +3 -3
- package/vendor/abseil-cpp/CMake/README.md +2 -2
- package/vendor/abseil-cpp/CMakeLists.txt +3 -3
- package/vendor/abseil-cpp/MODULE.bazel +6 -9
- package/vendor/abseil-cpp/README.md +6 -8
- package/vendor/abseil-cpp/absl/abseil.podspec.gen.py +6 -4
- package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +3 -0
- package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +1 -0
- package/vendor/abseil-cpp/absl/algorithm/container.h +2 -19
- package/vendor/abseil-cpp/absl/algorithm/container_test.cc +4 -11
- package/vendor/abseil-cpp/absl/base/BUILD.bazel +60 -45
- package/vendor/abseil-cpp/absl/base/CMakeLists.txt +57 -38
- package/vendor/abseil-cpp/absl/base/attributes.h +76 -7
- package/vendor/abseil-cpp/absl/base/attributes_test.cc +43 -0
- package/vendor/abseil-cpp/absl/base/call_once.h +11 -12
- package/vendor/abseil-cpp/absl/base/config.h +22 -129
- package/vendor/abseil-cpp/absl/base/exception_safety_testing_test.cc +0 -4
- package/vendor/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
- package/vendor/abseil-cpp/absl/base/{internal/fast_type_id_test.cc → fast_type_id_test.cc} +34 -30
- package/vendor/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
- package/vendor/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
- package/vendor/abseil-cpp/absl/base/internal/endian.h +34 -38
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits_test.cc +85 -0
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits_test_helper.h +97 -0
- package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc +39 -9
- package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.h +6 -0
- package/vendor/abseil-cpp/absl/base/internal/poison.cc +7 -6
- package/vendor/abseil-cpp/absl/base/internal/spinlock.cc +15 -28
- package/vendor/abseil-cpp/absl/base/internal/spinlock.h +65 -35
- package/vendor/abseil-cpp/absl/base/internal/spinlock_benchmark.cc +2 -2
- package/vendor/abseil-cpp/absl/base/internal/sysinfo_test.cc +2 -2
- package/vendor/abseil-cpp/absl/base/internal/thread_identity_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/base/internal/thread_identity_test.cc +4 -4
- package/vendor/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +4 -0
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
- package/vendor/abseil-cpp/absl/base/no_destructor.h +11 -32
- package/vendor/abseil-cpp/absl/base/no_destructor_test.cc +0 -4
- package/vendor/abseil-cpp/absl/base/nullability.h +83 -72
- package/vendor/abseil-cpp/absl/base/nullability_test.cc +25 -64
- package/vendor/abseil-cpp/absl/base/options.h +3 -80
- package/vendor/abseil-cpp/absl/base/policy_checks.h +7 -7
- package/vendor/abseil-cpp/absl/base/raw_logging_test.cc +15 -0
- package/vendor/abseil-cpp/absl/base/spinlock_test_common.cc +50 -30
- package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +2 -1
- package/vendor/abseil-cpp/absl/cleanup/CMakeLists.txt +0 -1
- package/vendor/abseil-cpp/absl/cleanup/cleanup.h +1 -3
- package/vendor/abseil-cpp/absl/cleanup/cleanup_test.cc +0 -2
- package/vendor/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
- package/vendor/abseil-cpp/absl/container/BUILD.bazel +74 -1
- package/vendor/abseil-cpp/absl/container/CMakeLists.txt +73 -0
- package/vendor/abseil-cpp/absl/container/btree_benchmark.cc +51 -9
- package/vendor/abseil-cpp/absl/container/btree_map.h +8 -6
- package/vendor/abseil-cpp/absl/container/btree_set.h +8 -6
- package/vendor/abseil-cpp/absl/container/btree_test.cc +89 -4
- package/vendor/abseil-cpp/absl/container/fixed_array.h +7 -15
- package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +17 -0
- package/vendor/abseil-cpp/absl/container/flat_hash_map.h +20 -15
- package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +8 -14
- package/vendor/abseil-cpp/absl/container/flat_hash_set.h +19 -14
- package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +46 -0
- package/vendor/abseil-cpp/absl/container/inlined_vector.h +7 -6
- package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +28 -0
- package/vendor/abseil-cpp/absl/container/internal/btree.h +132 -29
- package/vendor/abseil-cpp/absl/container/internal/btree_container.h +175 -71
- package/vendor/abseil-cpp/absl/container/internal/common.h +43 -0
- package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +28 -24
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +4 -17
- package/vendor/abseil-cpp/absl/container/internal/container_memory.h +80 -17
- package/vendor/abseil-cpp/absl/container/internal/container_memory_test.cc +32 -2
- package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +13 -8
- package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults_test.cc +1 -52
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.cc +9 -31
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +23 -32
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing.h +5 -1
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +11 -23
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits_test.cc +14 -9
- package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +516 -0
- package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes_test.cc +259 -0
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +23 -6
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +32 -13
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +8 -8
- package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
- package/vendor/abseil-cpp/absl/container/internal/layout.h +26 -42
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +1506 -213
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +1095 -1658
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +3 -2
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +31 -29
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +51 -20
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +79 -0
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl_test.cc +66 -0
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +707 -363
- package/vendor/abseil-cpp/absl/container/node_hash_map.h +20 -15
- package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +0 -3
- package/vendor/abseil-cpp/absl/container/node_hash_set.h +18 -13
- package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +3 -8
- package/vendor/abseil-cpp/absl/copts/AbseilConfigureCopts.cmake +1 -1
- package/vendor/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +9 -20
- package/vendor/abseil-cpp/absl/copts/GENERATED_copts.bzl +9 -20
- package/vendor/abseil-cpp/absl/copts/copts.py +24 -15
- package/vendor/abseil-cpp/absl/crc/BUILD.bazel +3 -0
- package/vendor/abseil-cpp/absl/crc/crc32c.cc +0 -4
- package/vendor/abseil-cpp/absl/crc/crc32c.h +7 -5
- package/vendor/abseil-cpp/absl/crc/crc32c_benchmark.cc +17 -4
- package/vendor/abseil-cpp/absl/crc/crc32c_test.cc +30 -0
- package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +17 -0
- package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.h +7 -1
- package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
- package/vendor/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +5 -0
- package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +136 -165
- package/vendor/abseil-cpp/absl/crc/internal/gen_crc32c_consts.py +90 -0
- package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +7 -0
- package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +4 -0
- package/vendor/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
- package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
- package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
- package/vendor/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +11 -10
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_config.h +6 -5
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -14
- package/vendor/abseil-cpp/absl/debugging/internal/vdso_support.cc +4 -0
- package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +161 -27
- package/vendor/abseil-cpp/absl/debugging/stacktrace.h +73 -5
- package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +435 -1
- package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +55 -63
- package/vendor/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
- package/vendor/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
- package/vendor/abseil-cpp/absl/flags/BUILD.bazel +6 -0
- package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +3 -0
- package/vendor/abseil-cpp/absl/flags/commandlineflag.h +2 -2
- package/vendor/abseil-cpp/absl/flags/flag.h +4 -3
- package/vendor/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
- package/vendor/abseil-cpp/absl/flags/internal/flag.cc +14 -13
- package/vendor/abseil-cpp/absl/flags/internal/flag.h +34 -34
- package/vendor/abseil-cpp/absl/flags/internal/program_name.cc +2 -2
- package/vendor/abseil-cpp/absl/flags/internal/registry.h +4 -3
- package/vendor/abseil-cpp/absl/flags/internal/usage.cc +2 -2
- package/vendor/abseil-cpp/absl/flags/parse.cc +10 -6
- package/vendor/abseil-cpp/absl/flags/reflection.cc +9 -7
- package/vendor/abseil-cpp/absl/flags/usage.cc +2 -2
- package/vendor/abseil-cpp/absl/flags/usage_config.cc +2 -2
- package/vendor/abseil-cpp/absl/functional/BUILD.bazel +7 -6
- package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +2 -4
- package/vendor/abseil-cpp/absl/functional/any_invocable.h +15 -15
- package/vendor/abseil-cpp/absl/functional/any_invocable_test.cc +10 -42
- package/vendor/abseil-cpp/absl/functional/function_ref.h +2 -9
- package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +10 -0
- package/vendor/abseil-cpp/absl/functional/function_type_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +112 -227
- package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
- package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
- package/vendor/abseil-cpp/absl/functional/overload.h +0 -20
- package/vendor/abseil-cpp/absl/functional/overload_test.cc +1 -7
- package/vendor/abseil-cpp/absl/hash/BUILD.bazel +16 -9
- package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +6 -9
- package/vendor/abseil-cpp/absl/hash/hash.h +18 -0
- package/vendor/abseil-cpp/absl/hash/hash_benchmark.cc +3 -0
- package/vendor/abseil-cpp/absl/hash/hash_instantiated_test.cc +1 -1
- package/vendor/abseil-cpp/absl/hash/hash_test.cc +131 -30
- package/vendor/abseil-cpp/absl/hash/hash_testing.h +20 -20
- package/vendor/abseil-cpp/absl/hash/internal/hash.cc +129 -17
- package/vendor/abseil-cpp/absl/hash/internal/hash.h +326 -362
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +54 -151
- package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +14 -2
- package/vendor/abseil-cpp/absl/{strings/cord_buffer.cc → hash/internal/weakly_mixed_integer.h} +14 -6
- package/vendor/abseil-cpp/absl/log/BUILD.bazel +4 -0
- package/vendor/abseil-cpp/absl/log/CMakeLists.txt +7 -0
- package/vendor/abseil-cpp/absl/log/check.h +2 -1
- package/vendor/abseil-cpp/absl/log/check_test_impl.inc +308 -14
- package/vendor/abseil-cpp/absl/log/die_if_null.h +2 -2
- package/vendor/abseil-cpp/absl/log/flags_test.cc +7 -0
- package/vendor/abseil-cpp/absl/log/globals.h +4 -5
- package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +13 -9
- package/vendor/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
- package/vendor/abseil-cpp/absl/log/internal/check_op.cc +24 -22
- package/vendor/abseil-cpp/absl/log/internal/check_op.h +149 -94
- package/vendor/abseil-cpp/absl/log/internal/conditions.cc +5 -3
- package/vendor/abseil-cpp/absl/log/internal/conditions.h +7 -2
- package/vendor/abseil-cpp/absl/log/internal/fnmatch_test.cc +1 -0
- package/vendor/abseil-cpp/absl/log/internal/log_message.cc +85 -43
- package/vendor/abseil-cpp/absl/log/internal/log_message.h +84 -59
- package/vendor/abseil-cpp/absl/log/internal/log_sink_set.cc +4 -4
- package/vendor/abseil-cpp/absl/log/internal/nullstream.h +1 -0
- package/vendor/abseil-cpp/absl/log/internal/proto.cc +3 -2
- package/vendor/abseil-cpp/absl/log/internal/proto.h +3 -3
- package/vendor/abseil-cpp/absl/log/internal/strip.h +4 -12
- package/vendor/abseil-cpp/absl/log/internal/structured.h +3 -7
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +9 -9
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
- package/vendor/abseil-cpp/absl/log/internal/voidify.h +10 -4
- package/vendor/abseil-cpp/absl/log/log.h +48 -35
- package/vendor/abseil-cpp/absl/log/log_basic_test_impl.inc +45 -0
- package/vendor/abseil-cpp/absl/log/log_entry.cc +241 -19
- package/vendor/abseil-cpp/absl/log/log_entry.h +2 -0
- package/vendor/abseil-cpp/absl/log/log_format_test.cc +412 -6
- package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +20 -0
- package/vendor/abseil-cpp/absl/log/log_sink_registry.h +2 -2
- package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +15 -2
- package/vendor/abseil-cpp/absl/log/scoped_mock_log.h +7 -1
- package/vendor/abseil-cpp/absl/log/structured_test.cc +1 -0
- package/vendor/abseil-cpp/absl/memory/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/meta/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/meta/type_traits.h +46 -175
- package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +1 -478
- package/vendor/abseil-cpp/absl/numeric/BUILD.bazel +7 -3
- package/vendor/abseil-cpp/absl/numeric/CMakeLists.txt +2 -0
- package/vendor/abseil-cpp/absl/numeric/bits.h +68 -2
- package/vendor/abseil-cpp/absl/numeric/bits_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/numeric/bits_test.cc +83 -0
- package/vendor/abseil-cpp/absl/numeric/int128.cc +0 -52
- package/vendor/abseil-cpp/absl/numeric/int128_benchmark.cc +14 -15
- package/vendor/abseil-cpp/absl/numeric/int128_test.cc +13 -8
- package/vendor/abseil-cpp/absl/numeric/internal/bits.h +39 -7
- package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +47 -0
- package/vendor/abseil-cpp/absl/profiling/CMakeLists.txt +38 -0
- package/vendor/abseil-cpp/absl/profiling/hashtable.cc +124 -0
- package/vendor/abseil-cpp/absl/profiling/hashtable.h +40 -0
- package/vendor/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +462 -0
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.h +138 -0
- package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder.h +9 -9
- package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +7 -3
- package/vendor/abseil-cpp/absl/random/BUILD.bazel +6 -4
- package/vendor/abseil-cpp/absl/random/CMakeLists.txt +20 -19
- package/vendor/abseil-cpp/absl/random/benchmarks.cc +16 -23
- package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
- package/vendor/abseil-cpp/absl/random/bit_gen_ref_test.cc +7 -2
- package/vendor/abseil-cpp/absl/random/distributions.h +6 -8
- package/vendor/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +19 -20
- package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
- package/vendor/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +24 -92
- package/vendor/abseil-cpp/absl/{base/inline_variable_test_b.cc → random/internal/entropy_pool.h} +14 -6
- package/vendor/abseil-cpp/absl/random/internal/entropy_pool_test.cc +119 -0
- package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +6 -7
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +39 -0
- package/vendor/abseil-cpp/absl/random/internal/randen_benchmarks.cc +8 -6
- package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
- package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
- package/vendor/abseil-cpp/absl/random/internal/seed_material.h +5 -5
- package/vendor/abseil-cpp/absl/random/internal/seed_material_test.cc +3 -0
- package/vendor/abseil-cpp/absl/random/mock_distributions_test.cc +5 -4
- package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +8 -10
- package/vendor/abseil-cpp/absl/random/random.h +88 -53
- package/vendor/abseil-cpp/absl/random/seed_sequences.cc +6 -2
- package/vendor/abseil-cpp/absl/status/BUILD.bazel +26 -0
- package/vendor/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
- package/vendor/abseil-cpp/absl/status/internal/status_internal.h +3 -4
- package/vendor/abseil-cpp/absl/status/internal/status_matchers.cc +4 -3
- package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +194 -32
- package/vendor/abseil-cpp/absl/status/status.cc +4 -8
- package/vendor/abseil-cpp/absl/status/status.h +8 -8
- package/vendor/abseil-cpp/absl/{base/inline_variable_test_a.cc → status/status_benchmark.cc} +20 -10
- package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +65 -0
- package/vendor/abseil-cpp/absl/status/status_payload_printer.h +2 -2
- package/vendor/abseil-cpp/absl/status/statusor.cc +2 -2
- package/vendor/abseil-cpp/absl/status/statusor.h +49 -102
- package/vendor/abseil-cpp/absl/status/statusor_benchmark.cc +480 -0
- package/vendor/abseil-cpp/absl/status/statusor_test.cc +323 -1
- package/vendor/abseil-cpp/absl/strings/BUILD.bazel +70 -34
- package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +6 -3
- package/vendor/abseil-cpp/absl/strings/ascii.cc +9 -9
- package/vendor/abseil-cpp/absl/strings/ascii.h +18 -18
- package/vendor/abseil-cpp/absl/strings/ascii_benchmark.cc +5 -8
- package/vendor/abseil-cpp/absl/strings/charconv.cc +21 -22
- package/vendor/abseil-cpp/absl/strings/charconv.h +5 -5
- package/vendor/abseil-cpp/absl/strings/charconv_benchmark.cc +1 -2
- package/vendor/abseil-cpp/absl/strings/charset_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/cord.cc +54 -58
- package/vendor/abseil-cpp/absl/strings/cord.h +94 -84
- package/vendor/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
- package/vendor/abseil-cpp/absl/strings/cord_analysis.h +3 -3
- package/vendor/abseil-cpp/absl/strings/cord_test.cc +23 -0
- package/vendor/abseil-cpp/absl/strings/cordz_test_helpers.h +4 -5
- package/vendor/abseil-cpp/absl/strings/escaping.cc +130 -149
- package/vendor/abseil-cpp/absl/strings/escaping.h +9 -10
- package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/escaping_test.cc +19 -9
- package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint_test.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/internal/cord_internal.h +6 -10
- package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
- package/vendor/abseil-cpp/absl/strings/internal/cordz_handle.cc +6 -6
- package/vendor/abseil-cpp/absl/strings/internal/cordz_info.cc +5 -9
- package/vendor/abseil-cpp/absl/strings/internal/cordz_info.h +2 -4
- package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance_benchmark.cc +56 -0
- package/vendor/abseil-cpp/absl/strings/internal/memutil_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/internal/ostringstream_benchmark.cc +1 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
- package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
- package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +1 -6
- package/vendor/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
- package/vendor/abseil-cpp/absl/strings/internal/str_format/extension_test.cc +3 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
- package/vendor/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
- package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +7 -2
- package/vendor/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
- package/vendor/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
- package/vendor/abseil-cpp/absl/strings/internal/utf8.h +15 -1
- package/vendor/abseil-cpp/absl/strings/internal/utf8_test.cc +196 -3
- package/vendor/abseil-cpp/absl/strings/numbers.cc +53 -32
- package/vendor/abseil-cpp/absl/strings/numbers.h +87 -58
- package/vendor/abseil-cpp/absl/strings/numbers_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/numbers_test.cc +634 -120
- package/vendor/abseil-cpp/absl/strings/str_cat.cc +6 -7
- package/vendor/abseil-cpp/absl/strings/str_cat.h +32 -32
- package/vendor/abseil-cpp/absl/strings/str_cat_benchmark.cc +25 -1
- package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +2 -7
- package/vendor/abseil-cpp/absl/strings/str_format.h +18 -18
- package/vendor/abseil-cpp/absl/strings/str_format_test.cc +8 -14
- package/vendor/abseil-cpp/absl/strings/str_join_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/str_replace.cc +3 -3
- package/vendor/abseil-cpp/absl/strings/str_replace.h +6 -6
- package/vendor/abseil-cpp/absl/strings/str_replace_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/str_split.h +2 -2
- package/vendor/abseil-cpp/absl/strings/str_split_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/string_view.cc +4 -9
- package/vendor/abseil-cpp/absl/strings/string_view.h +38 -39
- package/vendor/abseil-cpp/absl/strings/string_view_benchmark.cc +4 -6
- package/vendor/abseil-cpp/absl/strings/string_view_test.cc +2 -50
- package/vendor/abseil-cpp/absl/strings/strip.h +4 -4
- package/vendor/abseil-cpp/absl/strings/substitute.cc +5 -4
- package/vendor/abseil-cpp/absl/strings/substitute.h +66 -64
- package/vendor/abseil-cpp/absl/strings/substitute_benchmark.cc +158 -0
- package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +6 -1
- package/vendor/abseil-cpp/absl/synchronization/CMakeLists.txt +2 -1
- package/vendor/abseil-cpp/absl/synchronization/barrier.cc +1 -1
- package/vendor/abseil-cpp/absl/synchronization/barrier_test.cc +3 -3
- package/vendor/abseil-cpp/absl/synchronization/blocking_counter.cc +2 -2
- package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +3 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles.cc +30 -33
- package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_test.cc +6 -5
- package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
- package/vendor/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/thread_pool.h +3 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/waiter_test.cc +12 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/lifetime_test.cc +4 -4
- package/vendor/abseil-cpp/absl/synchronization/mutex.cc +27 -29
- package/vendor/abseil-cpp/absl/synchronization/mutex.h +205 -126
- package/vendor/abseil-cpp/absl/synchronization/mutex_benchmark.cc +13 -31
- package/vendor/abseil-cpp/absl/synchronization/mutex_test.cc +183 -169
- package/vendor/abseil-cpp/absl/synchronization/notification.cc +5 -5
- package/vendor/abseil-cpp/absl/synchronization/notification.h +1 -1
- package/vendor/abseil-cpp/absl/synchronization/notification_test.cc +3 -3
- package/vendor/abseil-cpp/absl/time/BUILD.bazel +9 -1
- package/vendor/abseil-cpp/absl/time/CMakeLists.txt +3 -1
- package/vendor/abseil-cpp/absl/time/civil_time.cc +1 -0
- package/vendor/abseil-cpp/absl/time/civil_time_test.cc +134 -0
- package/vendor/abseil-cpp/absl/time/clock.cc +11 -14
- package/vendor/abseil-cpp/absl/time/duration.cc +14 -9
- package/vendor/abseil-cpp/absl/time/duration_test.cc +6 -7
- package/vendor/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +14 -3
- package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +12 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/cctz_benchmark.cc +4 -490
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.cc +515 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.h +33 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +41 -4
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +22 -23
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup_test.cc +1 -488
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Coyhaique +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tehran +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Iran +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +2 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +1 -1
- package/vendor/abseil-cpp/absl/time/time.h +24 -18
- package/vendor/abseil-cpp/absl/time/time_test.cc +26 -0
- package/vendor/abseil-cpp/absl/types/BUILD.bazel +11 -164
- package/vendor/abseil-cpp/absl/types/CMakeLists.txt +23 -167
- package/vendor/abseil-cpp/absl/types/any.h +9 -484
- package/vendor/abseil-cpp/absl/types/optional.h +7 -747
- package/vendor/abseil-cpp/absl/types/span.h +46 -19
- package/vendor/abseil-cpp/absl/types/span_test.cc +27 -0
- package/vendor/abseil-cpp/absl/types/variant.h +5 -784
- package/vendor/abseil-cpp/absl/types/variant_test.cc +43 -2597
- package/vendor/abseil-cpp/absl/utility/BUILD.bazel +1 -41
- package/vendor/abseil-cpp/absl/utility/CMakeLists.txt +0 -40
- package/vendor/abseil-cpp/absl/utility/utility.h +10 -185
- package/vendor/abseil-cpp/ci/absl_alternate_options.h +2 -3
- package/vendor/abseil-cpp/ci/cmake_common.sh +2 -2
- package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +12 -13
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +24 -21
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +12 -12
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +23 -22
- package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +20 -19
- package/vendor/abseil-cpp/ci/linux_docker_containers.sh +4 -4
- package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +17 -17
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +10 -10
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +1 -1
- package/vendor/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +1 -1
- package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +9 -10
- package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +9 -1
- package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +14 -6
- package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +14 -6
- package/vendor/abseil-cpp/ci/windows_msvc_cmake.bat +1 -1
- package/vendor/re2/.bazelrc +4 -4
- package/vendor/re2/.bcr/metadata.template.json +16 -0
- package/vendor/re2/.bcr/presubmit.yml +57 -0
- package/vendor/re2/.bcr/source.template.json +5 -0
- package/vendor/re2/.github/bazel.sh +1 -7
- package/vendor/re2/.github/workflows/ci-bazel.yml +5 -5
- package/vendor/re2/.github/workflows/ci-cmake.yml +4 -4
- package/vendor/re2/.github/workflows/ci.yml +5 -6
- package/vendor/re2/.github/workflows/pages.yml +3 -3
- package/vendor/re2/.github/workflows/python.yml +29 -24
- package/vendor/re2/.github/workflows/release-bazel.yml +42 -0
- package/vendor/re2/.github/workflows/release.yml +15 -4
- package/vendor/re2/BUILD.bazel +25 -0
- package/vendor/re2/CMakeLists.txt +100 -85
- package/vendor/re2/CONTRIBUTING.md +0 -1
- package/vendor/re2/MODULE.bazel +10 -10
- package/vendor/re2/Makefile +1 -1
- package/vendor/re2/README.md +259 -0
- package/vendor/re2/python/BUILD.bazel +8 -0
- package/vendor/re2/python/re2.py +1 -1
- package/vendor/re2/python/re2_test.py +6 -0
- package/vendor/re2/python/setup.py +3 -3
- package/vendor/re2/re2/bitmap256.cc +3 -4
- package/vendor/re2/re2/bitstate.cc +15 -10
- package/vendor/re2/re2/dfa.cc +1 -2
- package/vendor/re2/re2/parse.cc +3 -4
- package/vendor/re2/re2/prog.cc +1 -2
- package/vendor/re2/re2/prog.h +1 -0
- package/vendor/re2/re2/re2.cc +5 -0
- package/vendor/re2/re2/re2.h +9 -9
- package/vendor/re2/re2/set.cc +6 -0
- package/vendor/re2/re2/set.h +5 -0
- package/vendor/re2/re2/testing/re2_arg_test.cc +3 -3
- package/vendor/re2/re2/testing/re2_test.cc +8 -0
- package/vendor/re2/re2/testing/set_test.cc +5 -0
- package/vendor/re2/re2/walker-inl.h +1 -1
- package/vendor/abseil-cpp/WORKSPACE +0 -76
- package/vendor/abseil-cpp/WORKSPACE.bzlmod +0 -19
- package/vendor/abseil-cpp/absl/base/inline_variable_test.cc +0 -64
- package/vendor/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
- package/vendor/abseil-cpp/absl/base/internal/inline_variable_testing.h +0 -46
- package/vendor/abseil-cpp/absl/base/internal/invoke.h +0 -241
- package/vendor/abseil-cpp/absl/base/internal/nullability_impl.h +0 -69
- package/vendor/abseil-cpp/absl/base/invoke_test.cc +0 -331
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -148
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -54
- package/vendor/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
- package/vendor/abseil-cpp/absl/random/internal/pool_urbg_test.cc +0 -182
- package/vendor/abseil-cpp/absl/types/any_exception_safety_test.cc +0 -173
- package/vendor/abseil-cpp/absl/types/any_test.cc +0 -778
- package/vendor/abseil-cpp/absl/types/bad_any_cast.cc +0 -64
- package/vendor/abseil-cpp/absl/types/bad_any_cast.h +0 -75
- package/vendor/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
- package/vendor/abseil-cpp/absl/types/bad_optional_access.h +0 -78
- package/vendor/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
- package/vendor/abseil-cpp/absl/types/bad_variant_access.h +0 -82
- package/vendor/abseil-cpp/absl/types/internal/optional.h +0 -352
- package/vendor/abseil-cpp/absl/types/internal/variant.h +0 -1622
- package/vendor/abseil-cpp/absl/types/optional_exception_safety_test.cc +0 -292
- package/vendor/abseil-cpp/absl/types/optional_test.cc +0 -1615
- package/vendor/abseil-cpp/absl/types/variant_benchmark.cc +0 -222
- package/vendor/abseil-cpp/absl/types/variant_exception_safety_test.cc +0 -532
- package/vendor/abseil-cpp/absl/utility/internal/if_constexpr.h +0 -70
- package/vendor/abseil-cpp/absl/utility/internal/if_constexpr_test.cc +0 -79
- package/vendor/abseil-cpp/absl/utility/utility_test.cc +0 -239
- package/vendor/re2/.github/workflows/pr.yml +0 -34
- package/vendor/re2/README +0 -47
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
// See the License for the specific language governing permissions and
|
|
14
14
|
// limitations under the License.
|
|
15
15
|
|
|
16
|
+
// SKIP_ABSL_INLINE_NAMESPACE_CHECK
|
|
17
|
+
|
|
16
18
|
#ifndef ABSL_LOG_CHECK_TEST_IMPL_H_
|
|
17
19
|
#define ABSL_LOG_CHECK_TEST_IMPL_H_
|
|
18
20
|
|
|
@@ -22,6 +24,8 @@
|
|
|
22
24
|
#error ABSL_TEST_CHECK must be defined for these tests to work.
|
|
23
25
|
#endif
|
|
24
26
|
|
|
27
|
+
#include <cstdint>
|
|
28
|
+
#include <limits>
|
|
25
29
|
#include <ostream>
|
|
26
30
|
#include <string>
|
|
27
31
|
|
|
@@ -39,6 +43,8 @@
|
|
|
39
43
|
namespace absl_log_internal {
|
|
40
44
|
|
|
41
45
|
using ::testing::AllOf;
|
|
46
|
+
using ::testing::AnyOf;
|
|
47
|
+
using ::testing::ContainsRegex;
|
|
42
48
|
using ::testing::HasSubstr;
|
|
43
49
|
using ::testing::Not;
|
|
44
50
|
|
|
@@ -64,7 +70,6 @@ TEST(CHECKTest, TestLogicExpressions) {
|
|
|
64
70
|
ABSL_TEST_CHECK(i < 0 || i > 3);
|
|
65
71
|
}
|
|
66
72
|
|
|
67
|
-
#if ABSL_INTERNAL_CPLUSPLUS_LANG >= 201703L
|
|
68
73
|
ABSL_CONST_INIT const auto global_var_check = [](int i) {
|
|
69
74
|
ABSL_TEST_CHECK(i > 0); // NOLINT
|
|
70
75
|
return i + 1;
|
|
@@ -74,7 +79,6 @@ ABSL_CONST_INIT const auto global_var = [](int i) {
|
|
|
74
79
|
ABSL_TEST_CHECK_GE(i, 0); // NOLINT
|
|
75
80
|
return i + 1;
|
|
76
81
|
}(global_var_check);
|
|
77
|
-
#endif // ABSL_INTERNAL_CPLUSPLUS_LANG
|
|
78
82
|
|
|
79
83
|
TEST(CHECKTest, TestPlacementsInCompoundStatements) {
|
|
80
84
|
// check placement inside if/else clauses
|
|
@@ -89,13 +93,11 @@ TEST(CHECKTest, TestPlacementsInCompoundStatements) {
|
|
|
89
93
|
case 0:
|
|
90
94
|
ABSL_TEST_CHECK(true); // NOLINT
|
|
91
95
|
|
|
92
|
-
#if ABSL_INTERNAL_CPLUSPLUS_LANG >= 201703L
|
|
93
96
|
constexpr auto var = [](int i) {
|
|
94
97
|
ABSL_TEST_CHECK(i > 0); // NOLINT
|
|
95
98
|
return i + 1;
|
|
96
99
|
}(global_var);
|
|
97
100
|
(void)var;
|
|
98
|
-
#endif // ABSL_INTERNAL_CPLUSPLUS_LANG
|
|
99
101
|
}
|
|
100
102
|
|
|
101
103
|
TEST(CHECKTest, TestBoolConvertible) {
|
|
@@ -241,6 +243,18 @@ TEST(CHECKTest, TestBinaryChecksWithPrimitives) {
|
|
|
241
243
|
ABSL_TEST_CHECK_LT(1, 2);
|
|
242
244
|
}
|
|
243
245
|
|
|
246
|
+
TEST(CHECKTest, TestBinaryChecksWithStringComparison) {
|
|
247
|
+
const std::string a = "a";
|
|
248
|
+
ABSL_TEST_CHECK_EQ(a, "a");
|
|
249
|
+
ABSL_TEST_CHECK_NE(a, "b");
|
|
250
|
+
ABSL_TEST_CHECK_GE(a, a);
|
|
251
|
+
ABSL_TEST_CHECK_GE("b", a);
|
|
252
|
+
ABSL_TEST_CHECK_LE(a, "a");
|
|
253
|
+
ABSL_TEST_CHECK_LE(a, "b");
|
|
254
|
+
ABSL_TEST_CHECK_GT("b", a);
|
|
255
|
+
ABSL_TEST_CHECK_LT(a, "b");
|
|
256
|
+
}
|
|
257
|
+
|
|
244
258
|
// For testing using CHECK*() on anonymous enums.
|
|
245
259
|
enum { CASE_A, CASE_B };
|
|
246
260
|
|
|
@@ -265,6 +279,26 @@ TEST(CHECKTest, TestBinaryChecksWithNullptr) {
|
|
|
265
279
|
ABSL_TEST_CHECK_NE(nullptr, p_not_null);
|
|
266
280
|
}
|
|
267
281
|
|
|
282
|
+
struct ExampleTypeThatHasNoStreamOperator {
|
|
283
|
+
bool x;
|
|
284
|
+
|
|
285
|
+
bool operator==(const ExampleTypeThatHasNoStreamOperator& other) const {
|
|
286
|
+
return x == other.x;
|
|
287
|
+
}
|
|
288
|
+
bool operator==(const bool& other) const { return x == other; }
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
TEST(CHECKDeathTest, TestBinaryChecksWithUnprintable) {
|
|
292
|
+
ExampleTypeThatHasNoStreamOperator a{true};
|
|
293
|
+
ExampleTypeThatHasNoStreamOperator b{false};
|
|
294
|
+
ABSL_TEST_CHECK_EQ(a, a);
|
|
295
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_EQ(a, b),
|
|
296
|
+
"Check failed: a == b \\(UNPRINTABLE vs. UNPRINTABLE\\)");
|
|
297
|
+
ABSL_TEST_CHECK_EQ(a, true);
|
|
298
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_EQ(a, false),
|
|
299
|
+
"Check failed: a == false \\(UNPRINTABLE vs. 0\\)");
|
|
300
|
+
}
|
|
301
|
+
|
|
268
302
|
#if GTEST_HAS_DEATH_TEST
|
|
269
303
|
|
|
270
304
|
// Test logging of various char-typed values by failing CHECK*().
|
|
@@ -354,7 +388,6 @@ TEST(CHECKTest, TestComparisonPlacementsInCompoundStatements) {
|
|
|
354
388
|
case 0:
|
|
355
389
|
ABSL_TEST_CHECK_STRCASEEQ("A", "a");
|
|
356
390
|
|
|
357
|
-
#if ABSL_INTERNAL_CPLUSPLUS_LANG >= 201703L
|
|
358
391
|
constexpr auto var = [](int i) {
|
|
359
392
|
ABSL_TEST_CHECK_GT(i, 0);
|
|
360
393
|
return i + 1;
|
|
@@ -374,7 +407,6 @@ TEST(CHECKTest, TestComparisonPlacementsInCompoundStatements) {
|
|
|
374
407
|
int var4 = (({ ABSL_TEST_CHECK_STREQ("a", "a"); }), global_var < 10) ? 1 : 0;
|
|
375
408
|
(void)var4;
|
|
376
409
|
#endif // __GNUC__
|
|
377
|
-
#endif // ABSL_INTERNAL_CPLUSPLUS_LANG
|
|
378
410
|
}
|
|
379
411
|
|
|
380
412
|
TEST(CHECKTest, TestDCHECK) {
|
|
@@ -441,7 +473,6 @@ TEST(CHECKTest, TestQCHECKPlacementsInCompoundStatements) {
|
|
|
441
473
|
case 0:
|
|
442
474
|
ABSL_TEST_QCHECK(true);
|
|
443
475
|
|
|
444
|
-
#if ABSL_INTERNAL_CPLUSPLUS_LANG >= 201703L
|
|
445
476
|
constexpr auto var = [](int i) {
|
|
446
477
|
ABSL_TEST_QCHECK(i > 0); // NOLINT
|
|
447
478
|
return i + 1;
|
|
@@ -452,7 +483,6 @@ TEST(CHECKTest, TestQCHECKPlacementsInCompoundStatements) {
|
|
|
452
483
|
int var2 = (({ ABSL_TEST_CHECK_LE(1, 2); }), global_var < 10) ? 1 : 0;
|
|
453
484
|
(void)var2;
|
|
454
485
|
#endif // __GNUC__
|
|
455
|
-
#endif // ABSL_INTERNAL_CPLUSPLUS_LANG
|
|
456
486
|
}
|
|
457
487
|
|
|
458
488
|
class ComparableType {
|
|
@@ -642,14 +672,11 @@ void AbslStringify(Sink& sink, const PointerIsStringifiable* var) {
|
|
|
642
672
|
TEST(CHECKDeathTest, TestPointerPrintedAsNumberDespiteAbslStringify) {
|
|
643
673
|
const auto* p = reinterpret_cast<const PointerIsStringifiable*>(0x1234);
|
|
644
674
|
|
|
645
|
-
#ifdef _MSC_VER
|
|
646
675
|
EXPECT_DEATH(
|
|
647
676
|
ABSL_TEST_CHECK_EQ(p, nullptr),
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
HasSubstr("Check failed: p == nullptr (0x1234 vs. (null))"));
|
|
652
|
-
#endif // _MSC_VER
|
|
677
|
+
AnyOf(
|
|
678
|
+
HasSubstr("Check failed: p == nullptr (0000000000001234 vs. (null))"),
|
|
679
|
+
HasSubstr("Check failed: p == nullptr (0x1234 vs. (null))")));
|
|
653
680
|
}
|
|
654
681
|
|
|
655
682
|
// An uncopyable object with operator<<.
|
|
@@ -679,6 +706,273 @@ TEST(CHECKDeathTest, TestUncopyable) {
|
|
|
679
706
|
HasSubstr("Check failed: v1 == v2 (Uncopyable{1} vs. Uncopyable{2})"));
|
|
680
707
|
}
|
|
681
708
|
|
|
709
|
+
enum class ScopedEnum { kValue1 = 1, kValue2 = 2 };
|
|
710
|
+
|
|
711
|
+
TEST(CHECKTest, TestScopedEnumComparisonChecks) {
|
|
712
|
+
ABSL_TEST_CHECK_EQ(ScopedEnum::kValue1, ScopedEnum::kValue1);
|
|
713
|
+
ABSL_TEST_CHECK_NE(ScopedEnum::kValue1, ScopedEnum::kValue2);
|
|
714
|
+
ABSL_TEST_CHECK_LT(ScopedEnum::kValue1, ScopedEnum::kValue2);
|
|
715
|
+
ABSL_TEST_CHECK_LE(ScopedEnum::kValue1, ScopedEnum::kValue2);
|
|
716
|
+
ABSL_TEST_CHECK_GT(ScopedEnum::kValue2, ScopedEnum::kValue1);
|
|
717
|
+
ABSL_TEST_CHECK_GE(ScopedEnum::kValue2, ScopedEnum::kValue2);
|
|
718
|
+
ABSL_TEST_DCHECK_EQ(ScopedEnum::kValue1, ScopedEnum::kValue1);
|
|
719
|
+
ABSL_TEST_DCHECK_NE(ScopedEnum::kValue1, ScopedEnum::kValue2);
|
|
720
|
+
ABSL_TEST_DCHECK_LT(ScopedEnum::kValue1, ScopedEnum::kValue2);
|
|
721
|
+
ABSL_TEST_DCHECK_LE(ScopedEnum::kValue1, ScopedEnum::kValue2);
|
|
722
|
+
ABSL_TEST_DCHECK_GT(ScopedEnum::kValue2, ScopedEnum::kValue1);
|
|
723
|
+
ABSL_TEST_DCHECK_GE(ScopedEnum::kValue2, ScopedEnum::kValue2);
|
|
724
|
+
|
|
725
|
+
// Check that overloads work correctly with references as well.
|
|
726
|
+
const ScopedEnum x = ScopedEnum::kValue1;
|
|
727
|
+
const ScopedEnum& x_ref = x;
|
|
728
|
+
ABSL_TEST_CHECK_EQ(x, x_ref);
|
|
729
|
+
ABSL_TEST_CHECK_EQ(x_ref, x_ref);
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
#if GTEST_HAS_DEATH_TEST
|
|
733
|
+
TEST(CHECKDeathTest, TestScopedEnumCheckFailureMessagePrintsIntegerValues) {
|
|
734
|
+
const auto e1 = ScopedEnum::kValue1;
|
|
735
|
+
const auto e2 = ScopedEnum::kValue2;
|
|
736
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_EQ(e1, e2),
|
|
737
|
+
ContainsRegex(R"re(Check failed:.*\(1 vs. 2\))re"));
|
|
738
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_NE(e1, e1),
|
|
739
|
+
ContainsRegex(R"re(Check failed:.*\(1 vs. 1\))re"));
|
|
740
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_GT(e1, e1),
|
|
741
|
+
ContainsRegex(R"re(Check failed:.*\(1 vs. 1\))re"));
|
|
742
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_GE(e1, e2),
|
|
743
|
+
ContainsRegex(R"re(Check failed:.*\(1 vs. 2\))re"));
|
|
744
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_LT(e2, e2),
|
|
745
|
+
ContainsRegex(R"re(Check failed:.*\(2 vs. 2\))re"));
|
|
746
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_LE(e2, e1),
|
|
747
|
+
ContainsRegex(R"re(Check failed:.*\(2 vs. 1\))re"));
|
|
748
|
+
|
|
749
|
+
const auto& e1_ref = e1;
|
|
750
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_NE(e1_ref, e1),
|
|
751
|
+
ContainsRegex(R"re(Check failed:.*\(1 vs. 1\))re"));
|
|
752
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_NE(e1_ref, e1_ref),
|
|
753
|
+
ContainsRegex(R"re(Check failed:.*\(1 vs. 1\))re"));
|
|
754
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_EQ(e2, e1_ref),
|
|
755
|
+
ContainsRegex(R"re(Check failed:.*\(2 vs. 1\))re"));
|
|
756
|
+
|
|
757
|
+
#ifndef NDEBUG
|
|
758
|
+
EXPECT_DEATH(ABSL_TEST_DCHECK_EQ(e2, e1),
|
|
759
|
+
ContainsRegex(R"re(Check failed:.*\(2 vs. 1\))re"));
|
|
760
|
+
#else
|
|
761
|
+
// DHECK_EQ is not evaluated in non-debug mode.
|
|
762
|
+
ABSL_TEST_DCHECK_EQ(e2, e1);
|
|
763
|
+
#endif // NDEBUG
|
|
764
|
+
}
|
|
765
|
+
#endif // GTEST_HAS_DEATH_TEST
|
|
766
|
+
|
|
767
|
+
enum class ScopedInt8Enum : int8_t {
|
|
768
|
+
kValue1 = 1,
|
|
769
|
+
kValue2 = 66 // Printable ascii value 'B'.
|
|
770
|
+
};
|
|
771
|
+
|
|
772
|
+
TEST(CHECKDeathTest, TestScopedInt8EnumCheckFailureMessagePrintsCharValues) {
|
|
773
|
+
const auto e1 = ScopedInt8Enum::kValue1;
|
|
774
|
+
const auto e2 = ScopedInt8Enum::kValue2;
|
|
775
|
+
EXPECT_DEATH(
|
|
776
|
+
ABSL_TEST_CHECK_EQ(e1, e2),
|
|
777
|
+
ContainsRegex(R"re(Check failed:.*\(signed char value 1 vs. 'B'\))re"));
|
|
778
|
+
EXPECT_DEATH(
|
|
779
|
+
ABSL_TEST_CHECK_NE(e1, e1),
|
|
780
|
+
ContainsRegex(
|
|
781
|
+
R"re(Check failed:.*\(signed char value 1 vs. signed char value 1\))re"));
|
|
782
|
+
EXPECT_DEATH(
|
|
783
|
+
ABSL_TEST_CHECK_GT(e1, e1),
|
|
784
|
+
ContainsRegex(
|
|
785
|
+
R"re(Check failed:.*\(signed char value 1 vs. signed char value 1\))re"));
|
|
786
|
+
EXPECT_DEATH(
|
|
787
|
+
ABSL_TEST_CHECK_GE(e1, e2),
|
|
788
|
+
ContainsRegex(R"re(Check failed:.*\(signed char value 1 vs. 'B'\))re"));
|
|
789
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_LT(e2, e2),
|
|
790
|
+
ContainsRegex(R"re(Check failed:.*\('B' vs. 'B'\))re"));
|
|
791
|
+
EXPECT_DEATH(
|
|
792
|
+
ABSL_TEST_CHECK_LE(e2, e1),
|
|
793
|
+
ContainsRegex(R"re(Check failed:.*\('B' vs. signed char value 1\))re"));
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
enum class ScopedUnsignedEnum : uint16_t {
|
|
797
|
+
kValue1 = std::numeric_limits<uint16_t>::min(),
|
|
798
|
+
kValue2 = std::numeric_limits<uint16_t>::max()
|
|
799
|
+
};
|
|
800
|
+
|
|
801
|
+
TEST(CHECKDeathTest,
|
|
802
|
+
TestScopedUnsignedEnumCheckFailureMessagePrintsCorrectValues) {
|
|
803
|
+
const auto e1 = ScopedUnsignedEnum::kValue1;
|
|
804
|
+
const auto e2 = ScopedUnsignedEnum::kValue2;
|
|
805
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_EQ(e1, e2),
|
|
806
|
+
ContainsRegex(R"re(Check failed:.*\(0 vs. 65535\))re"));
|
|
807
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_NE(e1, e1),
|
|
808
|
+
ContainsRegex(R"re(Check failed:.*\(0 vs. 0\))re"));
|
|
809
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_GT(e1, e1),
|
|
810
|
+
ContainsRegex(R"re(Check failed:.*\(0 vs. 0\))re"));
|
|
811
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_GE(e1, e2),
|
|
812
|
+
ContainsRegex(R"re(Check failed:.*\(0 vs. 65535\))re"));
|
|
813
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_LT(e1, e1),
|
|
814
|
+
ContainsRegex(R"re(Check failed:.*\(0 vs. 0\))re"));
|
|
815
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_LE(e2, e1),
|
|
816
|
+
ContainsRegex(R"re(Check failed:.*\(65535 vs. 0\))re"));
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
enum class ScopedInt64Enum : int64_t {
|
|
820
|
+
kMin = std::numeric_limits<int64_t>::min(),
|
|
821
|
+
kMax = std::numeric_limits<int64_t>::max(),
|
|
822
|
+
};
|
|
823
|
+
|
|
824
|
+
// Tests that int64-backed enums are printed correctly even for very large and
|
|
825
|
+
// very small values.
|
|
826
|
+
TEST(CHECKDeathTest, TestScopedInt64EnumCheckFailureMessage) {
|
|
827
|
+
const auto min = ScopedInt64Enum::kMin;
|
|
828
|
+
const auto max = ScopedInt64Enum::kMax;
|
|
829
|
+
EXPECT_DEATH(
|
|
830
|
+
ABSL_TEST_CHECK_EQ(max, min),
|
|
831
|
+
ContainsRegex(
|
|
832
|
+
"Check failed:.*9223372036854775807 vs. -9223372036854775808"));
|
|
833
|
+
EXPECT_DEATH(
|
|
834
|
+
ABSL_TEST_CHECK_NE(max, max),
|
|
835
|
+
ContainsRegex(
|
|
836
|
+
"Check failed:.*9223372036854775807 vs. 9223372036854775807"));
|
|
837
|
+
EXPECT_DEATH(
|
|
838
|
+
ABSL_TEST_CHECK_GT(min, min),
|
|
839
|
+
ContainsRegex(
|
|
840
|
+
"Check failed:.*-9223372036854775808 vs. -9223372036854775808"));
|
|
841
|
+
EXPECT_DEATH(
|
|
842
|
+
ABSL_TEST_CHECK_GE(min, max),
|
|
843
|
+
ContainsRegex(
|
|
844
|
+
R"(Check failed:.*-9223372036854775808 vs. 9223372036854775807)"));
|
|
845
|
+
EXPECT_DEATH(
|
|
846
|
+
ABSL_TEST_CHECK_LT(max, max),
|
|
847
|
+
ContainsRegex(
|
|
848
|
+
R"(Check failed:.*9223372036854775807 vs. 9223372036854775807)"));
|
|
849
|
+
EXPECT_DEATH(
|
|
850
|
+
ABSL_TEST_CHECK_LE(max, min),
|
|
851
|
+
ContainsRegex(
|
|
852
|
+
R"(Check failed:.*9223372036854775807 vs. -9223372036854775808)"));
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
enum class ScopedBoolEnum : bool {
|
|
856
|
+
kFalse,
|
|
857
|
+
kTrue,
|
|
858
|
+
};
|
|
859
|
+
|
|
860
|
+
TEST(CHECKDeathTest, TestScopedBoolEnumCheckFailureMessagePrintsCorrectValues) {
|
|
861
|
+
const auto t = ScopedBoolEnum::kTrue;
|
|
862
|
+
const auto f = ScopedBoolEnum::kFalse;
|
|
863
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_EQ(t, f),
|
|
864
|
+
ContainsRegex(R"re(Check failed:.*\(1 vs. 0\))re"));
|
|
865
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_NE(f, f),
|
|
866
|
+
ContainsRegex(R"re(Check failed:.*\(0 vs. 0\))re"));
|
|
867
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_GT(f, f),
|
|
868
|
+
ContainsRegex(R"re(Check failed:.*\(0 vs. 0\))re"));
|
|
869
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_GE(f, t),
|
|
870
|
+
ContainsRegex(R"re(Check failed:.*\(0 vs. 1\))re"));
|
|
871
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_LT(t, t),
|
|
872
|
+
ContainsRegex(R"re(Check failed:.*\(1 vs. 1\))re"));
|
|
873
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_LE(t, f),
|
|
874
|
+
ContainsRegex(R"re(Check failed:.*\(1 vs. 0\))re"));
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
enum class ScopedEnumWithAbslStringify {
|
|
878
|
+
kValue1 = 1,
|
|
879
|
+
kValue2 = 2,
|
|
880
|
+
kValue3 = 3
|
|
881
|
+
};
|
|
882
|
+
|
|
883
|
+
template <typename Sink>
|
|
884
|
+
void AbslStringify(Sink& sink, ScopedEnumWithAbslStringify v) {
|
|
885
|
+
switch (v) {
|
|
886
|
+
case ScopedEnumWithAbslStringify::kValue1:
|
|
887
|
+
sink.Append("AbslStringify: kValue1");
|
|
888
|
+
break;
|
|
889
|
+
case ScopedEnumWithAbslStringify::kValue2:
|
|
890
|
+
sink.Append("AbslStringify: kValue2");
|
|
891
|
+
break;
|
|
892
|
+
case ScopedEnumWithAbslStringify::kValue3:
|
|
893
|
+
sink.Append("AbslStringify: kValue3");
|
|
894
|
+
break;
|
|
895
|
+
}
|
|
896
|
+
}
|
|
897
|
+
|
|
898
|
+
#if GTEST_HAS_DEATH_TEST
|
|
899
|
+
TEST(CHECKDeathTest, TestScopedEnumUsesAbslStringify) {
|
|
900
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_EQ(ScopedEnumWithAbslStringify::kValue1,
|
|
901
|
+
ScopedEnumWithAbslStringify::kValue2),
|
|
902
|
+
ContainsRegex("Check failed:.*AbslStringify: kValue1 vs. "
|
|
903
|
+
"AbslStringify: kValue2"));
|
|
904
|
+
}
|
|
905
|
+
#endif // GTEST_HAS_DEATH_TEST
|
|
906
|
+
|
|
907
|
+
enum class ScopedEnumWithOutputOperator {
|
|
908
|
+
kValue1 = 1,
|
|
909
|
+
kValue2 = 2,
|
|
910
|
+
};
|
|
911
|
+
|
|
912
|
+
std::ostream& operator<<(std::ostream& os, ScopedEnumWithOutputOperator v) {
|
|
913
|
+
switch (v) {
|
|
914
|
+
case ScopedEnumWithOutputOperator::kValue1:
|
|
915
|
+
os << "OutputOperator: kValue1";
|
|
916
|
+
break;
|
|
917
|
+
case ScopedEnumWithOutputOperator::kValue2:
|
|
918
|
+
os << "OutputOperator: kValue2";
|
|
919
|
+
break;
|
|
920
|
+
}
|
|
921
|
+
return os;
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
#if GTEST_HAS_DEATH_TEST
|
|
925
|
+
TEST(CHECKDeathTest, TestOutputOperatorIsUsedForScopedEnum) {
|
|
926
|
+
EXPECT_DEATH(ABSL_TEST_CHECK_EQ(ScopedEnumWithOutputOperator::kValue1,
|
|
927
|
+
ScopedEnumWithOutputOperator::kValue2),
|
|
928
|
+
ContainsRegex("Check failed:.*OutputOperator: kValue1 vs. "
|
|
929
|
+
"OutputOperator: kValue2"));
|
|
930
|
+
}
|
|
931
|
+
#endif // GTEST_HAS_DEATH_TEST
|
|
932
|
+
|
|
933
|
+
enum class ScopedEnumWithAbslStringifyAndOutputOperator {
|
|
934
|
+
kValue1 = 1,
|
|
935
|
+
kValue2 = 2,
|
|
936
|
+
};
|
|
937
|
+
|
|
938
|
+
template <typename Sink>
|
|
939
|
+
void AbslStringify(Sink& sink, ScopedEnumWithAbslStringifyAndOutputOperator v) {
|
|
940
|
+
switch (v) {
|
|
941
|
+
case ScopedEnumWithAbslStringifyAndOutputOperator::kValue1:
|
|
942
|
+
sink.Append("AbslStringify: kValue1");
|
|
943
|
+
break;
|
|
944
|
+
case ScopedEnumWithAbslStringifyAndOutputOperator::kValue2:
|
|
945
|
+
sink.Append("AbslStringify: kValue2");
|
|
946
|
+
break;
|
|
947
|
+
}
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
std::ostream& operator<<(std::ostream& os,
|
|
951
|
+
ScopedEnumWithAbslStringifyAndOutputOperator v) {
|
|
952
|
+
switch (v) {
|
|
953
|
+
case ScopedEnumWithAbslStringifyAndOutputOperator::kValue1:
|
|
954
|
+
os << "OutputOperator: kValue1";
|
|
955
|
+
break;
|
|
956
|
+
case ScopedEnumWithAbslStringifyAndOutputOperator::kValue2:
|
|
957
|
+
os << "OutputOperator: kValue2";
|
|
958
|
+
break;
|
|
959
|
+
}
|
|
960
|
+
return os;
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
#if GTEST_HAS_DEATH_TEST
|
|
964
|
+
|
|
965
|
+
// Test that, if operator<< and AbslStringify are both defined for a scoped
|
|
966
|
+
// enum, streaming takes precedence over AbslStringify.
|
|
967
|
+
TEST(CHECKDeathTest, TestScopedEnumPrefersOutputOperatorOverAbslStringify) {
|
|
968
|
+
EXPECT_DEATH(
|
|
969
|
+
ABSL_TEST_CHECK_EQ(ScopedEnumWithAbslStringifyAndOutputOperator::kValue1,
|
|
970
|
+
ScopedEnumWithAbslStringifyAndOutputOperator::kValue2),
|
|
971
|
+
ContainsRegex("Check failed:.*OutputOperator: kValue1 vs. "
|
|
972
|
+
"OutputOperator: kValue2"));
|
|
973
|
+
}
|
|
974
|
+
#endif // GTEST_HAS_DEATH_TEST
|
|
975
|
+
|
|
682
976
|
} // namespace absl_log_internal
|
|
683
977
|
|
|
684
978
|
// NOLINTEND(misc-definitions-in-headers)
|
|
@@ -60,8 +60,8 @@ namespace log_internal {
|
|
|
60
60
|
|
|
61
61
|
// Helper for `ABSL_DIE_IF_NULL`.
|
|
62
62
|
template <typename T>
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
[[nodiscard]] T DieIfNull(const char* file, int line, const char* exprtext,
|
|
64
|
+
T&& t) {
|
|
65
65
|
if (ABSL_PREDICT_FALSE(t == nullptr)) {
|
|
66
66
|
// Call a non-inline helper function for a small code size improvement.
|
|
67
67
|
DieBecauseNull(file, line, exprtext);
|
|
@@ -93,6 +93,7 @@ TEST_F(LogFlagsTest, PrependLogPrefix) {
|
|
|
93
93
|
TEST_F(LogFlagsTest, EmptyBacktraceAtFlag) {
|
|
94
94
|
absl::SetMinLogLevel(absl::LogSeverityAtLeast::kInfo);
|
|
95
95
|
absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
|
|
96
|
+
EXPECT_CALL(test_sink, Send).Times(0);
|
|
96
97
|
|
|
97
98
|
EXPECT_CALL(test_sink, Send(TextMessage(Not(HasSubstr("(stacktrace:")))));
|
|
98
99
|
|
|
@@ -104,6 +105,7 @@ TEST_F(LogFlagsTest, EmptyBacktraceAtFlag) {
|
|
|
104
105
|
TEST_F(LogFlagsTest, BacktraceAtNonsense) {
|
|
105
106
|
absl::SetMinLogLevel(absl::LogSeverityAtLeast::kInfo);
|
|
106
107
|
absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
|
|
108
|
+
EXPECT_CALL(test_sink, Send).Times(0);
|
|
107
109
|
|
|
108
110
|
EXPECT_CALL(test_sink, Send(TextMessage(Not(HasSubstr("(stacktrace:")))));
|
|
109
111
|
|
|
@@ -117,6 +119,7 @@ TEST_F(LogFlagsTest, BacktraceAtWrongFile) {
|
|
|
117
119
|
const int log_line = __LINE__ + 1;
|
|
118
120
|
auto do_log = [] { LOG(INFO) << "hello world"; };
|
|
119
121
|
absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
|
|
122
|
+
EXPECT_CALL(test_sink, Send).Times(0);
|
|
120
123
|
|
|
121
124
|
EXPECT_CALL(test_sink, Send(TextMessage(Not(HasSubstr("(stacktrace:")))));
|
|
122
125
|
|
|
@@ -131,6 +134,7 @@ TEST_F(LogFlagsTest, BacktraceAtWrongLine) {
|
|
|
131
134
|
const int log_line = __LINE__ + 1;
|
|
132
135
|
auto do_log = [] { LOG(INFO) << "hello world"; };
|
|
133
136
|
absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
|
|
137
|
+
EXPECT_CALL(test_sink, Send).Times(0);
|
|
134
138
|
|
|
135
139
|
EXPECT_CALL(test_sink, Send(TextMessage(Not(HasSubstr("(stacktrace:")))));
|
|
136
140
|
|
|
@@ -145,6 +149,7 @@ TEST_F(LogFlagsTest, BacktraceAtWholeFilename) {
|
|
|
145
149
|
const int log_line = __LINE__ + 1;
|
|
146
150
|
auto do_log = [] { LOG(INFO) << "hello world"; };
|
|
147
151
|
absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
|
|
152
|
+
EXPECT_CALL(test_sink, Send).Times(0);
|
|
148
153
|
|
|
149
154
|
EXPECT_CALL(test_sink, Send(TextMessage(Not(HasSubstr("(stacktrace:")))));
|
|
150
155
|
|
|
@@ -158,6 +163,7 @@ TEST_F(LogFlagsTest, BacktraceAtNonmatchingSuffix) {
|
|
|
158
163
|
const int log_line = __LINE__ + 1;
|
|
159
164
|
auto do_log = [] { LOG(INFO) << "hello world"; };
|
|
160
165
|
absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
|
|
166
|
+
EXPECT_CALL(test_sink, Send).Times(0);
|
|
161
167
|
|
|
162
168
|
EXPECT_CALL(test_sink, Send(TextMessage(Not(HasSubstr("(stacktrace:")))));
|
|
163
169
|
|
|
@@ -172,6 +178,7 @@ TEST_F(LogFlagsTest, LogsBacktrace) {
|
|
|
172
178
|
const int log_line = __LINE__ + 1;
|
|
173
179
|
auto do_log = [] { LOG(INFO) << "hello world"; };
|
|
174
180
|
absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
|
|
181
|
+
EXPECT_CALL(test_sink, Send).Times(0);
|
|
175
182
|
|
|
176
183
|
testing::InSequence seq;
|
|
177
184
|
EXPECT_CALL(test_sink, Send(TextMessage(HasSubstr("(stacktrace:"))));
|
|
@@ -43,7 +43,7 @@ ABSL_NAMESPACE_BEGIN
|
|
|
43
43
|
//
|
|
44
44
|
// Returns the value of the Minimum Log Level parameter.
|
|
45
45
|
// This function is async-signal-safe.
|
|
46
|
-
|
|
46
|
+
[[nodiscard]] absl::LogSeverityAtLeast MinLogLevel();
|
|
47
47
|
|
|
48
48
|
// SetMinLogLevel()
|
|
49
49
|
//
|
|
@@ -82,7 +82,7 @@ class ScopedMinLogLevel final {
|
|
|
82
82
|
//
|
|
83
83
|
// Returns the value of the Stderr Threshold parameter.
|
|
84
84
|
// This function is async-signal-safe.
|
|
85
|
-
|
|
85
|
+
[[nodiscard]] absl::LogSeverityAtLeast StderrThreshold();
|
|
86
86
|
|
|
87
87
|
// SetStderrThreshold()
|
|
88
88
|
//
|
|
@@ -118,8 +118,7 @@ class ScopedStderrThreshold final {
|
|
|
118
118
|
//
|
|
119
119
|
// Returns true if we should log a backtrace at the specified location.
|
|
120
120
|
namespace log_internal {
|
|
121
|
-
|
|
122
|
-
int line);
|
|
121
|
+
[[nodiscard]] bool ShouldLogBacktraceAt(absl::string_view file, int line);
|
|
123
122
|
} // namespace log_internal
|
|
124
123
|
|
|
125
124
|
// SetLogBacktraceLocation()
|
|
@@ -145,7 +144,7 @@ void ClearLogBacktraceLocation();
|
|
|
145
144
|
//
|
|
146
145
|
// Returns the value of the Prepend Log Prefix option.
|
|
147
146
|
// This function is async-signal-safe.
|
|
148
|
-
|
|
147
|
+
[[nodiscard]] bool ShouldPrependLogPrefix();
|
|
149
148
|
|
|
150
149
|
// EnableLogPrefix()
|
|
151
150
|
//
|
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
#
|
|
16
16
|
|
|
17
|
+
load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
|
|
18
|
+
load("@rules_cc//cc:cc_library.bzl", "cc_library")
|
|
19
|
+
load("@rules_cc//cc:cc_test.bzl", "cc_test")
|
|
17
20
|
load(
|
|
18
21
|
"//absl:copts/configure_copts.bzl",
|
|
19
22
|
"ABSL_DEFAULT_COPTS",
|
|
@@ -68,9 +71,7 @@ cc_library(
|
|
|
68
71
|
hdrs = ["check_op.h"],
|
|
69
72
|
copts = ABSL_DEFAULT_COPTS,
|
|
70
73
|
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
71
|
-
visibility = [
|
|
72
|
-
"//absl/log:__pkg__",
|
|
73
|
-
],
|
|
74
|
+
visibility = ["//absl/log:__pkg__"],
|
|
74
75
|
deps = [
|
|
75
76
|
":nullguard",
|
|
76
77
|
":nullstream",
|
|
@@ -81,6 +82,7 @@ cc_library(
|
|
|
81
82
|
"//absl/base:nullability",
|
|
82
83
|
"//absl/debugging:leak_check",
|
|
83
84
|
"//absl/strings",
|
|
85
|
+
"//absl/strings:has_ostream_operator",
|
|
84
86
|
],
|
|
85
87
|
)
|
|
86
88
|
|
|
@@ -207,6 +209,7 @@ cc_library(
|
|
|
207
209
|
"//absl/log:log_sink_registry",
|
|
208
210
|
"//absl/memory",
|
|
209
211
|
"//absl/strings",
|
|
212
|
+
"//absl/strings:internal",
|
|
210
213
|
"//absl/time",
|
|
211
214
|
"//absl/types:span",
|
|
212
215
|
],
|
|
@@ -220,6 +223,7 @@ cc_library(
|
|
|
220
223
|
deps = [
|
|
221
224
|
"//absl/base:config",
|
|
222
225
|
"//absl/strings",
|
|
226
|
+
"//absl/strings:internal",
|
|
223
227
|
"//absl/types:span",
|
|
224
228
|
],
|
|
225
229
|
)
|
|
@@ -415,7 +419,10 @@ cc_library(
|
|
|
415
419
|
hdrs = ["voidify.h"],
|
|
416
420
|
copts = ABSL_DEFAULT_COPTS,
|
|
417
421
|
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
418
|
-
deps = [
|
|
422
|
+
deps = [
|
|
423
|
+
"//absl/base:config",
|
|
424
|
+
"//absl/base:core_headers",
|
|
425
|
+
],
|
|
419
426
|
)
|
|
420
427
|
|
|
421
428
|
cc_library(
|
|
@@ -424,10 +431,6 @@ cc_library(
|
|
|
424
431
|
hdrs = ["proto.h"],
|
|
425
432
|
copts = ABSL_DEFAULT_COPTS,
|
|
426
433
|
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
427
|
-
visibility = [
|
|
428
|
-
":internal_users",
|
|
429
|
-
":structured_proto_users",
|
|
430
|
-
],
|
|
431
434
|
deps = [
|
|
432
435
|
"//absl/base",
|
|
433
436
|
"//absl/base:config",
|
|
@@ -459,11 +462,12 @@ cc_library(
|
|
|
459
462
|
"//absl/log:__subpackages__",
|
|
460
463
|
],
|
|
461
464
|
deps = [
|
|
465
|
+
":fnmatch",
|
|
462
466
|
"//absl/base",
|
|
463
467
|
"//absl/base:config",
|
|
464
468
|
"//absl/base:core_headers",
|
|
465
469
|
"//absl/base:no_destructor",
|
|
466
|
-
"//absl/
|
|
470
|
+
"//absl/base:nullability",
|
|
467
471
|
"//absl/memory",
|
|
468
472
|
"//absl/strings",
|
|
469
473
|
"//absl/synchronization",
|
|
@@ -17,8 +17,10 @@
|
|
|
17
17
|
|
|
18
18
|
#include <cstddef>
|
|
19
19
|
#include <cstring>
|
|
20
|
+
#include <string_view>
|
|
20
21
|
|
|
21
22
|
#include "absl/base/config.h"
|
|
23
|
+
#include "absl/strings/internal/utf8.h"
|
|
22
24
|
#include "absl/strings/string_view.h"
|
|
23
25
|
#include "absl/types/span.h"
|
|
24
26
|
|
|
@@ -33,6 +35,32 @@ inline size_t AppendTruncated(absl::string_view src, absl::Span<char> &dst) {
|
|
|
33
35
|
dst.remove_prefix(src.size());
|
|
34
36
|
return src.size();
|
|
35
37
|
}
|
|
38
|
+
// Likewise, but it also takes a wide character string and transforms it into a
|
|
39
|
+
// UTF-8 encoded byte string regardless of the current locale.
|
|
40
|
+
// - On platforms where `wchar_t` is 2 bytes (e.g., Windows), the input is
|
|
41
|
+
// treated as UTF-16.
|
|
42
|
+
// - On platforms where `wchar_t` is 4 bytes (e.g., Linux, macOS), the input
|
|
43
|
+
// is treated as UTF-32.
|
|
44
|
+
inline size_t AppendTruncated(std::wstring_view src, absl::Span<char> &dst) {
|
|
45
|
+
absl::strings_internal::ShiftState state;
|
|
46
|
+
size_t total_bytes_written = 0;
|
|
47
|
+
for (const wchar_t wc : src) {
|
|
48
|
+
// If the destination buffer might not be large enough to write the next
|
|
49
|
+
// character, stop.
|
|
50
|
+
if (dst.size() < absl::strings_internal::kMaxEncodedUTF8Size) break;
|
|
51
|
+
size_t bytes_written =
|
|
52
|
+
absl::strings_internal::WideToUtf8(wc, dst.data(), state);
|
|
53
|
+
if (bytes_written == static_cast<size_t>(-1)) {
|
|
54
|
+
// Invalid character. Encode REPLACEMENT CHARACTER (U+FFFD) instead.
|
|
55
|
+
constexpr wchar_t kReplacementCharacter = L'\uFFFD';
|
|
56
|
+
bytes_written = absl::strings_internal::WideToUtf8(kReplacementCharacter,
|
|
57
|
+
dst.data(), state);
|
|
58
|
+
}
|
|
59
|
+
dst.remove_prefix(bytes_written);
|
|
60
|
+
total_bytes_written += bytes_written;
|
|
61
|
+
}
|
|
62
|
+
return total_bytes_written;
|
|
63
|
+
}
|
|
36
64
|
// Likewise, but `n` copies of `c`.
|
|
37
65
|
inline size_t AppendTruncated(char c, size_t n, absl::Span<char> &dst) {
|
|
38
66
|
if (n > dst.size()) n = dst.size();
|