diff options
| author | Remko Tronçon <git@el-tramo.be> | 2010-02-11 12:14:00 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2010-02-11 12:14:00 (GMT) | 
| commit | 0efa7c32aaf21a29b42b5926cc116007056843be (patch) | |
| tree | 882f663a5dd0e65694bf6077b71086dd77fd7ff8 /3rdParty/CppUnit/cppunit/extensions/HelperMacros.h | |
| parent | 1d20eabbc32274b491b4c2bedf73d19933d97bfd (diff) | |
| download | swift-contrib-0efa7c32aaf21a29b42b5926cc116007056843be.zip swift-contrib-0efa7c32aaf21a29b42b5926cc116007056843be.tar.bz2  | |
Moved some modules into separate git modules.
Diffstat (limited to '3rdParty/CppUnit/cppunit/extensions/HelperMacros.h')
| m--------- | 3rdParty/CppUnit | 0 | ||||
| -rw-r--r-- | 3rdParty/CppUnit/cppunit/extensions/HelperMacros.h | 541 | 
2 files changed, 0 insertions, 541 deletions
diff --git a/3rdParty/CppUnit b/3rdParty/CppUnit new file mode 160000 +Subproject b4c34eb947c6497c6387c55c7581ec875f4e7d4 diff --git a/3rdParty/CppUnit/cppunit/extensions/HelperMacros.h b/3rdParty/CppUnit/cppunit/extensions/HelperMacros.h deleted file mode 100644 index 12431e4..0000000 --- a/3rdParty/CppUnit/cppunit/extensions/HelperMacros.h +++ /dev/null @@ -1,541 +0,0 @@ -// ////////////////////////////////////////////////////////////////////////// -// Header file HelperMacros.h -// (c)Copyright 2000, Baptiste Lepilleur. -// Created: 2001/04/15 -// ////////////////////////////////////////////////////////////////////////// -#ifndef CPPUNIT_EXTENSIONS_HELPERMACROS_H -#define CPPUNIT_EXTENSIONS_HELPERMACROS_H - -#include <cppunit/TestCaller.h> -#include <cppunit/TestSuite.h> -#include <cppunit/extensions/AutoRegisterSuite.h> -#include <cppunit/extensions/ExceptionTestCaseDecorator.h> -#include <cppunit/extensions/TestFixtureFactory.h> -#include <cppunit/extensions/TestNamer.h> -#include <cppunit/extensions/TestSuiteBuilderContext.h> -#include <memory> - - -/*! \addtogroup WritingTestFixture Writing test fixture - */ -/** @{ - */ - - -/** \file - * Macros intended to ease the definition of test suites. - * - * The macros - * CPPUNIT_TEST_SUITE(), CPPUNIT_TEST(), and CPPUNIT_TEST_SUITE_END() - * are designed to facilitate easy creation of a test suite. - * For example, - * - * \code - * #include <cppunit/extensions/HelperMacros.h> - * class MyTest : public CppUnit::TestFixture { - *   CPPUNIT_TEST_SUITE( MyTest ); - *   CPPUNIT_TEST( testEquality ); - *   CPPUNIT_TEST( testSetName ); - *   CPPUNIT_TEST_SUITE_END(); - * public: - *   void testEquality(); - *   void testSetName(); - * }; - * \endcode - *  - * The effect of these macros is to define two methods in the - * class MyTest.  The first method is an auxiliary function - * named registerTests that you will not need to call directly. - * The second function - * \code static CppUnit::TestSuite *suite()\endcode - * returns a pointer to the suite of tests defined by the CPPUNIT_TEST() - * macros.   - * - * Rather than invoking suite() directly, - * the macro CPPUNIT_TEST_SUITE_REGISTRATION() is - * used to create a static variable that automatically - * registers its test suite in a global registry. - * The registry yields a Test instance containing all the - * registered suites. - * \code - * CPPUNIT_TEST_SUITE_REGISTRATION( MyTest ); - * CppUnit::Test* tp = - *   CppUnit::TestFactoryRegistry::getRegistry().makeTest(); - * \endcode - *  - * The test suite macros can even be used with templated test classes. - * For example: - * - * \code - * template<typename CharType> - * class StringTest : public CppUnit::TestFixture { - *   CPPUNIT_TEST_SUITE( StringTest ); - *   CPPUNIT_TEST( testAppend ); - *   CPPUNIT_TEST_SUITE_END(); - * public:   - *   ... - * }; - * \endcode - * - * You need to add in an implementation file: - * - * \code - * CPPUNIT_TEST_SUITE_REGISTRATION( StringTest<char> ); - * CPPUNIT_TEST_SUITE_REGISTRATION( StringTest<wchar_t> ); - * \endcode - */ - - -/*! \brief Begin test suite - * - * This macro starts the declaration of a new test suite. - * Use CPPUNIT_TEST_SUB_SUITE() instead, if you wish to include the - * test suite of the parent class. - * - * \param ATestFixtureType Type of the test case class. This type \b MUST - *                         be derived from TestFixture. - * \see CPPUNIT_TEST_SUB_SUITE, CPPUNIT_TEST, CPPUNIT_TEST_SUITE_END,  - * \see CPPUNIT_TEST_SUITE_REGISTRATION, CPPUNIT_TEST_EXCEPTION, CPPUNIT_TEST_FAIL. - */ -#define CPPUNIT_TEST_SUITE( ATestFixtureType )                              \ -  public:                                                                   \ -    typedef ATestFixtureType TestFixtureType;                               \ -                                                                            \ -  private:                                                                  \ -    static const CPPUNIT_NS::TestNamer &getTestNamer__()                    \ -    {                                                                       \ -      static CPPUNIT_TESTNAMER_DECL( testNamer, ATestFixtureType );         \ -      return testNamer;                                                     \ -    }                                                                       \ -                                                                            \ -  public:                                                                   \ -    typedef CPPUNIT_NS::TestSuiteBuilderContext<TestFixtureType>            \ -                TestSuiteBuilderContextType;                                \ -                                                                            \ -    static void                                                             \ -    addTestsToSuite( CPPUNIT_NS::TestSuiteBuilderContextBase &baseContext ) \ -    {                                                                       \ -      TestSuiteBuilderContextType context( baseContext ) - - -/*! \brief Begin test suite (includes parent suite) - *  - * This macro may only be used in a class whose parent class - * defines a test suite using CPPUNIT_TEST_SUITE() or CPPUNIT_TEST_SUB_SUITE(). - * - * This macro begins the declaration of a test suite, in the same - * manner as CPPUNIT_TEST_SUITE().  In addition, the test suite of the - * parent is automatically inserted in the test suite being - * defined. - *  - * Here is an example: - * - * \code - * #include <cppunit/extensions/HelperMacros.h> - * class MySubTest : public MyTest { - *   CPPUNIT_TEST_SUB_SUITE( MySubTest, MyTest ); - *   CPPUNIT_TEST( testAdd ); - *   CPPUNIT_TEST( testSub ); - *   CPPUNIT_TEST_SUITE_END(); - * public: - *   void testAdd(); - *   void testSub(); - * }; - * \endcode - * - * \param ATestFixtureType Type of the test case class. This type \b MUST - *                         be derived from TestFixture. - * \param ASuperClass   Type of the parent class. - * \see CPPUNIT_TEST_SUITE. - */ -#define CPPUNIT_TEST_SUB_SUITE( ATestFixtureType, ASuperClass )  \ -  public:                                                        \ -    typedef ASuperClass ParentTestFixtureType;                   \ -  private:                                                       \ -    CPPUNIT_TEST_SUITE( ATestFixtureType );                      \ -      ParentTestFixtureType::addTestsToSuite( baseContext ) - - -/*! \brief End declaration of the test suite. - * - * After this macro, member access is set to "private". - * - * \see  CPPUNIT_TEST_SUITE. - * \see  CPPUNIT_TEST_SUITE_REGISTRATION. - */ -#define CPPUNIT_TEST_SUITE_END()                                               \ -    }                                                                          \ -                                                                               \ -    static CPPUNIT_NS::TestSuite *suite()                                      \ -    {                                                                          \ -      const CPPUNIT_NS::TestNamer &namer = getTestNamer__();                   \ -      std::auto_ptr<CPPUNIT_NS::TestSuite> suite(                              \ -             new CPPUNIT_NS::TestSuite( namer.getFixtureName() ));             \ -      CPPUNIT_NS::ConcretTestFixtureFactory<TestFixtureType> factory;          \ -      CPPUNIT_NS::TestSuiteBuilderContextBase context( *suite.get(),           \ -                                                       namer,                  \ -                                                       factory );              \ -      TestFixtureType::addTestsToSuite( context );                             \ -      return suite.release();                                                  \ -    }                                                                          \ -  private: /* dummy typedef so that the macro can still end with ';'*/         \ -    typedef int CppUnitDummyTypedefForSemiColonEnding__ - -/*! \brief End declaration of an abstract test suite. - * - * Use this macro to indicate that the %TestFixture is abstract. No - * static suite() method will be declared.  - * - * After this macro, member access is set to "private". - * - * Here is an example of usage: - * - * The abstract test fixture: - * \code - * #include <cppunit/extensions/HelperMacros.h> - * class AbstractDocument; - * class AbstractDocumentTest : public CppUnit::TestFixture { - *   CPPUNIT_TEST_SUITE( AbstractDocumentTest ); - *   CPPUNIT_TEST( testInsertText ); - *   CPPUNIT_TEST_SUITE_END_ABSTRACT(); - * public: - *   void testInsertText(); - *  - *   void setUp() - *   { - *     m_document = makeDocument(); - *   } - * - *   void tearDown() - *   { - *     delete m_document; - *   } - * protected: - *   virtual AbstractDocument *makeDocument() =0; - * - *   AbstractDocument *m_document; - * };\endcode - * - * The concret test fixture: - * \code - * class RichTextDocumentTest : public AbstractDocumentTest { - *   CPPUNIT_TEST_SUB_SUITE( RichTextDocumentTest, AbstractDocumentTest ); - *   CPPUNIT_TEST( testInsertFormatedText ); - *   CPPUNIT_TEST_SUITE_END(); - * public: - *   void testInsertFormatedText(); - * protected: - *   AbstractDocument *makeDocument() - *   { - *     return new RichTextDocument(); - *   } - * };\endcode - * - * \see  CPPUNIT_TEST_SUB_SUITE. - * \see  CPPUNIT_TEST_SUITE_REGISTRATION. - */ -#define CPPUNIT_TEST_SUITE_END_ABSTRACT()                                      \ -    }                                                                          \ -  private: /* dummy typedef so that the macro can still end with ';'*/         \ -    typedef int CppUnitDummyTypedefForSemiColonEnding__ - - -/*! \brief Add a test to the suite (for custom test macro). - * - * The specified test will be added to the test suite being declared. This macro - * is intended for \e advanced usage, to extend %CppUnit by creating new macro such - * as CPPUNIT_TEST_EXCEPTION()... - * - * Between macro CPPUNIT_TEST_SUITE() and CPPUNIT_TEST_SUITE_END(), you can assume - * that the following variables can be used: - * \code - * typedef TestSuiteBuilder<TestFixtureType> TestSuiteBuilderType; - * TestSuiteBuilderType &context; - * \endcode - * - * \c context can be used to name test case, create new test fixture instance, - * or add test case to the test fixture suite. - * - * Below is an example that show how to use this macro to create new macro to add - * test to the fixture suite. The macro below show how you would add a new type - * of test case which fails if the execution last more than a given time limit. - * It relies on an imaginary TimeOutTestCaller class which has an interface similar - * to TestCaller. - *  - * \code - * #define CPPUNITEX_TEST_TIMELIMIT( testMethod, timeLimit )            \ - *      CPPUNIT_TEST_SUITE_ADD_TEST( (new TimeOutTestCaller<TestFixtureType>(  \ - *                  namer.getTestNameFor( #testMethod ),                \ - *                  &TestFixtureType::testMethod,                   \ - *                  factory.makeFixture(),                              \ - *                  timeLimit ) ) ) - *    - * class PerformanceTest : CppUnit::TestFixture - * { - * public: - *   CPPUNIT_TEST_SUITE( PerformanceTest ); - *   CPPUNITEX_TEST_TIMELIMIT( testSortReverseOrder, 5.0 ); - *   CPPUNIT_TEST_SUITE_END(); - * - *   void testSortReverseOrder(); - * }; - * \endcode - * - * \param test Test to add to the suite. Must be a subclass of Test. The test name - *             should have been obtained using TestNamer::getTestNameFor(). - */ -#define CPPUNIT_TEST_SUITE_ADD_TEST( test ) \ -      context.addTest( test ) - -/*! \brief Add a method to the suite. - * \param testMethod Name of the method of the test case to add to the - *                   suite. The signature of the method must be of - *                   type: void testMethod(); - * \see  CPPUNIT_TEST_SUITE. - */ -#define CPPUNIT_TEST( testMethod )                        \ -    CPPUNIT_TEST_SUITE_ADD_TEST(                           \ -        ( new CPPUNIT_NS::TestCaller<TestFixtureType>(    \ -                  context.getTestNameFor( #testMethod),   \ -                  &TestFixtureType::testMethod,           \ -                  context.makeFixture() ) ) ) - -/*! \brief Add a test which fail if the specified exception is not caught. - * - * Example: - * \code - * #include <cppunit/extensions/HelperMacros.h> - * #include <vector> - * class MyTest : public CppUnit::TestFixture { - *   CPPUNIT_TEST_SUITE( MyTest ); - *   CPPUNIT_TEST_EXCEPTION( testVectorAtThrow, std::invalid_argument ); - *   CPPUNIT_TEST_SUITE_END(); - * public: - *   void testVectorAtThrow() - *   { - *     std::vector<int> v; - *     v.at( 1 );     // must throw exception std::invalid_argument - *   } - * }; - * \endcode - * - * \param testMethod Name of the method of the test case to add to the suite. - * \param ExceptionType Type of the exception that must be thrown by the test  - *                      method. - * \deprecated Use the assertion macro CPPUNIT_ASSERT_THROW instead. - */ -#define CPPUNIT_TEST_EXCEPTION( testMethod, ExceptionType )          \ -  CPPUNIT_TEST_SUITE_ADD_TEST(                                        \ -      (new CPPUNIT_NS::ExceptionTestCaseDecorator< ExceptionType >(  \ -          new CPPUNIT_NS::TestCaller< TestFixtureType >(             \ -                               context.getTestNameFor( #testMethod ),  \ -                               &TestFixtureType::testMethod,         \ -                               context.makeFixture() ) ) ) ) - -/*! \brief Adds a test case which is excepted to fail. - * - * The added test case expect an assertion to fail. You usually used that type - * of test case when testing custom assertion macros. - * - * \code - * CPPUNIT_TEST_FAIL( testAssertFalseFail ); - *  - * void testAssertFalseFail() - * { - *   CPPUNIT_ASSERT( false ); - * } - * \endcode - * \see CreatingNewAssertions. - * \deprecated Use the assertion macro CPPUNIT_ASSERT_ASSERTION_FAIL instead. - */ -#define CPPUNIT_TEST_FAIL( testMethod ) \ -              CPPUNIT_TEST_EXCEPTION( testMethod, CPPUNIT_NS::Exception ) - -/*! \brief Adds some custom test cases. - * - * Use this to add one or more test cases to the fixture suite. The specified - * method is called with a context parameter that can be used to name,  - * instantiate fixture, and add instantiated test case to the fixture suite. - * The specified method must have the following signature: - * \code - * static void aMethodName( TestSuiteBuilderContextType &context ); - * \endcode - * - * \c TestSuiteBuilderContextType is typedef to  - * TestSuiteBuilderContext<TestFixtureType> declared by CPPUNIT_TEST_SUITE(). - * - * Here is an example that add two custom tests: - * - * \code - * #include <cppunit/extensions/HelperMacros.h> - * - * class MyTest : public CppUnit::TestFixture { - *   CPPUNIT_TEST_SUITE( MyTest ); - *   CPPUNIT_TEST_SUITE_ADD_CUSTOM_TESTS( addTimeOutTests ); - *   CPPUNIT_TEST_SUITE_END(); - * public: - *   static void addTimeOutTests( TestSuiteBuilderContextType &context ) - *   { - *     context.addTest( new TimeOutTestCaller( context.getTestNameFor( "test1" ) ), - *                                             &MyTest::test1, - *                                             context.makeFixture(), - *                                             5.0 ); - *     context.addTest( new TimeOutTestCaller( context.getTestNameFor( "test2" ) ), - *                                             &MyTest::test2, - *                                             context.makeFixture(), - *                                             5.0 ); - *   } - * - *   void test1() - *   { - *     // Do some test that may never end... - *   } - * - *   void test2() - *   { - *     // Do some test that may never end... - *   } - * }; - * \endcode - * @param testAdderMethod Name of the method called to add the test cases. - */ -#define CPPUNIT_TEST_SUITE_ADD_CUSTOM_TESTS( testAdderMethod ) \ -      testAdderMethod( context ) - -/*! \brief Adds a property to the test suite builder context. - * \param APropertyKey   Key of the property to add. - * \param APropertyValue Value for the added property. - * Example: - * \code - * CPPUNIT_TEST_SUITE_PROPERTY("XmlFileName", "paraTest.xml"); \endcode - */ -#define CPPUNIT_TEST_SUITE_PROPERTY( APropertyKey, APropertyValue ) \ -    context.addProperty( std::string(APropertyKey),                 \ -                         std::string(APropertyValue) ) - -/** @} - */ - - -/*! Adds the specified fixture suite to the unnamed registry. - * \ingroup CreatingTestSuite - * - * This macro declares a static variable whose construction - * causes a test suite factory to be inserted in a global registry - * of such factories.  The registry is available by calling - * the static function CppUnit::TestFactoryRegistry::getRegistry(). - *  - * \param ATestFixtureType Type of the test case class. - * \warning This macro should be used only once per line of code (the line - *          number is used to name a hidden static variable). - * \see CPPUNIT_TEST_SUITE_NAMED_REGISTRATION - * \see CPPUNIT_REGISTRY_ADD_TO_DEFAULT - * \see CPPUNIT_REGISTRY_ADD - * \see CPPUNIT_TEST_SUITE, CppUnit::AutoRegisterSuite,  - *      CppUnit::TestFactoryRegistry. - */ -#define CPPUNIT_TEST_SUITE_REGISTRATION( ATestFixtureType )      \ -  static CPPUNIT_NS::AutoRegisterSuite< ATestFixtureType >       \ -             CPPUNIT_MAKE_UNIQUE_NAME(autoRegisterRegistry__ ) - - -/** Adds the specified fixture suite to the specified registry suite. - * \ingroup CreatingTestSuite - * - * This macro declares a static variable whose construction - * causes a test suite factory to be inserted in the global registry - * suite of the specified name. The registry is available by calling - * the static function CppUnit::TestFactoryRegistry::getRegistry(). - *  - * For the suite name, use a string returned by a static function rather - * than a hardcoded string. That way, you can know what are the name of - * named registry and you don't risk mistyping the registry name. - * - * \code - * // MySuites.h - * namespace MySuites { - *   std::string math() {  - *     return "Math"; - *   } - * } - * - * // ComplexNumberTest.cpp - * #include "MySuites.h" - *  - * CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ComplexNumberTest, MySuites::math() ); - * \endcode - * - * \param ATestFixtureType Type of the test case class. - * \param suiteName Name of the global registry suite the test suite is  - *                  registered into. - * \warning This macro should be used only once per line of code (the line - *          number is used to name a hidden static variable). - * \see CPPUNIT_TEST_SUITE_REGISTRATION - * \see CPPUNIT_REGISTRY_ADD_TO_DEFAULT - * \see CPPUNIT_REGISTRY_ADD - * \see CPPUNIT_TEST_SUITE, CppUnit::AutoRegisterSuite,  - *      CppUnit::TestFactoryRegistry.. - */ -#define CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ATestFixtureType, suiteName ) \ -  static CPPUNIT_NS::AutoRegisterSuite< ATestFixtureType >                   \ -             CPPUNIT_MAKE_UNIQUE_NAME(autoRegisterRegistry__ )(suiteName) - -/*! Adds that the specified registry suite to another registry suite. - * \ingroup CreatingTestSuite - * - * Use this macros to automatically create test registry suite hierarchy. For example, - * if you want to create the following hierarchy: - * - Math - *   - IntegerMath - *   - FloatMath - *     - FastFloat - *     - StandardFloat - *  - * You can do this automatically with: - * \code - * CPPUNIT_REGISTRY_ADD( "FastFloat", "FloatMath" ); - * CPPUNIT_REGISTRY_ADD( "IntegerMath", "Math" ); - * CPPUNIT_REGISTRY_ADD( "FloatMath", "Math" ); - * CPPUNIT_REGISTRY_ADD( "StandardFloat", "FloatMath" ); - * \endcode - * - * There is no specific order of declaration. Think of it as declaring links. - * - * You register the test in each suite using CPPUNIT_TEST_SUITE_NAMED_REGISTRATION. - * - * \param which Name of the registry suite to add to the registry suite named \a to. - * \param to Name of the registry suite \a which is added to. - * \see CPPUNIT_REGISTRY_ADD_TO_DEFAULT, CPPUNIT_TEST_SUITE_NAMED_REGISTRATION. - */ -#define CPPUNIT_REGISTRY_ADD( which, to )                                     \ -  static CPPUNIT_NS::AutoRegisterRegistry                                     \ -             CPPUNIT_MAKE_UNIQUE_NAME( autoRegisterRegistry__ )( which, to ) - -/*! Adds that the specified registry suite to the default registry suite. - * \ingroup CreatingTestSuite - * - * This macro is just like CPPUNIT_REGISTRY_ADD except the specified registry - * suite is added to the default suite (root suite). - * - * \param which Name of the registry suite to add to the default registry suite. - * \see CPPUNIT_REGISTRY_ADD. - */ -#define CPPUNIT_REGISTRY_ADD_TO_DEFAULT( which )                         \ -  static CPPUNIT_NS::AutoRegisterRegistry                                \ -             CPPUNIT_MAKE_UNIQUE_NAME( autoRegisterRegistry__ )( which ) - -// Backwards compatibility -// (Not tested!) - -#if CPPUNIT_ENABLE_CU_TEST_MACROS - -#define CU_TEST_SUITE(tc) CPPUNIT_TEST_SUITE(tc) -#define CU_TEST_SUB_SUITE(tc,sc) CPPUNIT_TEST_SUB_SUITE(tc,sc) -#define CU_TEST(tm) CPPUNIT_TEST(tm) -#define CU_TEST_SUITE_END() CPPUNIT_TEST_SUITE_END() -#define CU_TEST_SUITE_REGISTRATION(tc) CPPUNIT_TEST_SUITE_REGISTRATION(tc) - -#endif - - -#endif  // CPPUNIT_EXTENSIONS_HELPERMACROS_H  | 
 Swift