40#include "absl/strings/str_format.h"
45using ::testing::Message;
48struct AbslStringifiablePoint {
49 template <
typename Sink>
50 friend void AbslStringify(Sink& sink,
const AbslStringifiablePoint&
p) {
51 absl::Format(&sink,
"(%d, %d)",
p.x,
p.y);
62TEST(MessageTest, DefaultConstructor) {
68TEST(MessageTest, CopyConstructor) {
69 const Message msg1(
"Hello");
70 const Message msg2(msg1);
75TEST(MessageTest, ConstructsFromCString) {
81TEST(MessageTest, StreamsFloat) {
82 const std::string s = (Message() << 1.23456F <<
" " << 2.34567F).GetString();
89TEST(MessageTest, StreamsDouble) {
91 (Message() << 1260570880.4555497 <<
" " << 1260572265.1954534)
99TEST(MessageTest, StreamsPointer) {
102 EXPECT_NE(
"(null)", (Message() <<
p).GetString());
106TEST(MessageTest, StreamsNullPointer) {
108 EXPECT_EQ(
"(null)", (Message() <<
p).GetString());
112TEST(MessageTest, StreamsCString) {
113 EXPECT_EQ(
"Foo", (Message() <<
"Foo").GetString());
117TEST(MessageTest, StreamsNullCString) {
119 EXPECT_EQ(
"(null)", (Message() <<
p).GetString());
123TEST(MessageTest, StreamsString) {
124 const ::std::string str(
"Hello");
125 EXPECT_EQ(
"Hello", (Message() << str).GetString());
129TEST(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());
138TEST(MessageTest, StreamsNULChar) {
139 EXPECT_EQ(
"\\0", (Message() <<
'\0').GetString());
143TEST(MessageTest, StreamsInt) {
144 EXPECT_EQ(
"123", (Message() << 123).GetString());
149TEST(MessageTest, StreamsAbslStringify) {
150 EXPECT_EQ(
"(1, 2)", (Message() << AbslStringifiablePoint{1, 2}).GetString());
156TEST(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.")
165TEST(MessageTest, GetString) {
172TEST(MessageTest, StreamsToOStream) {
173 Message msg(
"Hello");
174 ::std::stringstream ss;
180TEST(MessageTest, DoesNotTakeUpMuchStackSpace) {
const double y
Definition gmock-matchers-containers_test.cc:377
int x
Definition gmock-matchers-containers_test.cc:376
const char * p
Definition gmock-matchers-containers_test.cc:379
#define EXPECT_EQ(val1, val2)
Definition gtest.h:1868
#define EXPECT_NE(val1, val2)
Definition gtest.h:1870
#define TEST(test_suite_name, test_name)
Definition gtest.h:2176
#define EXPECT_LE(val1, val2)
Definition gtest.h:1872
#define EXPECT_PRED_FORMAT2(pred_format, v1, v2)
Definition gtest_pred_impl.h:143
GTEST_API_ std::string StringStreamToString(::std::stringstream *stream)
Definition gtest.cc:2216
GTEST_API_ AssertionResult IsSubstring(const char *needle_expr, const char *haystack_expr, const char *needle, const char *haystack)
Definition gtest.cc:1835