40 #include "absl/strings/str_format.h"
41 #endif // GTEST_HAS_ABSL
45 using ::testing::Message;
48 struct AbslStringifiablePoint {
49 template <
typename Sink>
50 friend void AbslStringify(Sink& sink,
const AbslStringifiablePoint&
p) {
51 absl::Format(&sink,
"(%d, %d)", p.x, p.y);
57 #endif // GTEST_HAS_ABSL
62 TEST(MessageTest, DefaultConstructor) {
68 TEST(MessageTest, CopyConstructor) {
69 const Message msg1(
"Hello");
70 const Message msg2(msg1);
75 TEST(MessageTest, ConstructsFromCString) {
81 TEST(MessageTest, StreamsFloat) {
82 const std::string s = (Message() << 1.23456F <<
" " << 2.34567F).GetString();
89 TEST(MessageTest, StreamsDouble) {
91 (Message() << 1260570880.4555497 <<
" " << 1260572265.1954534)
99 TEST(MessageTest, StreamsPointer) {
102 EXPECT_NE(
"(null)", (Message() << p).GetString());
106 TEST(MessageTest, StreamsNullPointer) {
108 EXPECT_EQ(
"(null)", (Message() << p).GetString());
112 TEST(MessageTest, StreamsCString) {
113 EXPECT_EQ(
"Foo", (Message() <<
"Foo").GetString());
117 TEST(MessageTest, StreamsNullCString) {
119 EXPECT_EQ(
"(null)", (Message() << p).GetString());
123 TEST(MessageTest, StreamsString) {
124 const ::std::string str(
"Hello");
125 EXPECT_EQ(
"Hello", (Message() << str).GetString());
129 TEST(MessageTest, StreamsStringWithEmbeddedNUL) {
130 const char char_array_with_nul[] =
"Here's a NUL\0 and some more string";
131 const ::std::string string_with_nul(char_array_with_nul,
132 sizeof(char_array_with_nul) - 1);
133 EXPECT_EQ(
"Here's a NUL\\0 and some more string",
134 (Message() << string_with_nul).GetString());
138 TEST(MessageTest, StreamsNULChar) {
139 EXPECT_EQ(
"\\0", (Message() <<
'\0').GetString());
143 TEST(MessageTest, StreamsInt) {
144 EXPECT_EQ(
"123", (Message() << 123).GetString());
147 #ifdef GTEST_HAS_ABSL
149 TEST(MessageTest, StreamsAbslStringify) {
150 EXPECT_EQ(
"(1, 2)", (Message() << AbslStringifiablePoint{1, 2}).GetString());
152 #endif // GTEST_HAS_ABSL
156 TEST(MessageTest, StreamsBasicIoManip) {
158 "Line 1.\nA NUL char \\0 in line 2.",
159 (Message() <<
"Line 1." << std::endl
160 <<
"A NUL char " << std::ends << std::flush <<
" in line 2.")
165 TEST(MessageTest, GetString) {
172 TEST(MessageTest, StreamsToOStream) {
173 Message msg(
"Hello");
174 ::std::stringstream ss;
180 TEST(MessageTest, DoesNotTakeUpMuchStackSpace) {
#define EXPECT_PRED_FORMAT2(pred_format, v1, v2)
#define EXPECT_LE(val1, val2)
#define EXPECT_NE(val1, val2)
#define TEST(test_suite_name, test_name)
GTEST_API_ AssertionResult IsSubstring(const char *needle_expr, const char *haystack_expr, const char *needle, const char *haystack)
#define EXPECT_EQ(val1, val2)
GTEST_API_ std::string StringStreamToString(::std::stringstream *stream)