summaryrefslogtreecommitdiff
path: root/include/cppunit/TestAssert.h
diff options
context:
space:
mode:
authorBaptiste Lepilleur <gaiacrtn@free.fr>2001-10-05 21:27:15 +0000
committerBaptiste Lepilleur <gaiacrtn@free.fr>2001-10-05 21:27:15 +0000
commitfbd454f554f13680fe62b36fb7a5829f6dc0c396 (patch)
tree4ef06f5085f7e68ebc144dd78560afec3e3aadc2 /include/cppunit/TestAssert.h
parent6a1755ef0e36aeb1ac2df0a46e5dafe08a4699ee (diff)
downloadcppunit-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.h96
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