From 3b49be074d5c1340eeb447e6a8e78427051e675a Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Thu, 30 Sep 2021 10:34:43 -0400 Subject: Googletest export googletest: Add printer for {std,absl}::nullopt. PiperOrigin-RevId: 399928554 --- googletest/include/gtest/gtest-printers.h | 8 ++++++++ googletest/include/gtest/internal/gtest-port.h | 2 ++ googletest/test/googletest-printers-test.cc | 1 + 3 files changed, 11 insertions(+) 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> { } }; +template <> +class UniversalPrinter { + 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 using Optional = ::absl::optional; +inline ::absl::nullopt_t Nullopt() { return ::absl::nullopt; } } // namespace internal } // namespace testing #else @@ -2338,6 +2339,7 @@ namespace testing { namespace internal { template using Optional = ::std::optional; +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 value; EXPECT_EQ("(nullopt)", PrintToString(value)); value = {7}; -- cgit v0.12