mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-04 00:51:52 +01:00 
			
		
		
		
	Compare commits
	
		
			10 Commits
		
	
	
		
			v1.3.0-dev
			...
			v1.3.0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					fdc42d0af4 | ||
| 
						 | 
					d274fc571c | ||
| 
						 | 
					7e15d9b20b | ||
| 
						 | 
					0e64973f55 | ||
| 
						 | 
					d758428fe2 | ||
| 
						 | 
					bc00d59a4e | ||
| 
						 | 
					15317632f3 | ||
| 
						 | 
					a28d40e941 | ||
| 
						 | 
					7da777a4b7 | ||
| 
						 | 
					1dd0d4c61a | 
@@ -1,6 +1,6 @@
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
*v1.3.0-develop.3*
 | 
			
		||||
*v1.3.0*
 | 
			
		||||
 | 
			
		||||
Build status (on Travis CI) [](https://travis-ci.org/philsquared/Catch)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -99,6 +99,7 @@
 | 
			
		||||
    #define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
 | 
			
		||||
    #define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
 | 
			
		||||
    #define CATCH_METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
 | 
			
		||||
    #define CATCH_REGISTER_TEST_CASE( ... ) INTERNAL_CATCH_REGISTER_TESTCASE( __VA_ARGS__ )
 | 
			
		||||
    #define CATCH_SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
 | 
			
		||||
    #define CATCH_FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", __VA_ARGS__ )
 | 
			
		||||
    #define CATCH_SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", __VA_ARGS__ )
 | 
			
		||||
@@ -106,6 +107,7 @@
 | 
			
		||||
    #define CATCH_TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
 | 
			
		||||
    #define CATCH_TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
 | 
			
		||||
    #define CATCH_METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
 | 
			
		||||
    #define CATCH_REGISTER_TEST_CASE( function, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( function, name, description )
 | 
			
		||||
    #define CATCH_SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
 | 
			
		||||
    #define CATCH_FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", msg )
 | 
			
		||||
    #define CATCH_SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", msg )
 | 
			
		||||
@@ -166,6 +168,7 @@
 | 
			
		||||
    #define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
 | 
			
		||||
    #define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
 | 
			
		||||
    #define METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
 | 
			
		||||
    #define REGISTER_TEST_CASE( ... ) INTERNAL_CATCH_REGISTER_TESTCASE( __VA_ARGS__ )
 | 
			
		||||
    #define SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
 | 
			
		||||
    #define FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", __VA_ARGS__ )
 | 
			
		||||
    #define SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", __VA_ARGS__ )
 | 
			
		||||
@@ -173,6 +176,7 @@
 | 
			
		||||
    #define TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
 | 
			
		||||
    #define TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
 | 
			
		||||
    #define METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
 | 
			
		||||
    #define REGISTER_TEST_CASE( ... ) INTERNAL_CATCH_REGISTER_TESTCASE( __VA_ARGS__ )
 | 
			
		||||
    #define SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
 | 
			
		||||
    #define FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", msg )
 | 
			
		||||
    #define SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", msg )
 | 
			
		||||
 
 | 
			
		||||
@@ -96,8 +96,7 @@ namespace Catch {
 | 
			
		||||
        return m_os;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef CATCH_CONFIG_NOSTDOUT // If you #define this you must implement this functions
 | 
			
		||||
#ifndef CATCH_CONFIG_NOSTDOUT // If you #define this you must implement these functions
 | 
			
		||||
    std::ostream& cout() {
 | 
			
		||||
        return std::cout;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -152,29 +152,38 @@ namespace Catch {
 | 
			
		||||
        return className;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void registerTestCase
 | 
			
		||||
        (   ITestCase* testCase,
 | 
			
		||||
            char const* classOrQualifiedMethodName,
 | 
			
		||||
            NameAndDesc const& nameAndDesc,
 | 
			
		||||
            SourceLineInfo const& lineInfo ) {
 | 
			
		||||
        
 | 
			
		||||
        getMutableRegistryHub().registerTest
 | 
			
		||||
            ( makeTestCase
 | 
			
		||||
                (   testCase,
 | 
			
		||||
                    extractClassName( classOrQualifiedMethodName ),
 | 
			
		||||
                    nameAndDesc.name,
 | 
			
		||||
                    nameAndDesc.description,
 | 
			
		||||
                    lineInfo ) );
 | 
			
		||||
    }
 | 
			
		||||
    void registerTestCaseFunction
 | 
			
		||||
        (   TestFunction function,
 | 
			
		||||
            SourceLineInfo const& lineInfo,
 | 
			
		||||
            NameAndDesc const& nameAndDesc ) {
 | 
			
		||||
        registerTestCase( new FreeFunctionTestCase( function ), "", nameAndDesc, lineInfo );
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    ///////////////////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
    AutoReg::AutoReg(   TestFunction function,
 | 
			
		||||
                        SourceLineInfo const& lineInfo,
 | 
			
		||||
                        NameAndDesc const& nameAndDesc ) {
 | 
			
		||||
        registerTestCase( new FreeFunctionTestCase( function ), "", nameAndDesc, lineInfo );
 | 
			
		||||
    AutoReg::AutoReg
 | 
			
		||||
        (   TestFunction function,
 | 
			
		||||
            SourceLineInfo const& lineInfo,
 | 
			
		||||
            NameAndDesc const& nameAndDesc ) {
 | 
			
		||||
        registerTestCaseFunction( function, lineInfo, nameAndDesc );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    AutoReg::~AutoReg() {}
 | 
			
		||||
 | 
			
		||||
    void AutoReg::registerTestCase( ITestCase* testCase,
 | 
			
		||||
                                    char const* classOrQualifiedMethodName,
 | 
			
		||||
                                    NameAndDesc const& nameAndDesc,
 | 
			
		||||
                                    SourceLineInfo const& lineInfo ) {
 | 
			
		||||
 | 
			
		||||
        getMutableRegistryHub().registerTest
 | 
			
		||||
            ( makeTestCase( testCase,
 | 
			
		||||
                            extractClassName( classOrQualifiedMethodName ),
 | 
			
		||||
                            nameAndDesc.name,
 | 
			
		||||
                            nameAndDesc.description,
 | 
			
		||||
                            lineInfo ) );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
} // end namespace Catch
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -42,27 +42,32 @@ struct NameAndDesc {
 | 
			
		||||
    const char* description;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void registerTestCase
 | 
			
		||||
    (   ITestCase* testCase,
 | 
			
		||||
        char const* className,
 | 
			
		||||
        NameAndDesc const& nameAndDesc,
 | 
			
		||||
        SourceLineInfo const& lineInfo );
 | 
			
		||||
 | 
			
		||||
struct AutoReg {
 | 
			
		||||
 | 
			
		||||
    AutoReg(    TestFunction function,
 | 
			
		||||
                SourceLineInfo const& lineInfo,
 | 
			
		||||
                NameAndDesc const& nameAndDesc );
 | 
			
		||||
    AutoReg
 | 
			
		||||
        (   TestFunction function,
 | 
			
		||||
            SourceLineInfo const& lineInfo,
 | 
			
		||||
            NameAndDesc const& nameAndDesc );
 | 
			
		||||
 | 
			
		||||
    template<typename C>
 | 
			
		||||
    AutoReg(    void (C::*method)(),
 | 
			
		||||
                char const* className,
 | 
			
		||||
                NameAndDesc const& nameAndDesc,
 | 
			
		||||
                SourceLineInfo const& lineInfo ) {
 | 
			
		||||
        registerTestCase(   new MethodTestCase<C>( method ),
 | 
			
		||||
                            className,
 | 
			
		||||
                            nameAndDesc,
 | 
			
		||||
                            lineInfo );
 | 
			
		||||
    }
 | 
			
		||||
    AutoReg
 | 
			
		||||
        (   void (C::*method)(),
 | 
			
		||||
            char const* className,
 | 
			
		||||
            NameAndDesc const& nameAndDesc,
 | 
			
		||||
            SourceLineInfo const& lineInfo ) {
 | 
			
		||||
 | 
			
		||||
    void registerTestCase(  ITestCase* testCase,
 | 
			
		||||
                            char const* className,
 | 
			
		||||
                            NameAndDesc const& nameAndDesc,
 | 
			
		||||
                            SourceLineInfo const& lineInfo );
 | 
			
		||||
        registerTestCase
 | 
			
		||||
            (   new MethodTestCase<C>( method ),
 | 
			
		||||
                className,
 | 
			
		||||
                nameAndDesc,
 | 
			
		||||
                lineInfo );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ~AutoReg();
 | 
			
		||||
 | 
			
		||||
@@ -71,6 +76,11 @@ private:
 | 
			
		||||
    void operator= ( AutoReg const& );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void registerTestCaseFunction
 | 
			
		||||
    (   TestFunction function,
 | 
			
		||||
        SourceLineInfo const& lineInfo,
 | 
			
		||||
        NameAndDesc const& nameAndDesc );
 | 
			
		||||
 | 
			
		||||
} // end namespace Catch
 | 
			
		||||
 | 
			
		||||
#ifdef CATCH_CONFIG_VARIADIC_MACROS
 | 
			
		||||
@@ -94,6 +104,10 @@ private:
 | 
			
		||||
        } \
 | 
			
		||||
        void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )::test()
 | 
			
		||||
 | 
			
		||||
    ///////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
    #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, ... ) \
 | 
			
		||||
        Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) );
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
    ///////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
    #define INTERNAL_CATCH_TESTCASE( Name, Desc ) \
 | 
			
		||||
@@ -115,6 +129,9 @@ private:
 | 
			
		||||
        } \
 | 
			
		||||
        void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )::test()
 | 
			
		||||
 | 
			
		||||
    ///////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
    #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, Name, Desc ) \
 | 
			
		||||
        Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) );
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif // TWOBLUECUBES_CATCH_TEST_REGISTRY_HPP_INCLUDED
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,7 @@ namespace Catch {
 | 
			
		||||
        return os;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Version libraryVersion( 1, 3, 0, "develop", 3 );
 | 
			
		||||
    Version libraryVersion( 1, 3, 0, "", 0 );
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -830,6 +830,6 @@ with expansion:
 | 
			
		||||
  "first" == "second"
 | 
			
		||||
 | 
			
		||||
===============================================================================
 | 
			
		||||
test cases: 166 | 123 passed | 42 failed |  1 failed as expected
 | 
			
		||||
assertions: 913 | 817 passed | 83 failed | 13 failed as expected
 | 
			
		||||
test cases: 167 | 124 passed | 42 failed |  1 failed as expected
 | 
			
		||||
assertions: 914 | 818 passed | 83 failed | 13 failed as expected
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6004,6 +6004,17 @@ with expansion:
 | 
			
		||||
  ************************
 | 
			
		||||
... message truncated due to excessive size
 | 
			
		||||
 | 
			
		||||
-------------------------------------------------------------------------------
 | 
			
		||||
ManuallyRegistered
 | 
			
		||||
-------------------------------------------------------------------------------
 | 
			
		||||
TestMain.cpp:<line number>
 | 
			
		||||
...............................................................................
 | 
			
		||||
 | 
			
		||||
TestMain.cpp:<line number>:
 | 
			
		||||
PASSED:
 | 
			
		||||
with message:
 | 
			
		||||
  was called
 | 
			
		||||
 | 
			
		||||
-------------------------------------------------------------------------------
 | 
			
		||||
Parsing a std::pair
 | 
			
		||||
-------------------------------------------------------------------------------
 | 
			
		||||
@@ -9034,6 +9045,6 @@ with expansion:
 | 
			
		||||
  1 > 0
 | 
			
		||||
 | 
			
		||||
===============================================================================
 | 
			
		||||
test cases: 166 | 122 passed | 43 failed |  1 failed as expected
 | 
			
		||||
assertions: 915 | 817 passed | 85 failed | 13 failed as expected
 | 
			
		||||
test cases: 167 | 123 passed | 43 failed |  1 failed as expected
 | 
			
		||||
assertions: 916 | 818 passed | 85 failed | 13 failed as expected
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
<testsuites>
 | 
			
		||||
  <testsuite name="CatchSelfTest" errors="13" failures="72" tests="915" hostname="tbd" time="{duration}" timestamp="tbd">
 | 
			
		||||
  <testsuite name="CatchSelfTest" errors="13" failures="72" tests="916" hostname="tbd" time="{duration}" timestamp="tbd">
 | 
			
		||||
    <testcase classname="global" name="toString(enum)" time="{duration}"/>
 | 
			
		||||
    <testcase classname="global" name="toString(enum w/operator<<)" time="{duration}"/>
 | 
			
		||||
    <testcase classname="global" name="toString(enum class)" time="{duration}"/>
 | 
			
		||||
@@ -547,6 +547,7 @@ hello
 | 
			
		||||
    </testcase>
 | 
			
		||||
    <testcase classname="global" name="Text can be formatted using the Text class" time="{duration}"/>
 | 
			
		||||
    <testcase classname="global" name="Long text is truncted" time="{duration}"/>
 | 
			
		||||
    <testcase classname="global" name="ManuallyRegistered" time="{duration}"/>
 | 
			
		||||
    <testcase classname="global" name="Parsing a std::pair" time="{duration}"/>
 | 
			
		||||
    <testcase classname="global" name="Where there is more to the expression after the RHS" time="{duration}"/>
 | 
			
		||||
    <testcase classname="global" name="Where the LHS is not a simple value" time="{duration}"/>
 | 
			
		||||
 
 | 
			
		||||
@@ -6284,6 +6284,9 @@ there"
 | 
			
		||||
      </Expression>
 | 
			
		||||
      <OverallResult success="true"/>
 | 
			
		||||
    </TestCase>
 | 
			
		||||
    <TestCase name="ManuallyRegistered">
 | 
			
		||||
      <OverallResult success="true"/>
 | 
			
		||||
    </TestCase>
 | 
			
		||||
    <TestCase name="Parsing a std::pair">
 | 
			
		||||
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
 | 
			
		||||
        <Original>
 | 
			
		||||
@@ -9502,7 +9505,7 @@ there"
 | 
			
		||||
      </Section>
 | 
			
		||||
      <OverallResult success="true"/>
 | 
			
		||||
    </TestCase>
 | 
			
		||||
    <OverallResults successes="817" failures="85" expectedFailures="13"/>
 | 
			
		||||
    <OverallResults successes="818" failures="85" expectedFailures="13"/>
 | 
			
		||||
  </Group>
 | 
			
		||||
  <OverallResults successes="817" failures="85" expectedFailures="13"/>
 | 
			
		||||
  <OverallResults successes="818" failures="85" expectedFailures="13"/>
 | 
			
		||||
</Catch>
 | 
			
		||||
 
 | 
			
		||||
@@ -112,6 +112,7 @@ public:
 | 
			
		||||
    CustomStdException( const std::string& msg )
 | 
			
		||||
    : m_msg( msg )
 | 
			
		||||
    {}
 | 
			
		||||
    ~CustomStdException() CATCH_NOEXCEPT {}
 | 
			
		||||
    
 | 
			
		||||
    std::string getMessage() const
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -449,3 +449,13 @@ TEST_CASE( "Long text is truncted", "[Text][Truncated]" ) {
 | 
			
		||||
    CHECK_THAT( t.toString(), EndsWith( "... message truncated due to excessive size" ) );
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
inline void manuallyRegisteredTestFunction() {
 | 
			
		||||
    SUCCEED( "was called" );
 | 
			
		||||
}
 | 
			
		||||
struct AutoTestReg {
 | 
			
		||||
    AutoTestReg() {
 | 
			
		||||
        REGISTER_TEST_CASE( manuallyRegisteredTestFunction, "ManuallyRegistered", "" );
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
AutoTestReg autoTestReg;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
/*
 | 
			
		||||
 *  Catch v1.3.0-develop.3
 | 
			
		||||
 *  Generated: 2015-11-18 08:39:33.879583
 | 
			
		||||
 *  Catch v1.3.0
 | 
			
		||||
 *  Generated: 2015-12-04 10:18:17.055188
 | 
			
		||||
 *  ----------------------------------------------------------
 | 
			
		||||
 *  This file has been merged from multiple headers. Please don't edit it directly
 | 
			
		||||
 *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
 | 
			
		||||
@@ -629,27 +629,32 @@ struct NameAndDesc {
 | 
			
		||||
    const char* description;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void registerTestCase
 | 
			
		||||
    (   ITestCase* testCase,
 | 
			
		||||
        char const* className,
 | 
			
		||||
        NameAndDesc const& nameAndDesc,
 | 
			
		||||
        SourceLineInfo const& lineInfo );
 | 
			
		||||
 | 
			
		||||
struct AutoReg {
 | 
			
		||||
 | 
			
		||||
    AutoReg(    TestFunction function,
 | 
			
		||||
                SourceLineInfo const& lineInfo,
 | 
			
		||||
                NameAndDesc const& nameAndDesc );
 | 
			
		||||
    AutoReg
 | 
			
		||||
        (   TestFunction function,
 | 
			
		||||
            SourceLineInfo const& lineInfo,
 | 
			
		||||
            NameAndDesc const& nameAndDesc );
 | 
			
		||||
 | 
			
		||||
    template<typename C>
 | 
			
		||||
    AutoReg(    void (C::*method)(),
 | 
			
		||||
                char const* className,
 | 
			
		||||
                NameAndDesc const& nameAndDesc,
 | 
			
		||||
                SourceLineInfo const& lineInfo ) {
 | 
			
		||||
        registerTestCase(   new MethodTestCase<C>( method ),
 | 
			
		||||
                            className,
 | 
			
		||||
                            nameAndDesc,
 | 
			
		||||
                            lineInfo );
 | 
			
		||||
    }
 | 
			
		||||
    AutoReg
 | 
			
		||||
        (   void (C::*method)(),
 | 
			
		||||
            char const* className,
 | 
			
		||||
            NameAndDesc const& nameAndDesc,
 | 
			
		||||
            SourceLineInfo const& lineInfo ) {
 | 
			
		||||
 | 
			
		||||
    void registerTestCase(  ITestCase* testCase,
 | 
			
		||||
                            char const* className,
 | 
			
		||||
                            NameAndDesc const& nameAndDesc,
 | 
			
		||||
                            SourceLineInfo const& lineInfo );
 | 
			
		||||
        registerTestCase
 | 
			
		||||
            (   new MethodTestCase<C>( method ),
 | 
			
		||||
                className,
 | 
			
		||||
                nameAndDesc,
 | 
			
		||||
                lineInfo );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ~AutoReg();
 | 
			
		||||
 | 
			
		||||
@@ -658,6 +663,11 @@ private:
 | 
			
		||||
    void operator= ( AutoReg const& );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void registerTestCaseFunction
 | 
			
		||||
    (   TestFunction function,
 | 
			
		||||
        SourceLineInfo const& lineInfo,
 | 
			
		||||
        NameAndDesc const& nameAndDesc );
 | 
			
		||||
 | 
			
		||||
} // end namespace Catch
 | 
			
		||||
 | 
			
		||||
#ifdef CATCH_CONFIG_VARIADIC_MACROS
 | 
			
		||||
@@ -681,6 +691,10 @@ private:
 | 
			
		||||
        } \
 | 
			
		||||
        void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )::test()
 | 
			
		||||
 | 
			
		||||
    ///////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
    #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, ... ) \
 | 
			
		||||
        Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) );
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
    ///////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
    #define INTERNAL_CATCH_TESTCASE( Name, Desc ) \
 | 
			
		||||
@@ -702,6 +716,9 @@ private:
 | 
			
		||||
        } \
 | 
			
		||||
        void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )::test()
 | 
			
		||||
 | 
			
		||||
    ///////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
    #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, Name, Desc ) \
 | 
			
		||||
        Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) );
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// #included from: internal/catch_capture.hpp
 | 
			
		||||
@@ -6296,29 +6313,38 @@ namespace Catch {
 | 
			
		||||
        return className;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ///////////////////////////////////////////////////////////////////////////
 | 
			
		||||
    void registerTestCase
 | 
			
		||||
        (   ITestCase* testCase,
 | 
			
		||||
            char const* classOrQualifiedMethodName,
 | 
			
		||||
            NameAndDesc const& nameAndDesc,
 | 
			
		||||
            SourceLineInfo const& lineInfo ) {
 | 
			
		||||
 | 
			
		||||
    AutoReg::AutoReg(   TestFunction function,
 | 
			
		||||
                        SourceLineInfo const& lineInfo,
 | 
			
		||||
                        NameAndDesc const& nameAndDesc ) {
 | 
			
		||||
        getMutableRegistryHub().registerTest
 | 
			
		||||
            ( makeTestCase
 | 
			
		||||
                (   testCase,
 | 
			
		||||
                    extractClassName( classOrQualifiedMethodName ),
 | 
			
		||||
                    nameAndDesc.name,
 | 
			
		||||
                    nameAndDesc.description,
 | 
			
		||||
                    lineInfo ) );
 | 
			
		||||
    }
 | 
			
		||||
    void registerTestCaseFunction
 | 
			
		||||
        (   TestFunction function,
 | 
			
		||||
            SourceLineInfo const& lineInfo,
 | 
			
		||||
            NameAndDesc const& nameAndDesc ) {
 | 
			
		||||
        registerTestCase( new FreeFunctionTestCase( function ), "", nameAndDesc, lineInfo );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    AutoReg::~AutoReg() {}
 | 
			
		||||
    ///////////////////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
    void AutoReg::registerTestCase( ITestCase* testCase,
 | 
			
		||||
                                    char const* classOrQualifiedMethodName,
 | 
			
		||||
                                    NameAndDesc const& nameAndDesc,
 | 
			
		||||
                                    SourceLineInfo const& lineInfo ) {
 | 
			
		||||
 | 
			
		||||
        getMutableRegistryHub().registerTest
 | 
			
		||||
            ( makeTestCase( testCase,
 | 
			
		||||
                            extractClassName( classOrQualifiedMethodName ),
 | 
			
		||||
                            nameAndDesc.name,
 | 
			
		||||
                            nameAndDesc.description,
 | 
			
		||||
                            lineInfo ) );
 | 
			
		||||
    AutoReg::AutoReg
 | 
			
		||||
        (   TestFunction function,
 | 
			
		||||
            SourceLineInfo const& lineInfo,
 | 
			
		||||
            NameAndDesc const& nameAndDesc ) {
 | 
			
		||||
        registerTestCaseFunction( function, lineInfo, nameAndDesc );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    AutoReg::~AutoReg() {}
 | 
			
		||||
 | 
			
		||||
} // end namespace Catch
 | 
			
		||||
 | 
			
		||||
// #included from: catch_reporter_registry.hpp
 | 
			
		||||
@@ -6601,7 +6627,7 @@ namespace Catch {
 | 
			
		||||
        return m_os;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#ifndef CATCH_CONFIG_NOSTDOUT // If you #define this you must implement this functions
 | 
			
		||||
#ifndef CATCH_CONFIG_NOSTDOUT // If you #define this you must implement these functions
 | 
			
		||||
    std::ostream& cout() {
 | 
			
		||||
        return std::cout;
 | 
			
		||||
    }
 | 
			
		||||
@@ -7241,7 +7267,7 @@ namespace Catch {
 | 
			
		||||
        return os;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Version libraryVersion( 1, 3, 0, "develop", 3 );
 | 
			
		||||
    Version libraryVersion( 1, 3, 0, "", 0 );
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -10061,6 +10087,7 @@ int main (int argc, char * const argv[]) {
 | 
			
		||||
    #define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
 | 
			
		||||
    #define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
 | 
			
		||||
    #define CATCH_METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
 | 
			
		||||
    #define CATCH_REGISTER_TEST_CASE( ... ) INTERNAL_CATCH_REGISTER_TESTCASE( __VA_ARGS__ )
 | 
			
		||||
    #define CATCH_SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
 | 
			
		||||
    #define CATCH_FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", __VA_ARGS__ )
 | 
			
		||||
    #define CATCH_SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", __VA_ARGS__ )
 | 
			
		||||
@@ -10068,6 +10095,7 @@ int main (int argc, char * const argv[]) {
 | 
			
		||||
    #define CATCH_TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
 | 
			
		||||
    #define CATCH_TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
 | 
			
		||||
    #define CATCH_METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
 | 
			
		||||
    #define CATCH_REGISTER_TEST_CASE( function, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( function, name, description )
 | 
			
		||||
    #define CATCH_SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
 | 
			
		||||
    #define CATCH_FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", msg )
 | 
			
		||||
    #define CATCH_SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", msg )
 | 
			
		||||
@@ -10128,6 +10156,7 @@ int main (int argc, char * const argv[]) {
 | 
			
		||||
    #define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
 | 
			
		||||
    #define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
 | 
			
		||||
    #define METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
 | 
			
		||||
    #define REGISTER_TEST_CASE( ... ) INTERNAL_CATCH_REGISTER_TESTCASE( __VA_ARGS__ )
 | 
			
		||||
    #define SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
 | 
			
		||||
    #define FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", __VA_ARGS__ )
 | 
			
		||||
    #define SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", __VA_ARGS__ )
 | 
			
		||||
@@ -10135,6 +10164,7 @@ int main (int argc, char * const argv[]) {
 | 
			
		||||
    #define TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
 | 
			
		||||
    #define TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
 | 
			
		||||
    #define METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
 | 
			
		||||
    #define REGISTER_TEST_CASE( ... ) INTERNAL_CATCH_REGISTER_TESTCASE( __VA_ARGS__ )
 | 
			
		||||
    #define SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
 | 
			
		||||
    #define FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", msg )
 | 
			
		||||
    #define SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", msg )
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user