From abd178318ae3cdb6cc0a700e77414a33ef9297ca Mon Sep 17 00:00:00 2001 From: Baptiste Lepilleur Date: Thu, 13 Jun 2002 14:31:01 +0000 Subject: Include/cppunit/Asserter. include/cppunit/Asserter.h: * src/cppunit/Asserter.cpp: added functions that take a Message as a parameter. Existing function have a short description indicating an assertion failure. * include/cppunit/CompilerOuputter.h: * src/cppunit/CompilerOuputter.cpp: removed printNotEqualMessage() and printDefaultMessage(). Updated to use Message. * include/cppunit/Message.h: * src/cppunit/Message.cpp: added. Represents a message associated to an Exception. * include/cppunit/Exception.h: * src/cppunit/Exception.cpp: the message associated to the exception is now stored as a Message instead of a string. * include/cppunit/NotEqualException.cpp: constructs a Message instead of a string. * include/cppunit/TestAssert.h: * src/cppunit/TestAssert.cpp: updated to use Asserter functions that take a message when pertinent (CPPUNIT_FAIL...). * include/cppunit/TestCaller.h: * src/cppunit/TestCaller.cpp: exception not caught failure has a better short description. * src/cppunit/TestCase.cpp: better short description when setUp() or tearDown() fail. * src/msvc6/testrunner/TestRunnerDlg.cpp: replace '\n' in failure message with space. * examples/cppunittest/ExceptionTest.cpp: * examples/cppunittest/NotEqualExceptionTest.cpp: * examples/cppunittest/TestCallerTest.cpp: * examples/cppunittest/TestFailureTest.cpp: * examples/cppunittest/TestResultCollectorTest.h: * examples/cppunittest/TestResultCollectorTest.cpp: * examples/cppunittest/TestResultTest.cpp: * examples/cppunittest/XmlOutputterTest.h: * examples/cppunittest/XmlOutputterTest.cpp: updated to use Exception/Message. * examples/cppunittest/MessageTest.h: * examples/cppunittest/MessageTest.cpp: added. Unit test for Message. --- src/cppunit/Exception.cpp | 50 +++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 26 deletions(-) (limited to 'src/cppunit/Exception.cpp') diff --git a/src/cppunit/Exception.cpp b/src/cppunit/Exception.cpp index ab8cdde..2c01324 100644 --- a/src/cppunit/Exception.cpp +++ b/src/cppunit/Exception.cpp @@ -17,48 +17,39 @@ const long Exception::UNKNOWNLINENUMBER = -1; #endif -/// Construct the exception -Exception::Exception( const Exception &other ) : - std::exception( other ) +Exception::Exception( const Exception &other ) + : std::exception( other ) { m_message = other.m_message; m_sourceLine = other.m_sourceLine; } -/*! - * \deprecated Use other constructor instead. - */ -Exception::Exception( std::string message, - SourceLine sourceLine ) : - m_message( message ), - m_sourceLine( sourceLine ) +Exception::Exception( const Message &message, + const SourceLine &sourceLine ) + : m_message( message ) + , m_sourceLine( sourceLine ) { } #ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED -/*! - * \deprecated Use other constructor instead. - */ Exception::Exception( std::string message, long lineNumber, - std::string fileName ) : - m_message( message ), - m_sourceLine( fileName, lineNumber ) + std::string fileName ) + : m_message( message ) + , m_sourceLine( fileName, lineNumber ) { } #endif -/// Destruct the exception -Exception::~Exception () throw() +Exception::~Exception() throw() { } -/// Perform an assignment -Exception& +Exception & Exception::operator =( const Exception& other ) { // Don't call superclass operator =(). VC++ STL implementation @@ -76,14 +67,16 @@ Exception::operator =( const Exception& other ) } -/// Return descriptive message const char* Exception::what() const throw() -{ - return m_message.c_str (); +{ + Exception *mutableThis = const_cast( this ); + mutableThis->m_whatMessage = m_message.shortDescription() + "\n" + + m_message.details(); + return m_whatMessage.c_str(); } -/// Location where the error occured + SourceLine Exception::sourceLine() const { @@ -91,8 +84,14 @@ Exception::sourceLine() const } +Message +Exception::message() const +{ + return m_message; +} + + #ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED -/// The line on which the error occurred long Exception::lineNumber() const { @@ -101,7 +100,6 @@ Exception::lineNumber() const } -/// The file in which the error occurred std::string Exception::fileName() const { -- cgit v1.2.1