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
This commit is contained in:
committed by
Copybara-Service
parent
717d8ab5e0
commit
e7fd109b53
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user