diff options
| author | Baptiste Lepilleur <gaiacrtn@free.fr> | 2001-10-05 21:27:15 +0000 |
|---|---|---|
| committer | Baptiste Lepilleur <gaiacrtn@free.fr> | 2001-10-05 21:27:15 +0000 |
| commit | fbd454f554f13680fe62b36fb7a5829f6dc0c396 (patch) | |
| tree | 4ef06f5085f7e68ebc144dd78560afec3e3aadc2 /include/cppunit/TestAssert.h | |
| parent | 6a1755ef0e36aeb1ac2df0a46e5dafe08a4699ee (diff) | |
| download | cppunit-fbd454f554f13680fe62b36fb7a5829f6dc0c396.tar.gz | |
Include/cppunit/Asserter.
include/cppunit/Asserter.h :
* src/cppunit/Asserter.cpp : added. Helper to create assertion macros.
* src/cppunit/cppunit.dsp :
* src/cppunit/Makefile.am :
* include/cppunit/Makefile.am : added Asserter.h and Asserter.cpp.
* include/cppunit/Exception.h :
* src/cppunit/Exception.cpp : added constructor that take a
SourceLine argument. Deprecated static constant and old constructor.
Fixed some constness issues.
* examples/cppunittest/ExceptionTest.cpp : Refactored.
* NEWS : partially updated (need to be more detailed)
* include/cppunit/NotEqualException.h :
* src/cppunit/NotEqualException.cpp : added constructor that take a
SourceLine argument. Deprecated old constructor. Added a third element
to compose message.
* examples/cppunittest/NotEqualExceptionTest.cpp : moved to "Core"
suite. Added test for SourceLine() and additionalMessage().
Refactored.
* include/cppunit/SourceLine.h :
* src/cppunit/SourceLine.cpp : added. Result of applying
IntroduceParameterObject refactoring on filename & line number...
* include/cppunit/TestAssert.h :
* src/cppunit/TestAssert.cpp : deprecated old assert functions.
added functions assertEquals() and assertDoubleEquals() which use
SourceLine.
* src/cppunit/TestCase.cpp : Modified for SourceLine.
* include/cppunit/TestFailure.h :
* src/cppunit/TestFailure.cpp : added failedTestName(), and
sourceLine().
* src/msvc6/testrunner/TestRunnerDlg.cpp : modified to use SourceLine.
* include/cppunit/TextTestResult.h :
* src/cppunit/TextTestResult.cpp : corrected include order and
switched to angled brackets. Refactored. Don't print failure location
if not available. Not equal failure dump additional message if
available.
* src/cppunit/TextTestRunner.cpp : run() now returns a boolean to
indicate if the run was sucessful.
* src/cppunit/XmlTestResultOutputter.cpp : replaced itoa() with
OStringStream. Refactored.
* examples/cppunittest/XmlUniformiser.h :
* examples/cppunittest/XmlUniformiser.cpp :
CPPUNITTEST_ASSERT_XML_EQUAL capture failure location. Refactored
checkXmlEqual().
* examples/cppunittest/XmlUniformiserTest.h :
* examples/cppunittest/XmlUniformiserTest.cpp : added test for
CPPUNITTEST_ASSERT_XML_EQUAL.
* include/cppunit/XmlTestResultOutputter.h :
* src/cppunit/XmlTestResultOutputter.cpp : updated to use SourceLine.
Diffstat (limited to 'include/cppunit/TestAssert.h')
| -rw-r--r-- | include/cppunit/TestAssert.h | 96 |
1 files changed, 63 insertions, 33 deletions
diff --git a/include/cppunit/TestAssert.h b/include/cppunit/TestAssert.h index 2d7fd18..081591e 100644 --- a/include/cppunit/TestAssert.h +++ b/include/cppunit/TestAssert.h @@ -3,7 +3,7 @@ #include <cppunit/Portability.h> #include <cppunit/Exception.h> -#include <string> +#include <cppunit/Asserter.h> namespace CppUnit { @@ -27,22 +27,23 @@ namespace CppUnit { namespace TestAssert { +#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED void assertImplementation( bool condition, std::string conditionExpression = "", - long lineNumber = Exception::UNKNOWNLINENUMBER, - std::string fileName = Exception::UNKNOWNFILENAME ); + long lineNumber, + std::string fileName ); void assertNotEqualImplementation( std::string expected, std::string actual, - long lineNumber = Exception::UNKNOWNLINENUMBER, - std::string fileName = Exception::UNKNOWNFILENAME ); + long lineNumber, + std::string fileName ); template <class T> void assertEquals( const T& expected, const T& actual, - long lineNumber = Exception::UNKNOWNLINENUMBER, - std::string fileName = Exception::UNKNOWNFILENAME ) + long lineNumber, + std::string fileName ) { if ( !assertion_traits<T>::equal(expected,actual) ) // lazy toString conversion... { @@ -56,8 +57,30 @@ namespace CppUnit { void assertEquals( double expected, double actual, double delta, - long lineNumber = Exception::UNKNOWNLINENUMBER, - std::string fileName = Exception::UNKNOWNFILENAME); + long lineNumber, + std::string fileName ); + +#else // using SourceLine + + template <class T> + void assertEquals( const T& expected, + const T& actual, + SourceLine sourceLine ) + { + if ( !assertion_traits<T>::equal(expected,actual) ) // lazy toString conversion... + { + Asserter::failNotEqual( assertion_traits<T>::toString(expected), + assertion_traits<T>::toString(actual), + sourceLine ); + } + } + + void assertDoubleEquals( double expected, + double actual, + double delta, + SourceLine sourceLine ); + +#endif } @@ -67,17 +90,15 @@ namespace CppUnit { * redeeming qualities. */ #if CPPUNIT_HAVE_CPP_SOURCE_ANNOTATION - -# define CPPUNIT_ASSERT(condition)\ - (CppUnit::TestAssert::assertImplementation ((condition),(#condition),\ - __LINE__, __FILE__)) - +# define CPPUNIT_ASSERT(condition) \ + ( ::CppUnit::Asserter::failIf( !(condition), \ + (#condition), \ + CPPUNIT_SOURCELINE() ) ) #else - -# define CPPUNIT_ASSERT(condition)\ - (CppUnit::TestAssert::assertImplementation ((condition),"",\ - __LINE__, __FILE__)) - +# define CPPUNIT_ASSERT(condition) \ + ( ::CppUnit::Asserter::failIf( !(condition), \ + "", \ + CPPUNIT_SOURCELINE() ) ) #endif /** Assertion with a user specified message. @@ -86,32 +107,41 @@ namespace CppUnit { * \param condition If this condition evaluates to \c false then the * test failed. */ -#define CPPUNIT_ASSERT_MESSAGE(message,condition)\ - (CppUnit::TestAssert::assertImplementation( condition, \ - message, \ - __LINE__, \ - __FILE__ ) ) +#define CPPUNIT_ASSERT_MESSAGE(message,condition) \ + ( ::CppUnit::Asserter::failIf( !(condition), \ + message, \ + CPPUNIT_SOURCELINE() ) ) /** Failure with a user specified message. * \param message Message reported in diagnostic. */ -#define CPPUNIT_FAIL( message ) \ - CPPUNIT_ASSERT_MESSAGE( message, false ) +#define CPPUNIT_FAIL( message ) \ + ( ::CppUnit::Asserter::fail( message, \ + CPPUNIT_SOURCELINE() ) ) +#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED /// Generalized macro for primitive value comparisons /** Equality and string representation can be defined with * an appropriate assertion_traits class. * A diagnostic is printed if actual and expected values disagree. */ -#define CPPUNIT_ASSERT_EQUAL(expected,actual)\ - (CppUnit::TestAssert::assertEquals ((expected),\ - (actual),__LINE__,__FILE__)) +#define CPPUNIT_ASSERT_EQUAL(expected,actual) \ + ( ::CppUnit::TestAssert::assertEquals( (expected), \ + (actual), \ + __LINE__, __FILE__ ) ) +#else +#define CPPUNIT_ASSERT_EQUAL(expected,actual) \ + ( ::CppUnit::TestAssert::assertEquals( (expected), \ + (actual), \ + CPPUNIT_SOURCELINE() ) ) +#endif /// Macro for primitive value comparisons -#define CPPUNIT_ASSERT_DOUBLES_EQUAL(expected,actual,delta)\ - (CppUnit::TestAssert::assertEquals ((expected),\ - (actual),(delta),__LINE__,__FILE__)) - +#define CPPUNIT_ASSERT_DOUBLES_EQUAL(expected,actual,delta) \ + ( ::CppUnit::TestAssert::assertDoubleEquals( (expected), \ + (actual), \ + (delta), \ + CPPUNIT_SOURCELINE() ) ) // Backwards compatibility |
