aboutsummaryrefslogtreecommitdiffstats
path: root/googletest/test/gtest-printers_test.cc
diff options
context:
space:
mode:
authorTanzinul Islam <t_17_7@hotmail.com>2017-09-06 01:05:24 +0100
committerTanzinul Islam <t_17_7@hotmail.com>2017-09-06 01:05:24 +0100
commit78b1ff074799c776f90a77203fcd7adc98e11736 (patch)
tree21974f2d4f0d4aeaff5a4027df84889a2619ae25 /googletest/test/gtest-printers_test.cc
parenta838de3348add7530431e8d91c8a66cc646f1888 (diff)
parent857ddeadebe4aa75efcee728651d0947a5a1065a (diff)
downloadgoogletest-78b1ff074799c776f90a77203fcd7adc98e11736.tar.gz
googletest-78b1ff074799c776f90a77203fcd7adc98e11736.tar.bz2
googletest-78b1ff074799c776f90a77203fcd7adc98e11736.zip
Merge branch 'master' into fix_death_test_child_mingw_wer_issue1116
Diffstat (limited to 'googletest/test/gtest-printers_test.cc')
-rw-r--r--googletest/test/gtest-printers_test.cc32
1 files changed, 32 insertions, 0 deletions
diff --git a/googletest/test/gtest-printers_test.cc b/googletest/test/gtest-printers_test.cc
index b0a83410..487d3cb3 100644
--- a/googletest/test/gtest-printers_test.cc
+++ b/googletest/test/gtest-printers_test.cc
@@ -187,6 +187,29 @@ 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;
+
+ PathLike() {}
+
+ iterator begin() const { return iterator(); }
+ iterator end() const { return iterator(); }
+
+ friend
+ ::std::ostream& operator<<(::std::ostream& os, const PathLike&)
+ {
+ return os << "Streamable-PathLike";
+ }
+};
+
} // namespace foo
namespace testing {
@@ -1161,6 +1184,15 @@ 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));
+ const ::foo::PathLike cx;
+ EXPECT_EQ("Streamable-PathLike", Print(cx));
+}
+
// Tests printing user-defined types that have a PrintTo() function.
TEST(PrintPrintableTypeTest, InUserNamespace) {
EXPECT_EQ("PrintableViaPrintTo: 0",