diff options
author | Abseil Team <absl-team@google.com> | 2021-09-30 14:34:43 (GMT) |
---|---|---|
committer | CJ Johnson <johnsoncj@google.com> | 2021-09-30 23:07:32 (GMT) |
commit | 3b49be074d5c1340eeb447e6a8e78427051e675a (patch) | |
tree | eb95355ba469dc98e973ef0a4eed01ff49b0d602 | |
parent | ab36804e42d4cb85b7e7fe9946928597840684db (diff) | |
download | googletest-3b49be074d5c1340eeb447e6a8e78427051e675a.zip googletest-3b49be074d5c1340eeb447e6a8e78427051e675a.tar.gz googletest-3b49be074d5c1340eeb447e6a8e78427051e675a.tar.bz2 |
Googletest export
googletest: Add printer for {std,absl}::nullopt.
PiperOrigin-RevId: 399928554
-rw-r--r-- | googletest/include/gtest/gtest-printers.h | 8 | ||||
-rw-r--r-- | googletest/include/gtest/internal/gtest-port.h | 2 | ||||
-rw-r--r-- | googletest/test/googletest-printers-test.cc | 1 |
3 files changed, 11 insertions, 0 deletions
diff --git a/googletest/include/gtest/gtest-printers.h b/googletest/include/gtest/gtest-printers.h index 2e33df4..98d0494 100644 --- a/googletest/include/gtest/gtest-printers.h +++ b/googletest/include/gtest/gtest-printers.h @@ -742,6 +742,14 @@ class UniversalPrinter<Optional<T>> { } }; +template <> +class UniversalPrinter<decltype(Nullopt())> { + public: + static void Print(decltype(Nullopt()), ::std::ostream* os) { + *os << "(nullopt)"; + } +}; + #endif // GTEST_INTERNAL_HAS_OPTIONAL #if GTEST_INTERNAL_HAS_VARIANT diff --git a/googletest/include/gtest/internal/gtest-port.h b/googletest/include/gtest/internal/gtest-port.h index 0b42dde..790fdd8 100644 --- a/googletest/include/gtest/internal/gtest-port.h +++ b/googletest/include/gtest/internal/gtest-port.h @@ -2325,6 +2325,7 @@ namespace testing { namespace internal { template <typename T> using Optional = ::absl::optional<T>; +inline ::absl::nullopt_t Nullopt() { return ::absl::nullopt; } } // namespace internal } // namespace testing #else @@ -2338,6 +2339,7 @@ namespace testing { namespace internal { template <typename T> using Optional = ::std::optional<T>; +inline ::std::nullopt_t Nullopt() { return ::std::nullopt; } } // namespace internal } // namespace testing // The case where absl is configured NOT to alias std::optional is not diff --git a/googletest/test/googletest-printers-test.cc b/googletest/test/googletest-printers-test.cc index e1e8e1c..9c9a223 100644 --- a/googletest/test/googletest-printers-test.cc +++ b/googletest/test/googletest-printers-test.cc @@ -1873,6 +1873,7 @@ TEST_F(PrintAnyTest, NonEmpty) { #if GTEST_INTERNAL_HAS_OPTIONAL TEST(PrintOptionalTest, Basic) { + EXPECT_EQ("(nullopt)", PrintToString(internal::Nullopt())); internal::Optional<int> value; EXPECT_EQ("(nullopt)", PrintToString(value)); value = {7}; |