summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/CppUnit/cppunit/TestAssert.h')
m---------3rdParty/CppUnit0
-rw-r--r--3rdParty/CppUnit/cppunit/TestAssert.h428
2 files changed, 0 insertions, 428 deletions
diff --git a/3rdParty/CppUnit b/3rdParty/CppUnit
new file mode 160000
+Subproject b4c34eb947c6497c6387c55c7581ec875f4e7d4
diff --git a/3rdParty/CppUnit/cppunit/TestAssert.h b/3rdParty/CppUnit/cppunit/TestAssert.h
deleted file mode 100644
index f74797b..0000000
--- a/3rdParty/CppUnit/cppunit/TestAssert.h
+++ /dev/null
@@ -1,428 +0,0 @@
-#ifndef CPPUNIT_TESTASSERT_H
-#define CPPUNIT_TESTASSERT_H
-
-#include <cppunit/Portability.h>
-#include <cppunit/Exception.h>
-#include <cppunit/Asserter.h>
-#include <cppunit/portability/Stream.h>
-#include <stdio.h>
-#include <float.h> // For struct assertion_traits<double>
-
-
-CPPUNIT_NS_BEGIN
-
-
-/*! \brief Traits used by CPPUNIT_ASSERT_EQUAL().
- *
- * Here is an example of specialising these traits:
- *
- * \code
- * template<>
- * struct assertion_traits<std::string> // specialization for the std::string type
- * {
- * static bool equal( const std::string& x, const std::string& y )
- * {
- * return x == y;
- * }
- *
- * static std::string toString( const std::string& x )
- * {
- * std::string text = '"' + x + '"'; // adds quote around the string to see whitespace
- * OStringStream ost;
- * ost << text;
- * return ost.str();
- * }
- * };
- * \endcode
- */
-template <class T>
-struct assertion_traits
-{
- static bool equal( const T& x, const T& y )
- {
- return x == y;
- }
-
- static std::string toString( const T& x )
- {
- OStringStream ost;
- ost << x;
- return ost.str();
- }
-};
-
-
-/*! \brief Traits used by CPPUNIT_ASSERT_DOUBLES_EQUAL().
- *
- * This specialisation from @c struct @c assertion_traits<> ensures that
- * doubles are converted in full, instead of being rounded to the default
- * 6 digits of precision. Use the system defined ISO C99 macro DBL_DIG
- * within float.h is available to define the maximum precision, otherwise
- * use the hard-coded maximum precision of 15.
- */
-template <>
-struct assertion_traits<double>
-{
- static bool equal( double x, double y )
- {
- return x == y;
- }
-
- static std::string toString( double x )
- {
-#ifdef DBL_DIG
- const int precision = DBL_DIG;
-#else
- const int precision = 15;
-#endif // #ifdef DBL_DIG
- char buffer[128];
-#ifdef __STDC_SECURE_LIB__ // Use secure version with visual studio 2005 to avoid warning.
- sprintf_s(buffer, sizeof(buffer), "%.*g", precision, x);
-#else
- sprintf(buffer, "%.*g", precision, x);
-#endif
- return buffer;
- }
-};
-
-
-/*! \brief (Implementation) Asserts that two objects of the same type are equals.
- * Use CPPUNIT_ASSERT_EQUAL instead of this function.
- * \sa assertion_traits, Asserter::failNotEqual().
- */
-template <class T>
-void assertEquals( const T& expected,
- const T& actual,
- SourceLine sourceLine,
- const std::string &message )
-{
- if ( !assertion_traits<T>::equal(expected,actual) ) // lazy toString conversion...
- {
- Asserter::failNotEqual( assertion_traits<T>::toString(expected),
- assertion_traits<T>::toString(actual),
- sourceLine,
- message );
- }
-}
-
-
-/*! \brief (Implementation) Asserts that two double are equals given a tolerance.
- * Use CPPUNIT_ASSERT_DOUBLES_EQUAL instead of this function.
- * \sa Asserter::failNotEqual().
- * \sa CPPUNIT_ASSERT_DOUBLES_EQUAL for detailed semantic of the assertion.
- */
-void CPPUNIT_API assertDoubleEquals( double expected,
- double actual,
- double delta,
- SourceLine sourceLine,
- const std::string &message );
-
-
-/* A set of macros which allow us to get the line number
- * and file name at the point of an error.
- * Just goes to show that preprocessors do have some
- * redeeming qualities.
- */
-#if CPPUNIT_HAVE_CPP_SOURCE_ANNOTATION
-/** Assertions that a condition is \c true.
- * \ingroup Assertions
- */
-#define CPPUNIT_ASSERT(condition) \
- ( CPPUNIT_NS::Asserter::failIf( !(condition), \
- CPPUNIT_NS::Message( "assertion failed", \
- "Expression: " #condition), \
- CPPUNIT_SOURCELINE() ) )
-#else
-#define CPPUNIT_ASSERT(condition) \
- ( CPPUNIT_NS::Asserter::failIf( !(condition), \
- CPPUNIT_NS::Message( "assertion failed" ), \
- CPPUNIT_SOURCELINE() ) )
-#endif
-
-/** Assertion with a user specified message.
- * \ingroup Assertions
- * \param message Message reported in diagnostic if \a condition evaluates
- * to \c false.
- * \param condition If this condition evaluates to \c false then the
- * test failed.
- */
-#define CPPUNIT_ASSERT_MESSAGE(message,condition) \
- ( CPPUNIT_NS::Asserter::failIf( !(condition), \
- CPPUNIT_NS::Message( "assertion failed", \
- "Expression: " \
- #condition, \
- message ), \
- CPPUNIT_SOURCELINE() ) )
-
-/** Fails with the specified message.
- * \ingroup Assertions
- * \param message Message reported in diagnostic.
- */
-#define CPPUNIT_FAIL( message ) \
- ( CPPUNIT_NS::Asserter::fail( CPPUNIT_NS::Message( "forced failure", \
- message ), \
- CPPUNIT_SOURCELINE() ) )
-
-#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
-/// Generalized macro for primitive value comparisons
-#define CPPUNIT_ASSERT_EQUAL(expected,actual) \
- ( CPPUNIT_NS::assertEquals( (expected), \
- (actual), \
- __LINE__, __FILE__ ) )
-#else
-/** Asserts that two values are equals.
- * \ingroup Assertions
- *
- * Equality and string representation can be defined with
- * an appropriate CppUnit::assertion_traits class.
- *
- * A diagnostic is printed if actual and expected values disagree.
- *
- * Requirement for \a expected and \a actual parameters:
- * - They are exactly of the same type
- * - They are serializable into a std::strstream using operator <<.
- * - They can be compared using operator ==.
- *
- * The last two requirements (serialization and comparison) can be
- * removed by specializing the CppUnit::assertion_traits.
- */
-#define CPPUNIT_ASSERT_EQUAL(expected,actual) \
- ( CPPUNIT_NS::assertEquals( (expected), \
- (actual), \
- CPPUNIT_SOURCELINE(), \
- "" ) )
-
-/** Asserts that two values are equals, provides additional message on failure.
- * \ingroup Assertions
- *
- * Equality and string representation can be defined with
- * an appropriate assertion_traits class.
- *
- * A diagnostic is printed if actual and expected values disagree.
- * The message is printed in addition to the expected and actual value
- * to provide additional information.
- *
- * Requirement for \a expected and \a actual parameters:
- * - They are exactly of the same type
- * - They are serializable into a std::strstream using operator <<.
- * - They can be compared using operator ==.
- *
- * The last two requirements (serialization and comparison) can be
- * removed by specializing the CppUnit::assertion_traits.
- */
-#define CPPUNIT_ASSERT_EQUAL_MESSAGE(message,expected,actual) \
- ( CPPUNIT_NS::assertEquals( (expected), \
- (actual), \
- CPPUNIT_SOURCELINE(), \
- (message) ) )
-#endif
-
-/*! \brief Macro for primitive double value comparisons.
- * \ingroup Assertions
- *
- * The assertion pass if both expected and actual are finite and
- * \c fabs( \c expected - \c actual ) <= \c delta.
- * If either \c expected or actual are infinite (+/- inf), the
- * assertion pass if \c expected == \c actual.
- * If either \c expected or \c actual is a NaN (not a number), then
- * the assertion fails.
- */
-#define CPPUNIT_ASSERT_DOUBLES_EQUAL(expected,actual,delta) \
- ( CPPUNIT_NS::assertDoubleEquals( (expected), \
- (actual), \
- (delta), \
- CPPUNIT_SOURCELINE(), \
- "" ) )
-
-
-/*! \brief Macro for primitive double value comparisons, setting a
- * user-supplied message in case of failure.
- * \ingroup Assertions
- * \sa CPPUNIT_ASSERT_DOUBLES_EQUAL for detailed semantic of the assertion.
- */
-#define CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(message,expected,actual,delta) \
- ( CPPUNIT_NS::assertDoubleEquals( (expected), \
- (actual), \
- (delta), \
- CPPUNIT_SOURCELINE(), \
- (message) ) )
-
-
-/** Asserts that the given expression throws an exception of the specified type.
- * \ingroup Assertions
- * Example of usage:
- * \code
- * std::vector<int> v;
- * CPPUNIT_ASSERT_THROW( v.at( 50 ), std::out_of_range );
- * \endcode
- */
-# define CPPUNIT_ASSERT_THROW( expression, ExceptionType ) \
- CPPUNIT_ASSERT_THROW_MESSAGE( CPPUNIT_NS::AdditionalMessage(), \
- expression, \
- ExceptionType )
-
-
-// implementation detail
-#if CPPUNIT_USE_TYPEINFO_NAME
-#define CPPUNIT_EXTRACT_EXCEPTION_TYPE_( exception, no_rtti_message ) \
- CPPUNIT_NS::TypeInfoHelper::getClassName( typeid(exception) )
-#else
-#define CPPUNIT_EXTRACT_EXCEPTION_TYPE_( exception, no_rtti_message ) \
- std::string( no_rtti_message )
-#endif // CPPUNIT_USE_TYPEINFO_NAME
-
-// implementation detail
-#define CPPUNIT_GET_PARAMETER_STRING( parameter ) #parameter
-
-/** Asserts that the given expression throws an exception of the specified type,
- * setting a user supplied message in case of failure.
- * \ingroup Assertions
- * Example of usage:
- * \code
- * std::vector<int> v;
- * CPPUNIT_ASSERT_THROW_MESSAGE( "- std::vector<int> v;", v.at( 50 ), std::out_of_range );
- * \endcode
- */
-# define CPPUNIT_ASSERT_THROW_MESSAGE( message, expression, ExceptionType ) \
- do { \
- bool cpputCorrectExceptionThrown_ = false; \
- CPPUNIT_NS::Message cpputMsg_( "expected exception not thrown" ); \
- cpputMsg_.addDetail( message ); \
- cpputMsg_.addDetail( "Expected: " \
- CPPUNIT_GET_PARAMETER_STRING( ExceptionType ) ); \
- \
- try { \
- expression; \
- } catch ( const ExceptionType & ) { \
- cpputCorrectExceptionThrown_ = true; \
- } catch ( const std::exception &e) { \
- cpputMsg_.addDetail( "Actual : " + \
- CPPUNIT_EXTRACT_EXCEPTION_TYPE_( e, \
- "std::exception or derived") ); \
- cpputMsg_.addDetail( std::string("What() : ") + e.what() ); \
- } catch ( ... ) { \
- cpputMsg_.addDetail( "Actual : unknown."); \
- } \
- \
- if ( cpputCorrectExceptionThrown_ ) \
- break; \
- \
- CPPUNIT_NS::Asserter::fail( cpputMsg_, \
- CPPUNIT_SOURCELINE() ); \
- } while ( false )
-
-
-/** Asserts that the given expression does not throw any exceptions.
- * \ingroup Assertions
- * Example of usage:
- * \code
- * std::vector<int> v;
- * v.push_back( 10 );
- * CPPUNIT_ASSERT_NO_THROW( v.at( 0 ) );
- * \endcode
- */
-# define CPPUNIT_ASSERT_NO_THROW( expression ) \
- CPPUNIT_ASSERT_NO_THROW_MESSAGE( CPPUNIT_NS::AdditionalMessage(), \
- expression )
-
-
-/** Asserts that the given expression does not throw any exceptions,
- * setting a user supplied message in case of failure.
- * \ingroup Assertions
- * Example of usage:
- * \code
- * std::vector<int> v;
- * v.push_back( 10 );
- * CPPUNIT_ASSERT_NO_THROW( "std::vector<int> v;", v.at( 0 ) );
- * \endcode
- */
-# define CPPUNIT_ASSERT_NO_THROW_MESSAGE( message, expression ) \
- do { \
- CPPUNIT_NS::Message cpputMsg_( "unexpected exception caught" ); \
- cpputMsg_.addDetail( message ); \
- \
- try { \
- expression; \
- } catch ( const std::exception &e ) { \
- cpputMsg_.addDetail( "Caught: " + \
- CPPUNIT_EXTRACT_EXCEPTION_TYPE_( e, \
- "std::exception or derived" ) ); \
- cpputMsg_.addDetail( std::string("What(): ") + e.what() ); \
- CPPUNIT_NS::Asserter::fail( cpputMsg_, \
- CPPUNIT_SOURCELINE() ); \
- } catch ( ... ) { \
- cpputMsg_.addDetail( "Caught: unknown." ); \
- CPPUNIT_NS::Asserter::fail( cpputMsg_, \
- CPPUNIT_SOURCELINE() ); \
- } \
- } while ( false )
-
-
-/** Asserts that an assertion fail.
- * \ingroup Assertions
- * Use to test assertions.
- * Example of usage:
- * \code
- * CPPUNIT_ASSERT_ASSERTION_FAIL( CPPUNIT_ASSERT( 1 == 2 ) );
- * \endcode
- */
-# define CPPUNIT_ASSERT_ASSERTION_FAIL( assertion ) \
- CPPUNIT_ASSERT_THROW( assertion, CPPUNIT_NS::Exception )
-
-
-/** Asserts that an assertion fail, with a user-supplied message in
- * case of error.
- * \ingroup Assertions
- * Use to test assertions.
- * Example of usage:
- * \code
- * CPPUNIT_ASSERT_ASSERTION_FAIL_MESSAGE( "1 == 2", CPPUNIT_ASSERT( 1 == 2 ) );
- * \endcode
- */
-# define CPPUNIT_ASSERT_ASSERTION_FAIL_MESSAGE( message, assertion ) \
- CPPUNIT_ASSERT_THROW_MESSAGE( message, assertion, CPPUNIT_NS::Exception )
-
-
-/** Asserts that an assertion pass.
- * \ingroup Assertions
- * Use to test assertions.
- * Example of usage:
- * \code
- * CPPUNIT_ASSERT_ASSERTION_PASS( CPPUNIT_ASSERT( 1 == 1 ) );
- * \endcode
- */
-# define CPPUNIT_ASSERT_ASSERTION_PASS( assertion ) \
- CPPUNIT_ASSERT_NO_THROW( assertion )
-
-
-/** Asserts that an assertion pass, with a user-supplied message in
- * case of failure.
- * \ingroup Assertions
- * Use to test assertions.
- * Example of usage:
- * \code
- * CPPUNIT_ASSERT_ASSERTION_PASS_MESSAGE( "1 != 1", CPPUNIT_ASSERT( 1 == 1 ) );
- * \endcode
- */
-# define CPPUNIT_ASSERT_ASSERTION_PASS_MESSAGE( message, assertion ) \
- CPPUNIT_ASSERT_NO_THROW_MESSAGE( message, assertion )
-
-
-
-
-// Backwards compatibility
-
-#if CPPUNIT_ENABLE_NAKED_ASSERT
-
-#undef assert
-#define assert(c) CPPUNIT_ASSERT(c)
-#define assertEqual(e,a) CPPUNIT_ASSERT_EQUAL(e,a)
-#define assertDoublesEqual(e,a,d) CPPUNIT_ASSERT_DOUBLES_EQUAL(e,a,d)
-#define assertLongsEqual(e,a) CPPUNIT_ASSERT_EQUAL(e,a)
-
-#endif
-
-
-CPPUNIT_NS_END
-
-#endif // CPPUNIT_TESTASSERT_H