deps: update googletest to 49495eacfdbda3f4b6ba219923fedbb2e3f99376 · nodejs/node@a39ad67 · GitHub
Skip to content

Commit a39ad67

Browse files
nodejs-github-botaduh95
authored andcommitted
deps: update googletest to 49495eacfdbda3f4b6ba219923fedbb2e3f99376
PR-URL: #65317 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
1 parent 24a76e1 commit a39ad67

3 files changed

Lines changed: 90 additions & 21 deletions

File tree

deps/googletest/include/gtest/gtest-printers.h

Lines changed: 4 additions & 7 deletions

deps/googletest/include/gtest/internal/gtest-port.h

Lines changed: 62 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -500,22 +500,71 @@ typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION;
500500
#endif // defined(_MSC_VER) || defined(__BORLANDC__)
501501
#endif // GTEST_HAS_EXCEPTIONS
502502

503-
#ifndef GTEST_HAS_STD_WSTRING
504-
// The user didn't tell us whether ::std::wstring is available, so we need
505-
// to figure it out.
503+
// 1. Calculate default GTEST_HAS_STD_WSTRING values based on STL capabilities.
504+
#if defined(_MSVC_STL_VERSION)
505+
// Microsoft's STL implementation always supports ::std::wstring.
506+
#define GTEST_HAS_STD_WSTRING_DEFAULT 1
507+
508+
#elif defined(_LIBCPP_VERSION)
509+
// Modern libc++ always defines _LIBCPP_HAS_WIDE_CHARACTERS; its value
510+
// determines whether wide characters are supported.
511+
// Older libc++ omits a definition for _LIBCPP_HAS_NO_WIDE_CHARACTERS when wide
512+
// characters are supported.
513+
#if (defined(_LIBCPP_HAS_WIDE_CHARACTERS) && !_LIBCPP_HAS_WIDE_CHARACTERS) || \
514+
defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS)
515+
#define GTEST_HAS_STD_WSTRING_DEFAULT 0
516+
#else
517+
#define GTEST_HAS_STD_WSTRING_DEFAULT 1
518+
#endif
519+
520+
#elif defined(__GLIBCXX__)
521+
#if defined(_GLIBCXX_USE_WCHAR_T) && _GLIBCXX_USE_WCHAR_T
522+
#define GTEST_HAS_STD_WSTRING_DEFAULT 1
523+
#else
524+
#define GTEST_HAS_STD_WSTRING_DEFAULT 0
525+
#endif
526+
527+
#else
528+
// Unknown standard library implementation; fall back looking at the OS.
529+
//
530+
// Always let the user override the defaults in this case; they might have more
531+
// information about what's supported than we do.
532+
#if defined(GTEST_OS_LINUX_ANDROID)
533+
// Android started supporting std::wstring with API Level 21 (Lollipop).
534+
#define GTEST_HAS_STD_WSTRING_DEFAULT (__ANDROID_API__ >= 21)
535+
// The following platforms are known not to support ::std::wstring; assume it's
536+
// supported on all others.
537+
//
506538
// Cygwin 1.7 and below doesn't support ::std::wstring.
507-
// Solaris' libc++ doesn't support it either. Android has
508-
// no support for it at least as recent as Froyo (2.2).
509-
#if (!(defined(GTEST_OS_LINUX_ANDROID) || defined(GTEST_OS_CYGWIN) || \
510-
defined(GTEST_OS_SOLARIS) || defined(GTEST_OS_HAIKU) || \
511-
defined(GTEST_OS_ESP32) || defined(GTEST_OS_ESP8266) || \
512-
defined(GTEST_OS_XTENSA) || defined(GTEST_OS_QURT) || \
513-
defined(GTEST_OS_NXP_QN9090) || defined(GTEST_OS_NRF52)))
514-
#define GTEST_HAS_STD_WSTRING 1
539+
// Solaris' libc++ doesn't support it either.
540+
#elif defined(GTEST_OS_CYGWIN) || defined(GTEST_OS_SOLARIS) || \
541+
defined(GTEST_OS_HAIKU) || defined(GTEST_OS_ESP32) || \
542+
defined(GTEST_OS_ESP8266) || defined(GTEST_OS_XTENSA) || \
543+
defined(GTEST_OS_QURT) || defined(GTEST_OS_NXP_QN9090) || \
544+
defined(GTEST_OS_NRF52)
545+
#define GTEST_HAS_STD_WSTRING_DEFAULT 0
515546
#else
516-
#define GTEST_HAS_STD_WSTRING 0
547+
#define GTEST_HAS_STD_WSTRING_DEFAULT 1
548+
#endif
549+
#endif
550+
551+
// 2. Validate explicit user overrides (if user passed -DGTEST_HAS_*=1) against
552+
// what the standard library implementation tells us it supports.
553+
#if defined(GTEST_HAS_STD_WSTRING) && GTEST_HAS_STD_WSTRING
554+
#if defined(_LIBCPP_VERSION) && \
555+
((defined(_LIBCPP_HAS_WIDE_CHARACTERS) && !_LIBCPP_HAS_WIDE_CHARACTERS) || \
556+
defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS))
557+
#error Cannot explicitly enable GTEST_HAS_STD_WSTRING without libc++ wide character support.
558+
#elif defined(__GLIBCXX__) && \
559+
!(defined(_GLIBCXX_USE_WCHAR_T) && _GLIBCXX_USE_WCHAR_T)
560+
#error Cannot explicitly enable GTEST_HAS_STD_WSTRING without libstdc++ wide character support.
561+
#endif
562+
#endif
563+
564+
// 3. Set final values if not explicitly overridden by user
565+
#if !defined(GTEST_HAS_STD_WSTRING)
566+
#define GTEST_HAS_STD_WSTRING GTEST_HAS_STD_WSTRING_DEFAULT
517567
#endif
518-
#endif // GTEST_HAS_STD_WSTRING
519568

520569
#ifndef GTEST_HAS_FILE_SYSTEM
521570
// Most platforms support a file system.

deps/googletest/src/gtest-printers.cc

Lines changed: 24 additions & 1 deletion

0 commit comments

Comments
 (0)