diff options
author | drgler <daniel.kruegler@gmail.com> | 2017-08-09 17:08:32 (GMT) |
---|---|---|
committer | drgler <daniel.kruegler@gmail.com> | 2017-08-10 19:18:22 (GMT) |
commit | 07bba78a5fc91f7ea8e4321fff743846167fa95f (patch) | |
tree | fd862cfa077f7f3f3ea5287858a240f924dde820 /googletest | |
parent | 71ca4bae1085d7f2adefcbd16b0b7cebb81d540f (diff) | |
parent | 484ec91c2274f7b06e6a7736060be04fe35998bd (diff) | |
download | googletest-07bba78a5fc91f7ea8e4321fff743846167fa95f.zip googletest-07bba78a5fc91f7ea8e4321fff743846167fa95f.tar.gz googletest-07bba78a5fc91f7ea8e4321fff743846167fa95f.tar.bz2 |
Merge branch 'master' of github.com:Dani-Hub/googletest
Diffstat (limited to 'googletest')
-rw-r--r-- | googletest/test/gtest-printers_test.cc | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/googletest/test/gtest-printers_test.cc b/googletest/test/gtest-printers_test.cc index b0a8341..545c1ba 100644 --- a/googletest/test/gtest-printers_test.cc +++ b/googletest/test/gtest-printers_test.cc @@ -187,6 +187,27 @@ inline ::std::ostream& operator<<(::std::ostream& os, return os << "StreamableTemplateInFoo: " << x.value(); } +// A user-defined streamable but recursivly-defined container type in +// a user namespace, it mimics therefore std::filesystem::path or +// boost::filesystem::path. +class PathLike { + public: + struct iterator + { + typedef PathLike value_type; + }; + typedef iterator const_iterator; + + iterator begin() const { return iterator(); } + iterator end() const { return iterator(); } + + friend + ::std::ostream& operator<<(::std::ostream& os, const PathLike& p) + { + return os << "Streamable-PathLike"; + } +}; + } // namespace foo namespace testing { @@ -1161,6 +1182,13 @@ TEST(PrintStreamableTypeTest, TemplateTypeInUserNamespace) { Print(::foo::StreamableTemplateInFoo<int>())); } +// Tests printing a user-defined recursive container type that has a << +// operator. +TEST(PrintStreamableTypeTest, PathLikeInUserNamespace) { + ::foo::PathLike x; + EXPECT_EQ("Streamable-PathLike", Print(x)); +} + // Tests printing user-defined types that have a PrintTo() function. TEST(PrintPrintableTypeTest, InUserNamespace) { EXPECT_EQ("PrintableViaPrintTo: 0", |