Export of internal Abseil changes.
-- e7f892a0b9b313b434c5f9e9a2365b377204b60e by Abseil Team <absl-team@google.com>: Remove internal CaseEqual helper now that we have the equivalent absl::EqualsIgnoreCase. PiperOrigin-RevId: 225189084 -- 722af2c74766d2fe3cee13c8dc886d39aedda597 by Abseil Team <absl-team@google.com>: Add -Wno-extra-semi-stmt to silence that warning. The [-Wno-extra-semi] is already disabled in the build. This change will allow the build to remain consistent across newer versions of clang which are now issuing a new similiar warning [-Wextra-semi-stmt]: https://clang.llvm.org/docs/ReleaseNotes.html#major-new-features https://clang.llvm.org/docs/DiagnosticsReference.html#wextra-semi-stmt PiperOrigin-RevId: 225185101 -- f7fd6244b4efcf0331631a54b7b0cf5f1f691a89 by CJ Johnson <johnsoncj@google.com>: Move using directive in swap implementation PiperOrigin-RevId: 225017825 -- 3005841725df5b9cdb35c8a5319bb4c78b5dc2b7 by Abseil Team <absl-team@google.com>: Update absl/strings/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 224860689 -- eeaf7099924b182472bfea3636ef6d9a39adfc50 by CJ Johnson <johnsoncj@google.com>: Prefer public method over private for InlinedVector allocator access PiperOrigin-RevId: 224825775 -- db9d218e3ca7ab400eef97778b720cb082a03281 by Eric Fiselier <ericwf@google.com>: Take advantage of secret libc++ resize uninitialized function in string. PiperOrigin-RevId: 224817877 GitOrigin-RevId: e7f892a0b9b313b434c5f9e9a2365b377204b60e Change-Id: I051beee37ee03f0570bd2e068355ad75c8bdfcf8
This commit is contained in:
		
							parent
							
								
									455dc17ba1
								
							
						
					
					
						commit
						8fbcdb9095
					
				
					 6 changed files with 490 additions and 458 deletions
				
			
		| 
						 | 
					@ -149,7 +149,7 @@ class InlinedVector {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Creates a copy of `other` using `other`'s allocator.
 | 
					  // Creates a copy of `other` using `other`'s allocator.
 | 
				
			||||||
  InlinedVector(const InlinedVector& other)
 | 
					  InlinedVector(const InlinedVector& other)
 | 
				
			||||||
      : InlinedVector(other, other.allocator()) {}
 | 
					      : InlinedVector(other, other.get_allocator()) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Creates a copy of `other` but with a specified allocator.
 | 
					  // Creates a copy of `other` but with a specified allocator.
 | 
				
			||||||
  InlinedVector(const InlinedVector& other, const allocator_type& alloc)
 | 
					  InlinedVector(const InlinedVector& other, const allocator_type& alloc)
 | 
				
			||||||
| 
						 | 
					@ -793,9 +793,9 @@ class InlinedVector {
 | 
				
			||||||
  //
 | 
					  //
 | 
				
			||||||
  // Swaps the contents of this inlined vector with the contents of `other`.
 | 
					  // Swaps the contents of this inlined vector with the contents of `other`.
 | 
				
			||||||
  void swap(InlinedVector& other) {
 | 
					  void swap(InlinedVector& other) {
 | 
				
			||||||
    using std::swap;  // Augment ADL with `std::swap`.
 | 
					 | 
				
			||||||
    if (ABSL_PREDICT_FALSE(this == &other)) return;
 | 
					    if (ABSL_PREDICT_FALSE(this == &other)) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    using std::swap;  // Augment ADL with `std::swap`.
 | 
				
			||||||
    if (allocated() && other.allocated()) {
 | 
					    if (allocated() && other.allocated()) {
 | 
				
			||||||
      // Both out of line, so just swap the tag, allocation, and allocator.
 | 
					      // Both out of line, so just swap the tag, allocation, and allocator.
 | 
				
			||||||
      swap(tag(), other.tag());
 | 
					      swap(tag(), other.tag());
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -58,6 +58,7 @@ COPT_VARS = {
 | 
				
			||||||
        # Turned off as they include valid C++ code.
 | 
					        # Turned off as they include valid C++ code.
 | 
				
			||||||
        "-Wno-comma",
 | 
					        "-Wno-comma",
 | 
				
			||||||
        "-Wno-extra-semi",
 | 
					        "-Wno-extra-semi",
 | 
				
			||||||
 | 
					        "-Wno-extra-semi-stmt",
 | 
				
			||||||
        "-Wno-packed",
 | 
					        "-Wno-packed",
 | 
				
			||||||
        "-Wno-padded",
 | 
					        "-Wno-padded",
 | 
				
			||||||
        ###
 | 
					        ###
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,49 +14,35 @@
 | 
				
			||||||
# limitations under the License.
 | 
					# limitations under the License.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_library(
 | 
				
			||||||
list(APPEND STRINGS_PUBLIC_HEADERS
 | 
					  NAME
 | 
				
			||||||
 | 
					    strings
 | 
				
			||||||
 | 
					  HDRS
 | 
				
			||||||
    "ascii.h"
 | 
					    "ascii.h"
 | 
				
			||||||
    "charconv.h"
 | 
					    "charconv.h"
 | 
				
			||||||
    "escaping.h"
 | 
					    "escaping.h"
 | 
				
			||||||
    "match.h"
 | 
					    "match.h"
 | 
				
			||||||
    "numbers.h"
 | 
					    "numbers.h"
 | 
				
			||||||
    "str_cat.h"
 | 
					    "str_cat.h"
 | 
				
			||||||
  "string_view.h"
 | 
					 | 
				
			||||||
  "strip.h"
 | 
					 | 
				
			||||||
    "str_join.h"
 | 
					    "str_join.h"
 | 
				
			||||||
    "str_replace.h"
 | 
					    "str_replace.h"
 | 
				
			||||||
    "str_split.h"
 | 
					    "str_split.h"
 | 
				
			||||||
 | 
					    "string_view.h"
 | 
				
			||||||
 | 
					    "strip.h"
 | 
				
			||||||
    "substitute.h"
 | 
					    "substitute.h"
 | 
				
			||||||
)
 | 
					  SRCS
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
list(APPEND STRINGS_INTERNAL_HEADERS
 | 
					 | 
				
			||||||
  "internal/char_map.h"
 | 
					 | 
				
			||||||
  "internal/charconv_bigint.h"
 | 
					 | 
				
			||||||
  "internal/charconv_parse.h"
 | 
					 | 
				
			||||||
  "internal/memutil.h"
 | 
					 | 
				
			||||||
  "internal/ostringstream.h"
 | 
					 | 
				
			||||||
  "internal/resize_uninitialized.h"
 | 
					 | 
				
			||||||
  "internal/stl_type_traits.h"
 | 
					 | 
				
			||||||
  "internal/str_join_internal.h"
 | 
					 | 
				
			||||||
  "internal/str_split_internal.h"
 | 
					 | 
				
			||||||
  "internal/utf8.h"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# add string library
 | 
					 | 
				
			||||||
list(APPEND STRINGS_SRC
 | 
					 | 
				
			||||||
    "ascii.cc"
 | 
					    "ascii.cc"
 | 
				
			||||||
    "charconv.cc"
 | 
					    "charconv.cc"
 | 
				
			||||||
    "escaping.cc"
 | 
					    "escaping.cc"
 | 
				
			||||||
    "internal/charconv_bigint.cc"
 | 
					    "internal/charconv_bigint.cc"
 | 
				
			||||||
 | 
					    "internal/charconv_bigint.h"
 | 
				
			||||||
    "internal/charconv_parse.cc"
 | 
					    "internal/charconv_parse.cc"
 | 
				
			||||||
 | 
					    "internal/charconv_parse.h"
 | 
				
			||||||
    "internal/memutil.cc"
 | 
					    "internal/memutil.cc"
 | 
				
			||||||
    "internal/memutil.h"
 | 
					    "internal/memutil.h"
 | 
				
			||||||
  "internal/utf8.cc"
 | 
					    "internal/stl_type_traits.h"
 | 
				
			||||||
  "internal/ostringstream.cc"
 | 
					    "internal/str_join_internal.h"
 | 
				
			||||||
 | 
					    "internal/str_split_internal.h"
 | 
				
			||||||
    "match.cc"
 | 
					    "match.cc"
 | 
				
			||||||
    "numbers.cc"
 | 
					    "numbers.cc"
 | 
				
			||||||
    "str_cat.cc"
 | 
					    "str_cat.cc"
 | 
				
			||||||
| 
						 | 
					@ -64,43 +50,323 @@ list(APPEND STRINGS_SRC
 | 
				
			||||||
    "str_split.cc"
 | 
					    "str_split.cc"
 | 
				
			||||||
    "string_view.cc"
 | 
					    "string_view.cc"
 | 
				
			||||||
    "substitute.cc"
 | 
					    "substitute.cc"
 | 
				
			||||||
  ${STRINGS_PUBLIC_HEADERS}
 | 
					  COPTS
 | 
				
			||||||
  ${STRINGS_INTERNAL_HEADERS}
 | 
					    ${ABSL_DEFAULT_COPTS}
 | 
				
			||||||
)
 | 
					  DEPS
 | 
				
			||||||
set(STRINGS_PUBLIC_LIBRARIES absl::base absl_internal_throw_delegate)
 | 
					    absl::strings_internal
 | 
				
			||||||
 | 
					    absl::base
 | 
				
			||||||
absl_library(
 | 
					    absl::bits
 | 
				
			||||||
  TARGET
 | 
					    absl::config
 | 
				
			||||||
    absl_strings
 | 
					    absl::core_headers
 | 
				
			||||||
  SOURCES
 | 
					    absl::endian
 | 
				
			||||||
    ${STRINGS_SRC}
 | 
					    absl::throw_delegate
 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					    absl::memory
 | 
				
			||||||
    ${STRINGS_PUBLIC_LIBRARIES}
 | 
					    absl::type_traits
 | 
				
			||||||
  EXPORT_NAME
 | 
					    absl::int128
 | 
				
			||||||
    strings
 | 
					  PUBLIC
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# add str_format library
 | 
					absl_cc_library(
 | 
				
			||||||
absl_header_library(
 | 
					  NAME
 | 
				
			||||||
  TARGET
 | 
					    strings_internal
 | 
				
			||||||
    absl_str_format
 | 
					  HDRS
 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					    "internal/char_map.h"
 | 
				
			||||||
    str_format_internal
 | 
					    "internal/ostringstream.h"
 | 
				
			||||||
  EXPORT_NAME
 | 
					    "internal/resize_uninitialized.h"
 | 
				
			||||||
 | 
					    "internal/utf8.h"
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "internal/ostringstream.cc"
 | 
				
			||||||
 | 
					    "internal/utf8.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_DEFAULT_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::core_headers
 | 
				
			||||||
 | 
					    absl::endian
 | 
				
			||||||
 | 
					    absl::type_traits
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    match_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "match_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings
 | 
				
			||||||
 | 
					    absl::base
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    escaping_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "escaping_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings
 | 
				
			||||||
 | 
					    absl::core_headers
 | 
				
			||||||
 | 
					    absl::fixed_array
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    ascii_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "ascii_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings
 | 
				
			||||||
 | 
					    absl::core_headers
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    memutil_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "internal/memutil.h"
 | 
				
			||||||
 | 
					    "internal/memutil_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings
 | 
				
			||||||
 | 
					    absl::core_headers
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    utf8_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "internal/utf8_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings_internal
 | 
				
			||||||
 | 
					    absl::base
 | 
				
			||||||
 | 
					    absl::core_headers
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    string_view_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "string_view_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					    ${ABSL_EXCEPTIONS_FLAG}
 | 
				
			||||||
 | 
					  LINKOPTS
 | 
				
			||||||
 | 
					    ${ABSL_EXCEPTIONS_FLAG_LINKOPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings
 | 
				
			||||||
 | 
					    absl::config
 | 
				
			||||||
 | 
					    absl::core_headers
 | 
				
			||||||
 | 
					    absl::dynamic_annotations
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    substitute_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "substitute_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings
 | 
				
			||||||
 | 
					    absl::core_headers
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    str_replace_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "str_replace_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    str_split_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "str_split_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings
 | 
				
			||||||
 | 
					    absl::base
 | 
				
			||||||
 | 
					    absl::core_headers
 | 
				
			||||||
 | 
					    absl::dynamic_annotations
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    ostringstream_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "internal/ostringstream_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings_internal
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    resize_uninitialized_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "internal/resize_uninitialized.h"
 | 
				
			||||||
 | 
					    "internal/resize_uninitialized_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::base
 | 
				
			||||||
 | 
					    absl::core_headers
 | 
				
			||||||
 | 
					    absl::type_traits
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    str_join_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "str_join_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings
 | 
				
			||||||
 | 
					    absl::base
 | 
				
			||||||
 | 
					    absl::core_headers
 | 
				
			||||||
 | 
					    absl::memory
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    str_cat_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "str_cat_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings
 | 
				
			||||||
 | 
					    absl::core_headers
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    numbers_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "internal/numbers_test_common.h"
 | 
				
			||||||
 | 
					    "numbers_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings
 | 
				
			||||||
 | 
					    absl::base
 | 
				
			||||||
 | 
					    absl::core_headers
 | 
				
			||||||
 | 
					    absl::pow10_helper
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    strip_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "strip_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings
 | 
				
			||||||
 | 
					    absl::base
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    char_map_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "internal/char_map_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings_internal
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    charconv_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "charconv_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings
 | 
				
			||||||
 | 
					    absl::str_format
 | 
				
			||||||
 | 
					    absl::base
 | 
				
			||||||
 | 
					    absl::pow10_helper
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    charconv_parse_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "internal/charconv_parse.h"
 | 
				
			||||||
 | 
					    "internal/charconv_parse_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings
 | 
				
			||||||
 | 
					    absl::base
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    charconv_bigint_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "internal/charconv_bigint.h"
 | 
				
			||||||
 | 
					    "internal/charconv_bigint_test.cc"
 | 
				
			||||||
 | 
					    "internal/charconv_parse.h"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::strings
 | 
				
			||||||
 | 
					    absl::base
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_library(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
    str_format
 | 
					    str_format
 | 
				
			||||||
 | 
					  HDRS
 | 
				
			||||||
 | 
					    "str_format.h"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_DEFAULT_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::str_format_internal
 | 
				
			||||||
 | 
					  PUBLIC
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# str_format_internal
 | 
					absl_cc_library(
 | 
				
			||||||
absl_library(
 | 
					  NAME
 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    str_format_internal
 | 
					    str_format_internal
 | 
				
			||||||
  SOURCES
 | 
					  HDRS
 | 
				
			||||||
    "internal/str_format/arg.cc"
 | 
					 | 
				
			||||||
    "internal/str_format/bind.cc"
 | 
					 | 
				
			||||||
    "internal/str_format/extension.cc"
 | 
					 | 
				
			||||||
    "internal/str_format/float_conversion.cc"
 | 
					 | 
				
			||||||
    "internal/str_format/output.cc"
 | 
					 | 
				
			||||||
    "internal/str_format/parser.cc"
 | 
					 | 
				
			||||||
    "internal/str_format/arg.h"
 | 
					    "internal/str_format/arg.h"
 | 
				
			||||||
    "internal/str_format/bind.h"
 | 
					    "internal/str_format/bind.h"
 | 
				
			||||||
    "internal/str_format/checker.h"
 | 
					    "internal/str_format/checker.h"
 | 
				
			||||||
| 
						 | 
					@ -108,374 +374,145 @@ absl_library(
 | 
				
			||||||
    "internal/str_format/float_conversion.h"
 | 
					    "internal/str_format/float_conversion.h"
 | 
				
			||||||
    "internal/str_format/output.h"
 | 
					    "internal/str_format/output.h"
 | 
				
			||||||
    "internal/str_format/parser.h"
 | 
					    "internal/str_format/parser.h"
 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					  SRCS
 | 
				
			||||||
    str_format_extension_internal
 | 
					    "internal/str_format/arg.cc"
 | 
				
			||||||
 | 
					    "internal/str_format/bind.cc"
 | 
				
			||||||
 | 
					    "internal/str_format/extension.cc"
 | 
				
			||||||
 | 
					    "internal/str_format/float_conversion.cc"
 | 
				
			||||||
 | 
					    "internal/str_format/output.cc"
 | 
				
			||||||
 | 
					    "internal/str_format/parser.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_DEFAULT_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
    absl::strings
 | 
					    absl::strings
 | 
				
			||||||
    absl::base
 | 
					    absl::core_headers
 | 
				
			||||||
    absl::numeric
 | 
					 | 
				
			||||||
    absl::inlined_vector
 | 
					    absl::inlined_vector
 | 
				
			||||||
 | 
					    absl::type_traits
 | 
				
			||||||
 | 
					    absl::int128
 | 
				
			||||||
    absl::span
 | 
					    absl::span
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# str_format_extension_internal
 | 
					absl_cc_test(
 | 
				
			||||||
absl_library(
 | 
					  NAME
 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    str_format_extension_internal
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    "internal/str_format/extension.cc"
 | 
					 | 
				
			||||||
    "internal/str_format/extension.h"
 | 
					 | 
				
			||||||
    "internal/str_format/output.cc"
 | 
					 | 
				
			||||||
    "internal/str_format/output.h"
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    absl::base
 | 
					 | 
				
			||||||
    absl::strings
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# pow10_helper
 | 
					 | 
				
			||||||
absl_library(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    pow10_helper
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    "internal/pow10_helper.cc"
 | 
					 | 
				
			||||||
    "internal/pow10_helper.h"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
## TESTS
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test match_test
 | 
					 | 
				
			||||||
set(MATCH_TEST_SRC "match_test.cc")
 | 
					 | 
				
			||||||
set(MATCH_TEST_PUBLIC_LIBRARIES absl::strings)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    match_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${MATCH_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${MATCH_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test escaping_test
 | 
					 | 
				
			||||||
set(ESCAPING_TEST_SRC "escaping_test.cc")
 | 
					 | 
				
			||||||
set(ESCAPING_TEST_PUBLIC_LIBRARIES absl::strings absl::base)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    escaping_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${ESCAPING_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${ESCAPING_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test ascii_test
 | 
					 | 
				
			||||||
set(ASCII_TEST_SRC "ascii_test.cc")
 | 
					 | 
				
			||||||
set(ASCII_TEST_PUBLIC_LIBRARIES absl::strings)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    ascii_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${ASCII_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${ASCII_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test memutil_test
 | 
					 | 
				
			||||||
set(MEMUTIL_TEST_SRC "internal/memutil_test.cc")
 | 
					 | 
				
			||||||
set(MEMUTIL_TEST_PUBLIC_LIBRARIES absl::strings)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    memutil_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${MEMUTIL_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${MEMUTIL_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test utf8_test
 | 
					 | 
				
			||||||
set(UTF8_TEST_SRC "internal/utf8_test.cc")
 | 
					 | 
				
			||||||
set(UTF8_TEST_PUBLIC_LIBRARIES absl::strings absl::base)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    utf8_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${UTF8_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${UTF8_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test string_view_test
 | 
					 | 
				
			||||||
set(STRING_VIEW_TEST_SRC "string_view_test.cc")
 | 
					 | 
				
			||||||
set(STRING_VIEW_TEST_PUBLIC_LIBRARIES absl::strings absl_internal_throw_delegate absl::base)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    string_view_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${STRING_VIEW_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${STRING_VIEW_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test substitute_test
 | 
					 | 
				
			||||||
set(SUBSTITUTE_TEST_SRC "substitute_test.cc")
 | 
					 | 
				
			||||||
set(SUBSTITUTE_TEST_PUBLIC_LIBRARIES absl::strings absl::base)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    substitute_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${SUBSTITUTE_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${SUBSTITUTE_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test str_replace_test
 | 
					 | 
				
			||||||
set(STR_REPLACE_TEST_SRC "str_replace_test.cc")
 | 
					 | 
				
			||||||
set(STR_REPLACE_TEST_PUBLIC_LIBRARIES absl::strings absl::base absl_internal_throw_delegate)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    str_replace_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${STR_REPLACE_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${STR_REPLACE_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test str_split_test
 | 
					 | 
				
			||||||
set(STR_SPLIT_TEST_SRC "str_split_test.cc")
 | 
					 | 
				
			||||||
set(STR_SPLIT_TEST_PUBLIC_LIBRARIES absl::strings absl::base absl_internal_throw_delegate)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    str_split_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${STR_SPLIT_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${STR_SPLIT_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test ostringstream_test
 | 
					 | 
				
			||||||
set(OSTRINGSTREAM_TEST_SRC "internal/ostringstream_test.cc")
 | 
					 | 
				
			||||||
set(OSTRINGSTREAM_TEST_PUBLIC_LIBRARIES absl::strings)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    ostringstream_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${OSTRINGSTREAM_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${OSTRINGSTREAM_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test resize_uninitialized_test
 | 
					 | 
				
			||||||
set(RESIZE_UNINITIALIZED_TEST_SRC "internal/resize_uninitialized_test.cc")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    resize_uninitialized_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${RESIZE_UNINITIALIZED_TEST_SRC}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test str_join_test
 | 
					 | 
				
			||||||
set(STR_JOIN_TEST_SRC "str_join_test.cc")
 | 
					 | 
				
			||||||
set(STR_JOIN_TEST_PUBLIC_LIBRARIES absl::strings)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    str_join_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${STR_JOIN_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${STR_JOIN_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test str_cat_test
 | 
					 | 
				
			||||||
set(STR_CAT_TEST_SRC "str_cat_test.cc")
 | 
					 | 
				
			||||||
set(STR_CAT_TEST_PUBLIC_LIBRARIES absl::strings)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    str_cat_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${STR_CAT_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${STR_CAT_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test numbers_test
 | 
					 | 
				
			||||||
set(NUMBERS_TEST_SRC "numbers_test.cc")
 | 
					 | 
				
			||||||
set(NUMBERS_TEST_PUBLIC_LIBRARIES absl::strings pow10_helper)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    numbers_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${NUMBERS_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${NUMBERS_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test strip_test
 | 
					 | 
				
			||||||
set(STRIP_TEST_SRC "strip_test.cc")
 | 
					 | 
				
			||||||
set(STRIP_TEST_PUBLIC_LIBRARIES absl::strings)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    strip_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${STRIP_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${STRIP_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test char_map_test
 | 
					 | 
				
			||||||
set(CHAR_MAP_TEST_SRC "internal/char_map_test.cc")
 | 
					 | 
				
			||||||
set(CHAR_MAP_TEST_PUBLIC_LIBRARIES absl::strings)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    char_map_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${CHAR_MAP_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${CHAR_MAP_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test charconv_test
 | 
					 | 
				
			||||||
set(CHARCONV_TEST_SRC "charconv_test.cc")
 | 
					 | 
				
			||||||
set(CHARCONV_TEST_PUBLIC_LIBRARIES absl::strings absl::str_format pow10_helper)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    charconv_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${CHARCONV_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${CHARCONV_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test charconv_parse_test
 | 
					 | 
				
			||||||
set(CHARCONV_PARSE_TEST_SRC "internal/charconv_parse_test.cc")
 | 
					 | 
				
			||||||
set(CHARCONV_PARSE_TEST_PUBLIC_LIBRARIES absl::strings)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    charconv_parse_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${CHARCONV_PARSE_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${CHARCONV_PARSE_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test charconv_bigint_test
 | 
					 | 
				
			||||||
set(CHARCONV_BIGINT_TEST_SRC "internal/charconv_bigint_test.cc")
 | 
					 | 
				
			||||||
set(CHARCONV_BIGINT_TEST_PUBLIC_LIBRARIES absl::strings)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    charconv_bigint_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    ${CHARCONV_BIGINT_TEST_SRC}
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    ${CHARCONV_BIGINT_TEST_PUBLIC_LIBRARIES}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
# test str_format_test
 | 
					 | 
				
			||||||
absl_test(
 | 
					 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    str_format_test
 | 
					    str_format_test
 | 
				
			||||||
  SOURCES
 | 
					  SRCS
 | 
				
			||||||
    "str_format_test.cc"
 | 
					    "str_format_test.cc"
 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					  COPTS
 | 
				
			||||||
    absl::base
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
    absl::str_format
 | 
					    absl::str_format
 | 
				
			||||||
    absl::strings
 | 
					    absl::strings
 | 
				
			||||||
 | 
					    absl::core_headers
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# test str_format_bind_test
 | 
					absl_cc_test(
 | 
				
			||||||
absl_test(
 | 
					  NAME
 | 
				
			||||||
  TARGET
 | 
					    str_format_extension_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "internal/str_format/extension_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::str_format
 | 
				
			||||||
 | 
					    absl::str_format_internal
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    str_format_arg_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "internal/str_format/arg_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::str_format
 | 
				
			||||||
 | 
					    absl::str_format_internal
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
    str_format_bind_test
 | 
					    str_format_bind_test
 | 
				
			||||||
  SOURCES
 | 
					  SRCS
 | 
				
			||||||
    "internal/str_format/bind_test.cc"
 | 
					    "internal/str_format/bind_test.cc"
 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					  COPTS
 | 
				
			||||||
    str_format_internal
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::str_format_internal
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# test str_format_checker_test
 | 
					absl_cc_test(
 | 
				
			||||||
absl_test(
 | 
					  NAME
 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    str_format_checker_test
 | 
					    str_format_checker_test
 | 
				
			||||||
  SOURCES
 | 
					  SRCS
 | 
				
			||||||
    "internal/str_format/checker_test.cc"
 | 
					    "internal/str_format/checker_test.cc"
 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
    absl::str_format
 | 
					    absl::str_format
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# test str_format_convert_test
 | 
					absl_cc_test(
 | 
				
			||||||
absl_test(
 | 
					  NAME
 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    str_format_convert_test
 | 
					    str_format_convert_test
 | 
				
			||||||
  SOURCES
 | 
					  SRCS
 | 
				
			||||||
    "internal/str_format/convert_test.cc"
 | 
					    "internal/str_format/convert_test.cc"
 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					  COPTS
 | 
				
			||||||
    str_format_internal
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
    absl::numeric
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::str_format_internal
 | 
				
			||||||
 | 
					    absl::int128
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# test str_format_output_test
 | 
					absl_cc_test(
 | 
				
			||||||
absl_test(
 | 
					  NAME
 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    str_format_output_test
 | 
					    str_format_output_test
 | 
				
			||||||
  SOURCES
 | 
					  SRCS
 | 
				
			||||||
    "internal/str_format/output_test.cc"
 | 
					    "internal/str_format/output_test.cc"
 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					  COPTS
 | 
				
			||||||
    str_format_extension_internal
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::str_format_internal
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# test str_format_parser_test
 | 
					absl_cc_test(
 | 
				
			||||||
absl_test(
 | 
					  NAME
 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    str_format_parser_test
 | 
					    str_format_parser_test
 | 
				
			||||||
  SOURCES
 | 
					  SRCS
 | 
				
			||||||
    "internal/str_format/parser_test.cc"
 | 
					    "internal/str_format/parser_test.cc"
 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					  COPTS
 | 
				
			||||||
    str_format_internal
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
    absl::base
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::str_format_internal
 | 
				
			||||||
 | 
					    absl::core_headers
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# test pow10_helper_test
 | 
					absl_cc_library(
 | 
				
			||||||
absl_test(
 | 
					  NAME
 | 
				
			||||||
  TARGET
 | 
					 | 
				
			||||||
    pow10_helper_test
 | 
					 | 
				
			||||||
  SOURCES
 | 
					 | 
				
			||||||
    "internal/pow10_helper_test.cc"
 | 
					 | 
				
			||||||
  PUBLIC_LIBRARIES
 | 
					 | 
				
			||||||
    pow10_helper
 | 
					    pow10_helper
 | 
				
			||||||
    absl::str_format
 | 
					  HDRS
 | 
				
			||||||
 | 
					    "internal/pow10_helper.h"
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "internal/pow10_helper.cc"
 | 
				
			||||||
 | 
					  TESTONLY
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					absl_cc_test(
 | 
				
			||||||
 | 
					  NAME
 | 
				
			||||||
 | 
					    pow10_helper_test
 | 
				
			||||||
 | 
					  SRCS
 | 
				
			||||||
 | 
					    "internal/pow10_helper_test.cc"
 | 
				
			||||||
 | 
					  COPTS
 | 
				
			||||||
 | 
					    ${ABSL_TEST_COPTS}
 | 
				
			||||||
 | 
					  DEPS
 | 
				
			||||||
 | 
					    absl::pow10_helper
 | 
				
			||||||
 | 
					    absl::str_format
 | 
				
			||||||
 | 
					    gmock_main
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,6 +18,7 @@
 | 
				
			||||||
#define ABSL_STRINGS_INTERNAL_RESIZE_UNINITIALIZED_H_
 | 
					#define ABSL_STRINGS_INTERNAL_RESIZE_UNINITIALIZED_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <string>
 | 
					#include <string>
 | 
				
			||||||
 | 
					#include <type_traits>
 | 
				
			||||||
#include <utility>
 | 
					#include <utility>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "absl/base/port.h"
 | 
					#include "absl/base/port.h"
 | 
				
			||||||
| 
						 | 
					@ -27,22 +28,24 @@ namespace absl {
 | 
				
			||||||
namespace strings_internal {
 | 
					namespace strings_internal {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Is a subclass of true_type or false_type, depending on whether or not
 | 
					// Is a subclass of true_type or false_type, depending on whether or not
 | 
				
			||||||
// T has a resize_uninitialized member.
 | 
					// T has a __resize_default_init member.
 | 
				
			||||||
template <typename T, typename = void>
 | 
					template <typename string_type, typename = void>
 | 
				
			||||||
struct HasResizeUninitialized : std::false_type {};
 | 
					struct ResizeUninitializedTraits {
 | 
				
			||||||
template <typename T>
 | 
					  using HasMember = std::false_type;
 | 
				
			||||||
struct HasResizeUninitialized<
 | 
					  static void Resize(string_type* s, size_t new_size) { s->resize(new_size); }
 | 
				
			||||||
    T, absl::void_t<decltype(std::declval<T>().resize_uninitialized(237))>>
 | 
					};
 | 
				
			||||||
    : std::true_type {};
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// __resize_default_init is provided by libc++ >= 8.0 and by Google's internal
 | 
				
			||||||
 | 
					// ::string implementation.
 | 
				
			||||||
template <typename string_type>
 | 
					template <typename string_type>
 | 
				
			||||||
void ResizeUninit(string_type* s, size_t new_size, std::true_type) {
 | 
					struct ResizeUninitializedTraits<
 | 
				
			||||||
  s->resize_uninitialized(new_size);
 | 
					    string_type, absl::void_t<decltype(std::declval<string_type&>()
 | 
				
			||||||
}
 | 
					                                           .__resize_default_init(237))> > {
 | 
				
			||||||
template <typename string_type>
 | 
					  using HasMember = std::true_type;
 | 
				
			||||||
void ResizeUninit(string_type* s, size_t new_size, std::false_type) {
 | 
					  static void Resize(string_type* s, size_t new_size) {
 | 
				
			||||||
  s->resize(new_size);
 | 
					    s->__resize_default_init(new_size);
 | 
				
			||||||
}
 | 
					  }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Returns true if the string implementation supports a resize where
 | 
					// Returns true if the string implementation supports a resize where
 | 
				
			||||||
// the new characters added to the string are left untouched.
 | 
					// the new characters added to the string are left untouched.
 | 
				
			||||||
| 
						 | 
					@ -51,7 +54,7 @@ void ResizeUninit(string_type* s, size_t new_size, std::false_type) {
 | 
				
			||||||
// the previous function.)
 | 
					// the previous function.)
 | 
				
			||||||
template <typename string_type>
 | 
					template <typename string_type>
 | 
				
			||||||
inline constexpr bool STLStringSupportsNontrashingResize(string_type*) {
 | 
					inline constexpr bool STLStringSupportsNontrashingResize(string_type*) {
 | 
				
			||||||
  return HasResizeUninitialized<string_type>();
 | 
					  return ResizeUninitializedTraits<string_type>::HasMember::value;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Like str->resize(new_size), except any new characters added to "*str" as a
 | 
					// Like str->resize(new_size), except any new characters added to "*str" as a
 | 
				
			||||||
| 
						 | 
					@ -60,7 +63,7 @@ inline constexpr bool STLStringSupportsNontrashingResize(string_type*) {
 | 
				
			||||||
// store of the string with known data. Uses a Google extension to ::string.
 | 
					// store of the string with known data. Uses a Google extension to ::string.
 | 
				
			||||||
template <typename string_type, typename = void>
 | 
					template <typename string_type, typename = void>
 | 
				
			||||||
inline void STLStringResizeUninitialized(string_type* s, size_t new_size) {
 | 
					inline void STLStringResizeUninitialized(string_type* s, size_t new_size) {
 | 
				
			||||||
  ResizeUninit(s, new_size, HasResizeUninitialized<string_type>());
 | 
					  ResizeUninitializedTraits<string_type>::Resize(s, new_size);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}  // namespace strings_internal
 | 
					}  // namespace strings_internal
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,44 +24,44 @@ struct resizable_string {
 | 
				
			||||||
  void resize(size_t) { resize_call_count += 1; }
 | 
					  void resize(size_t) { resize_call_count += 1; }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int resize_uninitialized_call_count = 0;
 | 
					int resize_default_init_call_count = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct resize_uninitializable_string {
 | 
					struct resize_default_init_string {
 | 
				
			||||||
  void resize(size_t) { resize_call_count += 1; }
 | 
					  void resize(size_t) { resize_call_count += 1; }
 | 
				
			||||||
  void resize_uninitialized(size_t) { resize_uninitialized_call_count += 1; }
 | 
					  void __resize_default_init(size_t) { resize_default_init_call_count += 1; }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST(ResizeUninit, WithAndWithout) {
 | 
					TEST(ResizeUninit, WithAndWithout) {
 | 
				
			||||||
  resize_call_count = 0;
 | 
					  resize_call_count = 0;
 | 
				
			||||||
  resize_uninitialized_call_count = 0;
 | 
					  resize_default_init_call_count = 0;
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    resizable_string rs;
 | 
					    resizable_string rs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    EXPECT_EQ(resize_call_count, 0);
 | 
					    EXPECT_EQ(resize_call_count, 0);
 | 
				
			||||||
    EXPECT_EQ(resize_uninitialized_call_count, 0);
 | 
					    EXPECT_EQ(resize_default_init_call_count, 0);
 | 
				
			||||||
    EXPECT_FALSE(
 | 
					    EXPECT_FALSE(
 | 
				
			||||||
        absl::strings_internal::STLStringSupportsNontrashingResize(&rs));
 | 
					        absl::strings_internal::STLStringSupportsNontrashingResize(&rs));
 | 
				
			||||||
    EXPECT_EQ(resize_call_count, 0);
 | 
					    EXPECT_EQ(resize_call_count, 0);
 | 
				
			||||||
    EXPECT_EQ(resize_uninitialized_call_count, 0);
 | 
					    EXPECT_EQ(resize_default_init_call_count, 0);
 | 
				
			||||||
    absl::strings_internal::STLStringResizeUninitialized(&rs, 237);
 | 
					    absl::strings_internal::STLStringResizeUninitialized(&rs, 237);
 | 
				
			||||||
    EXPECT_EQ(resize_call_count, 1);
 | 
					    EXPECT_EQ(resize_call_count, 1);
 | 
				
			||||||
    EXPECT_EQ(resize_uninitialized_call_count, 0);
 | 
					    EXPECT_EQ(resize_default_init_call_count, 0);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  resize_call_count = 0;
 | 
					  resize_call_count = 0;
 | 
				
			||||||
  resize_uninitialized_call_count = 0;
 | 
					  resize_default_init_call_count = 0;
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    resize_uninitializable_string rus;
 | 
					    resize_default_init_string rus;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    EXPECT_EQ(resize_call_count, 0);
 | 
					    EXPECT_EQ(resize_call_count, 0);
 | 
				
			||||||
    EXPECT_EQ(resize_uninitialized_call_count, 0);
 | 
					    EXPECT_EQ(resize_default_init_call_count, 0);
 | 
				
			||||||
    EXPECT_TRUE(
 | 
					    EXPECT_TRUE(
 | 
				
			||||||
        absl::strings_internal::STLStringSupportsNontrashingResize(&rus));
 | 
					        absl::strings_internal::STLStringSupportsNontrashingResize(&rus));
 | 
				
			||||||
    EXPECT_EQ(resize_call_count, 0);
 | 
					    EXPECT_EQ(resize_call_count, 0);
 | 
				
			||||||
    EXPECT_EQ(resize_uninitialized_call_count, 0);
 | 
					    EXPECT_EQ(resize_default_init_call_count, 0);
 | 
				
			||||||
    absl::strings_internal::STLStringResizeUninitialized(&rus, 237);
 | 
					    absl::strings_internal::STLStringResizeUninitialized(&rus, 237);
 | 
				
			||||||
    EXPECT_EQ(resize_call_count, 0);
 | 
					    EXPECT_EQ(resize_call_count, 0);
 | 
				
			||||||
    EXPECT_EQ(resize_uninitialized_call_count, 1);
 | 
					    EXPECT_EQ(resize_default_init_call_count, 1);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,15 +18,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace absl {
 | 
					namespace absl {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace {
 | 
					 | 
				
			||||||
bool CaseEqual(absl::string_view piece1, absl::string_view piece2) {
 | 
					 | 
				
			||||||
  return (piece1.size() == piece2.size() &&
 | 
					 | 
				
			||||||
          0 == strings_internal::memcasecmp(piece1.data(), piece2.data(),
 | 
					 | 
				
			||||||
                                            piece1.size()));
 | 
					 | 
				
			||||||
  // memcasecmp uses ascii_tolower().
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
}  // namespace
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bool EqualsIgnoreCase(absl::string_view piece1, absl::string_view piece2) {
 | 
					bool EqualsIgnoreCase(absl::string_view piece1, absl::string_view piece2) {
 | 
				
			||||||
  return (piece1.size() == piece2.size() &&
 | 
					  return (piece1.size() == piece2.size() &&
 | 
				
			||||||
          0 == absl::strings_internal::memcasecmp(piece1.data(), piece2.data(),
 | 
					          0 == absl::strings_internal::memcasecmp(piece1.data(), piece2.data(),
 | 
				
			||||||
| 
						 | 
					@ -36,12 +27,12 @@ bool EqualsIgnoreCase(absl::string_view piece1, absl::string_view piece2) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool StartsWithIgnoreCase(absl::string_view text, absl::string_view prefix) {
 | 
					bool StartsWithIgnoreCase(absl::string_view text, absl::string_view prefix) {
 | 
				
			||||||
  return (text.size() >= prefix.size()) &&
 | 
					  return (text.size() >= prefix.size()) &&
 | 
				
			||||||
         CaseEqual(text.substr(0, prefix.size()), prefix);
 | 
					         EqualsIgnoreCase(text.substr(0, prefix.size()), prefix);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool EndsWithIgnoreCase(absl::string_view text, absl::string_view suffix) {
 | 
					bool EndsWithIgnoreCase(absl::string_view text, absl::string_view suffix) {
 | 
				
			||||||
  return (text.size() >= suffix.size()) &&
 | 
					  return (text.size() >= suffix.size()) &&
 | 
				
			||||||
         CaseEqual(text.substr(text.size() - suffix.size()), suffix);
 | 
					         EqualsIgnoreCase(text.substr(text.size() - suffix.size()), suffix);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}  // namespace absl
 | 
					}  // namespace absl
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue