From 1caa3a0c66f009fe1a386d7559dc25054dad42a3 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Fri, 26 May 2017 12:05:06 +0200 Subject: custom tostring formatter to CPPUNIT_ASSERT_MESSAGE Provide an extension trait message_to_string that allows client code to call ASSERT_MESSAGE with their own string types. Also provide a default extension trait that accepts std::ostream messages. Change-Id: I516f97063c34d86bc91c40e0ec147d5393e7b6ea --- examples/cppunittest/MessageTest.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'examples/cppunittest/MessageTest.cpp') diff --git a/examples/cppunittest/MessageTest.cpp b/examples/cppunittest/MessageTest.cpp index c59544d..c0674b8 100644 --- a/examples/cppunittest/MessageTest.cpp +++ b/examples/cppunittest/MessageTest.cpp @@ -232,3 +232,30 @@ MessageTest::testNotEqual() CPPUNIT_ASSERT( message1 != message2 ); CPPUNIT_ASSERT( !(message1 != message1) ); } + + +struct Foo +{ + std::string s; +}; +CPPUNIT_NS_BEGIN +static std::string message_to_string(const Foo& m) +{ + return m.s; +} +CPPUNIT_NS_END + +void +MessageTest::testCustomMessageType() +{ + Foo foo { "xxxx" }; + CPPUNIT_ASSERT_MESSAGE( foo, true ); +} + +void +MessageTest::testOStreamMessage() +{ + std::ostringstream ost; + ost << "xxx" << "yyy"; + CPPUNIT_ASSERT_MESSAGE( ost, true ); +} -- cgit v1.2.1