mirror of
https://github.com/google/googletest.git
synced 2025-11-30 16:17:28 -05:00
Makes all container matchers work with (possibly multi-dimensional) native arrays; makes Contains() accept a matcher; adds Value(x, m); improves gmock doctor to diagnose the Type in Template Base disease.
This commit is contained in:
@@ -154,10 +154,13 @@ using ::std::tr1::tuple;
|
||||
using ::std::vector;
|
||||
using ::testing::ElementsAre;
|
||||
using ::testing::StartsWith;
|
||||
using ::testing::internal::NativeArray;
|
||||
using ::testing::internal::Strings;
|
||||
using ::testing::internal::UniversalTersePrint;
|
||||
using ::testing::internal::UniversalPrint;
|
||||
using ::testing::internal::UniversalTersePrintTupleFieldsToStrings;
|
||||
using ::testing::internal::UniversalPrinter;
|
||||
using ::testing::internal::kReference;
|
||||
using ::testing::internal::string;
|
||||
|
||||
#if GTEST_OS_WINDOWS
|
||||
@@ -786,6 +789,17 @@ TEST(PrintStlContainerTest, NestedContainer) {
|
||||
EXPECT_EQ("{ { 1, 2 }, { 3, 4, 5 } }", Print(v));
|
||||
}
|
||||
|
||||
TEST(PrintStlContainerTest, OneDimensionalNativeArray) {
|
||||
const int a[] = { 1, 2, 3 };
|
||||
NativeArray<int> b(a, kReference);
|
||||
EXPECT_EQ("{ 1, 2, 3 }", Print(b));
|
||||
}
|
||||
|
||||
TEST(PrintStlContainerTest, TwoDimensionalNativeArray) {
|
||||
const int a[][3] = { { 1, 2, 3 }, { 4, 5, 6 } };
|
||||
NativeArray<int[3]> b(a, kReference);
|
||||
EXPECT_EQ("{ { 1, 2, 3 }, { 4, 5, 6 } }", Print(b));
|
||||
}
|
||||
|
||||
// Tests printing tuples.
|
||||
|
||||
@@ -1013,6 +1027,37 @@ TEST(UniversalTersePrintTest, WorksForCString) {
|
||||
EXPECT_EQ("NULL", ss3.str());
|
||||
}
|
||||
|
||||
TEST(UniversalPrintTest, WorksForNonReference) {
|
||||
::std::stringstream ss;
|
||||
UniversalPrint(123, &ss);
|
||||
EXPECT_EQ("123", ss.str());
|
||||
}
|
||||
|
||||
TEST(UniversalPrintTest, WorksForReference) {
|
||||
const int& n = 123;
|
||||
::std::stringstream ss;
|
||||
UniversalPrint(n, &ss);
|
||||
EXPECT_EQ("123", ss.str());
|
||||
}
|
||||
|
||||
TEST(UniversalPrintTest, WorksForCString) {
|
||||
const char* s1 = "abc";
|
||||
::std::stringstream ss1;
|
||||
UniversalPrint(s1, &ss1);
|
||||
EXPECT_EQ(PrintPointer(s1) + " pointing to \"abc\"", string(ss1.str()));
|
||||
|
||||
char* s2 = const_cast<char*>(s1);
|
||||
::std::stringstream ss2;
|
||||
UniversalPrint(s2, &ss2);
|
||||
EXPECT_EQ(PrintPointer(s2) + " pointing to \"abc\"", string(ss2.str()));
|
||||
|
||||
const char* s3 = NULL;
|
||||
::std::stringstream ss3;
|
||||
UniversalPrint(s3, &ss3);
|
||||
EXPECT_EQ("NULL", ss3.str());
|
||||
}
|
||||
|
||||
|
||||
TEST(UniversalTersePrintTupleFieldsToStringsTest, PrintsEmptyTuple) {
|
||||
EXPECT_THAT(UniversalTersePrintTupleFieldsToStrings(make_tuple()),
|
||||
ElementsAre());
|
||||
|
||||
Reference in New Issue
Block a user