diff options
author | Phoebe Liang <phoebeliang@google.com> | 2023-08-01 21:01:00 (GMT) |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-08-01 21:01:41 (GMT) |
commit | e7fd109b536a8e22cc9e8aad84b35221c3d36042 (patch) | |
tree | 3abe671088a5087bff4f4b21cc416e6fb9ccc22a /googletest/test | |
parent | 717d8ab5e0f7d925ad3076dc53aebe7a7bcb8aaf (diff) | |
download | googletest-e7fd109b536a8e22cc9e8aad84b35221c3d36042.zip googletest-e7fd109b536a8e22cc9e8aad84b35221c3d36042.tar.gz googletest-e7fd109b536a8e22cc9e8aad84b35221c3d36042.tar.bz2 |
Make testing::Message support streamed AbslStringify values
This allows types that provide an AbslStringify definition to be streamed into GoogleTest macros.
PiperOrigin-RevId: 552914482
Change-Id: I5fb386980d4d24873f95f0a8ef83067a6a3c86ac
Diffstat (limited to 'googletest/test')
-rw-r--r-- | googletest/test/googletest-message-test.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/googletest/test/googletest-message-test.cc b/googletest/test/googletest-message-test.cc index 54e9d43..bf1f094 100644 --- a/googletest/test/googletest-message-test.cc +++ b/googletest/test/googletest-message-test.cc @@ -36,10 +36,26 @@ #include "gtest/gtest-message.h" #include "gtest/gtest.h" +#ifdef GTEST_HAS_ABSL +#include "absl/strings/str_format.h" +#endif // GTEST_HAS_ABSL + namespace { using ::testing::Message; +#ifdef GTEST_HAS_ABSL +struct AbslStringifiablePoint { + template <typename Sink> + friend void AbslStringify(Sink& sink, const AbslStringifiablePoint& p) { + absl::Format(&sink, "(%d, %d)", p.x, p.y); + } + + int x; + int y; +}; +#endif // GTEST_HAS_ABSL + // Tests the testing::Message class // Tests the default constructor. @@ -128,6 +144,13 @@ TEST(MessageTest, StreamsInt) { EXPECT_EQ("123", (Message() << 123).GetString()); } +#ifdef GTEST_HAS_ABSL +// Tests streaming a type with an AbslStringify definition. +TEST(MessageTest, StreamsAbslStringify) { + EXPECT_EQ("(1, 2)", (Message() << AbslStringifiablePoint{1, 2}).GetString()); +} +#endif // GTEST_HAS_ABSL + // Tests that basic IO manipulators (endl, ends, and flush) can be // streamed to Message. TEST(MessageTest, StreamsBasicIoManip) { |