mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Updated Catch library to 1.12.2
This commit is contained in:
		| @@ -1,6 +1,6 @@ | |||||||
| /* | /* | ||||||
|  *  Catch v1.9.7 |  *  Catch v1.12.2 | ||||||
|  *  Generated: 2017-08-10 23:49:15.233907 |  *  Generated: 2018-05-14 15:10:01.112442 | ||||||
|  *  ---------------------------------------------------------- |  *  ---------------------------------------------------------- | ||||||
|  *  This file has been merged from multiple headers. Please don't edit it directly |  *  This file has been merged from multiple headers. Please don't edit it directly | ||||||
|  *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved. |  *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved. | ||||||
| @@ -228,7 +228,12 @@ | |||||||
|     ( defined __GNUC__  && ( __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3 )) ) || \ |     ( defined __GNUC__  && ( __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3 )) ) || \ | ||||||
|     ( defined __clang__ && __clang_major__ >= 3 ) |     ( defined __clang__ && __clang_major__ >= 3 ) | ||||||
|  |  | ||||||
| #define CATCH_INTERNAL_CONFIG_COUNTER | // Use of __COUNTER__ is suppressed during code analysis in CLion/AppCode 2017.2.x and former, | ||||||
|  | // because __COUNTER__ is not properly handled by it. | ||||||
|  | // This does not affect compilation | ||||||
|  | #if ( !defined __JETBRAINS_IDE__ || __JETBRAINS_IDE__ >= 20170300L ) | ||||||
|  |     #define CATCH_INTERNAL_CONFIG_COUNTER | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| @@ -309,10 +314,7 @@ | |||||||
| #if defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_NO_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_CPP11) | #if defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_NO_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_CPP11) | ||||||
| #   define CATCH_CONFIG_CPP11_UNIQUE_PTR | #   define CATCH_CONFIG_CPP11_UNIQUE_PTR | ||||||
| #endif | #endif | ||||||
| // Use of __COUNTER__ is suppressed if __JETBRAINS_IDE__ is #defined (meaning we're being parsed by a JetBrains IDE for | #if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER) | ||||||
| // analytics) because, at time of writing, __COUNTER__ is not properly handled by it. |  | ||||||
| // This does not affect compilation |  | ||||||
| #if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER) && !defined(__JETBRAINS_IDE__) |  | ||||||
| #   define CATCH_CONFIG_COUNTER | #   define CATCH_CONFIG_COUNTER | ||||||
| #endif | #endif | ||||||
| #if defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_NO_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_NO_CPP11) | #if defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_NO_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_NO_CPP11) | ||||||
| @@ -1291,6 +1293,7 @@ namespace Catch { | |||||||
| #ifdef _MSC_VER | #ifdef _MSC_VER | ||||||
| #pragma warning(push) | #pragma warning(push) | ||||||
| #pragma warning(disable:4389) // '==' : signed/unsigned mismatch | #pragma warning(disable:4389) // '==' : signed/unsigned mismatch | ||||||
|  | #pragma warning(disable:4018) // more "signed/unsigned mismatch" | ||||||
| #pragma warning(disable:4312) // Converting int to T* using reinterpret_cast (issue on x64 platform) | #pragma warning(disable:4312) // Converting int to T* using reinterpret_cast (issue on x64 platform) | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| @@ -2166,6 +2169,12 @@ namespace Catch { | |||||||
|     }; |     }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | #if !defined(CATCH_CONFIG_DISABLE_STRINGIFICATION) | ||||||
|  | # define CATCH_INTERNAL_STRINGIFY(expr) #expr | ||||||
|  | #else | ||||||
|  | # define CATCH_INTERNAL_STRINGIFY(expr) "Disabled by CATCH_CONFIG_DISABLE_STRINGIFICATION" | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #if defined(CATCH_CONFIG_FAST_COMPILE) | #if defined(CATCH_CONFIG_FAST_COMPILE) | ||||||
| /////////////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////////////// | ||||||
| // We can speedup compilation significantly by breaking into debugger lower in | // We can speedup compilation significantly by breaking into debugger lower in | ||||||
| @@ -2181,7 +2190,7 @@ namespace Catch { | |||||||
| // the exception before it propagates back up to the runner. | // the exception before it propagates back up to the runner. | ||||||
| #define INTERNAL_CATCH_TEST_NO_TRY( macroName, resultDisposition, expr ) \ | #define INTERNAL_CATCH_TEST_NO_TRY( macroName, resultDisposition, expr ) \ | ||||||
|     do { \ |     do { \ | ||||||
|         Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \ |         Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(expr), resultDisposition ); \ | ||||||
|         __catchResult.setExceptionGuard(); \ |         __catchResult.setExceptionGuard(); \ | ||||||
|         CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \ |         CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \ | ||||||
|         ( __catchResult <= expr ).endExpression(); \ |         ( __catchResult <= expr ).endExpression(); \ | ||||||
| @@ -2193,9 +2202,9 @@ namespace Catch { | |||||||
|  |  | ||||||
| #define INTERNAL_CHECK_THAT_NO_TRY( macroName, matcher, resultDisposition, arg ) \ | #define INTERNAL_CHECK_THAT_NO_TRY( macroName, matcher, resultDisposition, arg ) \ | ||||||
|     do { \ |     do { \ | ||||||
|         Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #arg ", " #matcher, resultDisposition ); \ |         Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(arg) ", " CATCH_INTERNAL_STRINGIFY(matcher), resultDisposition ); \ | ||||||
|         __catchResult.setExceptionGuard(); \ |         __catchResult.setExceptionGuard(); \ | ||||||
|         __catchResult.captureMatch( arg, matcher, #matcher ); \ |         __catchResult.captureMatch( arg, matcher, CATCH_INTERNAL_STRINGIFY(matcher) ); \ | ||||||
|         __catchResult.unsetExceptionGuard(); \ |         __catchResult.unsetExceptionGuard(); \ | ||||||
|         INTERNAL_CATCH_REACT( __catchResult ) \ |         INTERNAL_CATCH_REACT( __catchResult ) \ | ||||||
|     } while( Catch::alwaysFalse() ) |     } while( Catch::alwaysFalse() ) | ||||||
| @@ -2214,7 +2223,7 @@ namespace Catch { | |||||||
| /////////////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////////////// | ||||||
| #define INTERNAL_CATCH_TEST( macroName, resultDisposition, expr ) \ | #define INTERNAL_CATCH_TEST( macroName, resultDisposition, expr ) \ | ||||||
|     do { \ |     do { \ | ||||||
|         Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \ |         Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(expr), resultDisposition ); \ | ||||||
|         try { \ |         try { \ | ||||||
|             CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \ |             CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \ | ||||||
|             ( __catchResult <= expr ).endExpression(); \ |             ( __catchResult <= expr ).endExpression(); \ | ||||||
| @@ -2240,7 +2249,7 @@ namespace Catch { | |||||||
| /////////////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////////////// | ||||||
| #define INTERNAL_CATCH_NO_THROW( macroName, resultDisposition, expr ) \ | #define INTERNAL_CATCH_NO_THROW( macroName, resultDisposition, expr ) \ | ||||||
|     do { \ |     do { \ | ||||||
|         Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \ |         Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(expr), resultDisposition ); \ | ||||||
|         try { \ |         try { \ | ||||||
|             static_cast<void>(expr); \ |             static_cast<void>(expr); \ | ||||||
|             __catchResult.captureResult( Catch::ResultWas::Ok ); \ |             __catchResult.captureResult( Catch::ResultWas::Ok ); \ | ||||||
| @@ -2254,7 +2263,7 @@ namespace Catch { | |||||||
| /////////////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////////////// | ||||||
| #define INTERNAL_CATCH_THROWS( macroName, resultDisposition, matcher, expr ) \ | #define INTERNAL_CATCH_THROWS( macroName, resultDisposition, matcher, expr ) \ | ||||||
|     do { \ |     do { \ | ||||||
|         Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition, #matcher ); \ |         Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(expr), resultDisposition, CATCH_INTERNAL_STRINGIFY(matcher) ); \ | ||||||
|         if( __catchResult.allowThrows() ) \ |         if( __catchResult.allowThrows() ) \ | ||||||
|             try { \ |             try { \ | ||||||
|                 static_cast<void>(expr); \ |                 static_cast<void>(expr); \ | ||||||
| @@ -2271,7 +2280,7 @@ namespace Catch { | |||||||
| /////////////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////////////// | ||||||
| #define INTERNAL_CATCH_THROWS_AS( macroName, exceptionType, resultDisposition, expr ) \ | #define INTERNAL_CATCH_THROWS_AS( macroName, exceptionType, resultDisposition, expr ) \ | ||||||
|     do { \ |     do { \ | ||||||
|         Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr ", " #exceptionType, resultDisposition ); \ |         Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(expr) ", " CATCH_INTERNAL_STRINGIFY(exceptionType), resultDisposition ); \ | ||||||
|         if( __catchResult.allowThrows() ) \ |         if( __catchResult.allowThrows() ) \ | ||||||
|             try { \ |             try { \ | ||||||
|                 static_cast<void>(expr); \ |                 static_cast<void>(expr); \ | ||||||
| @@ -2314,9 +2323,9 @@ namespace Catch { | |||||||
| /////////////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////////////// | ||||||
| #define INTERNAL_CHECK_THAT( macroName, matcher, resultDisposition, arg ) \ | #define INTERNAL_CHECK_THAT( macroName, matcher, resultDisposition, arg ) \ | ||||||
|     do { \ |     do { \ | ||||||
|         Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #arg ", " #matcher, resultDisposition ); \ |         Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(arg) ", " CATCH_INTERNAL_STRINGIFY(matcher), resultDisposition ); \ | ||||||
|         try { \ |         try { \ | ||||||
|             __catchResult.captureMatch( arg, matcher, #matcher ); \ |             __catchResult.captureMatch( arg, matcher, CATCH_INTERNAL_STRINGIFY(matcher) ); \ | ||||||
|         } catch( ... ) { \ |         } catch( ... ) { \ | ||||||
|             __catchResult.useActiveException( resultDisposition | Catch::ResultDisposition::ContinueOnFailure ); \ |             __catchResult.useActiveException( resultDisposition | Catch::ResultDisposition::ContinueOnFailure ); \ | ||||||
|         } \ |         } \ | ||||||
| @@ -2822,7 +2831,8 @@ namespace Detail { | |||||||
|             if (relativeOK) { |             if (relativeOK) { | ||||||
|                 return true; |                 return true; | ||||||
|             } |             } | ||||||
|             return std::fabs(lhs_v - rhs.m_value) < rhs.m_margin; |  | ||||||
|  |             return std::fabs(lhs_v - rhs.m_value) <= rhs.m_margin; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> |         template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type> | ||||||
| @@ -2894,7 +2904,7 @@ namespace Detail { | |||||||
|             if (relativeOK) { |             if (relativeOK) { | ||||||
|                 return true; |                 return true; | ||||||
|             } |             } | ||||||
|             return std::fabs(lhs - rhs.m_value) < rhs.m_margin; |             return std::fabs(lhs - rhs.m_value) <= rhs.m_margin; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         friend bool operator == ( Approx const& lhs, double rhs ) { |         friend bool operator == ( Approx const& lhs, double rhs ) { | ||||||
| @@ -3852,6 +3862,12 @@ namespace Catch { | |||||||
|         Yes, |         Yes, | ||||||
|         No |         No | ||||||
|     }; }; |     }; }; | ||||||
|  |     struct WaitForKeypress { enum When { | ||||||
|  |         Never, | ||||||
|  |         BeforeStart = 1, | ||||||
|  |         BeforeExit = 2, | ||||||
|  |         BeforeStartAndExit = BeforeStart | BeforeExit | ||||||
|  |     }; }; | ||||||
|  |  | ||||||
|     class TestSpec; |     class TestSpec; | ||||||
|  |  | ||||||
| @@ -3965,13 +3981,15 @@ namespace Catch { | |||||||
|             showHelp( false ), |             showHelp( false ), | ||||||
|             showInvisibles( false ), |             showInvisibles( false ), | ||||||
|             filenamesAsTags( false ), |             filenamesAsTags( false ), | ||||||
|  |             libIdentify( false ), | ||||||
|             abortAfter( -1 ), |             abortAfter( -1 ), | ||||||
|             rngSeed( 0 ), |             rngSeed( 0 ), | ||||||
|             verbosity( Verbosity::Normal ), |             verbosity( Verbosity::Normal ), | ||||||
|             warnings( WarnAbout::Nothing ), |             warnings( WarnAbout::Nothing ), | ||||||
|             showDurations( ShowDurations::DefaultForReporter ), |             showDurations( ShowDurations::DefaultForReporter ), | ||||||
|             runOrder( RunTests::InDeclarationOrder ), |             runOrder( RunTests::InDeclarationOrder ), | ||||||
|             useColour( UseColour::Auto ) |             useColour( UseColour::Auto ), | ||||||
|  |             waitForKeypress( WaitForKeypress::Never ) | ||||||
|         {} |         {} | ||||||
|  |  | ||||||
|         bool listTests; |         bool listTests; | ||||||
| @@ -3986,6 +4004,7 @@ namespace Catch { | |||||||
|         bool showHelp; |         bool showHelp; | ||||||
|         bool showInvisibles; |         bool showInvisibles; | ||||||
|         bool filenamesAsTags; |         bool filenamesAsTags; | ||||||
|  |         bool libIdentify; | ||||||
|  |  | ||||||
|         int abortAfter; |         int abortAfter; | ||||||
|         unsigned int rngSeed; |         unsigned int rngSeed; | ||||||
| @@ -3995,6 +4014,7 @@ namespace Catch { | |||||||
|         ShowDurations::OrNot showDurations; |         ShowDurations::OrNot showDurations; | ||||||
|         RunTests::InWhatOrder runOrder; |         RunTests::InWhatOrder runOrder; | ||||||
|         UseColour::YesOrNo useColour; |         UseColour::YesOrNo useColour; | ||||||
|  |         WaitForKeypress::When waitForKeypress; | ||||||
|  |  | ||||||
|         std::string outputFilename; |         std::string outputFilename; | ||||||
|         std::string name; |         std::string name; | ||||||
| @@ -5188,6 +5208,18 @@ namespace Catch { | |||||||
|         else |         else | ||||||
|             throw std::runtime_error( "colour mode must be one of: auto, yes or no" ); |             throw std::runtime_error( "colour mode must be one of: auto, yes or no" ); | ||||||
|     } |     } | ||||||
|  |     inline void setWaitForKeypress( ConfigData& config, std::string const& keypress ) { | ||||||
|  |         std::string keypressLc = toLower( keypress ); | ||||||
|  |         if( keypressLc == "start" ) | ||||||
|  |             config.waitForKeypress = WaitForKeypress::BeforeStart; | ||||||
|  |         else if( keypressLc == "exit" ) | ||||||
|  |             config.waitForKeypress = WaitForKeypress::BeforeExit; | ||||||
|  |         else if( keypressLc == "both" ) | ||||||
|  |             config.waitForKeypress = WaitForKeypress::BeforeStartAndExit; | ||||||
|  |         else | ||||||
|  |             throw std::runtime_error( "keypress argument must be one of: start, exit or both. '" + keypress + "' not recognised" ); | ||||||
|  |     }; | ||||||
|  |  | ||||||
|     inline void forceColour( ConfigData& config ) { |     inline void forceColour( ConfigData& config ) { | ||||||
|         config.useColour = UseColour::Yes; |         config.useColour = UseColour::Yes; | ||||||
|     } |     } | ||||||
| @@ -5323,6 +5355,14 @@ namespace Catch { | |||||||
|             .describe( "should output be colourised" ) |             .describe( "should output be colourised" ) | ||||||
|             .bind( &setUseColour, "yes|no" ); |             .bind( &setUseColour, "yes|no" ); | ||||||
|  |  | ||||||
|  |         cli["--libidentify"] | ||||||
|  |             .describe( "report name and version according to libidentify standard" ) | ||||||
|  |             .bind( &ConfigData::libIdentify ); | ||||||
|  |  | ||||||
|  |         cli["--wait-for-keypress"] | ||||||
|  |                 .describe( "waits for a keypress before exiting" ) | ||||||
|  |                 .bind( &setWaitForKeypress, "start|exit|both" ); | ||||||
|  |  | ||||||
|         return cli; |         return cli; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -6559,6 +6599,7 @@ namespace Catch { | |||||||
|  |  | ||||||
| #endif // not Windows | #endif // not Windows | ||||||
|  |  | ||||||
|  | #include <cassert> | ||||||
| #include <set> | #include <set> | ||||||
| #include <string> | #include <string> | ||||||
|  |  | ||||||
| @@ -6700,7 +6741,10 @@ namespace Catch { | |||||||
|                 m_totals.assertions.passed++; |                 m_totals.assertions.passed++; | ||||||
|             } |             } | ||||||
|             else if( !result.isOk() ) { |             else if( !result.isOk() ) { | ||||||
|                 m_totals.assertions.failed++; |                 if( m_activeTestCase->getTestCaseInfo().okToFail() ) | ||||||
|  |                     m_totals.assertions.failedButOk++; | ||||||
|  |                 else | ||||||
|  |                     m_totals.assertions.failed++; | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             // We have no use for the return value (whether messages should be cleared), because messages were made scoped |             // We have no use for the return value (whether messages should be cleared), because messages were made scoped | ||||||
| @@ -6889,12 +6933,6 @@ namespace Catch { | |||||||
|             Counts assertions = m_totals.assertions - prevAssertions; |             Counts assertions = m_totals.assertions - prevAssertions; | ||||||
|             bool missingAssertions = testForMissingAssertions( assertions ); |             bool missingAssertions = testForMissingAssertions( assertions ); | ||||||
|  |  | ||||||
|             if( testCaseInfo.okToFail() ) { |  | ||||||
|                 std::swap( assertions.failedButOk, assertions.failed ); |  | ||||||
|                 m_totals.assertions.failed -= assertions.failedButOk; |  | ||||||
|                 m_totals.assertions.failedButOk += assertions.failedButOk; |  | ||||||
|             } |  | ||||||
|  |  | ||||||
|             SectionStats testCaseSectionStats( testCaseSection, assertions, duration, missingAssertions ); |             SectionStats testCaseSectionStats( testCaseSection, assertions, duration, missingAssertions ); | ||||||
|             m_reporter->sectionEnded( testCaseSectionStats ); |             m_reporter->sectionEnded( testCaseSectionStats ); | ||||||
|         } |         } | ||||||
| @@ -7101,6 +7139,13 @@ namespace Catch { | |||||||
|             m_cli.usage( Catch::cout(), processName ); |             m_cli.usage( Catch::cout(), processName ); | ||||||
|             Catch::cout() << "For more detail usage please see the project docs\n" << std::endl; |             Catch::cout() << "For more detail usage please see the project docs\n" << std::endl; | ||||||
|         } |         } | ||||||
|  |         void libIdentify() { | ||||||
|  |             Catch::cout() | ||||||
|  |                     << std::left << std::setw(16) << "description: " << "A Catch test executable\n" | ||||||
|  |                     << std::left << std::setw(16) << "category: " << "testframework\n" | ||||||
|  |                     << std::left << std::setw(16) << "framework: " << "Catch Test\n" | ||||||
|  |                     << std::left << std::setw(16) << "version: " << libraryVersion() << std::endl; | ||||||
|  |         } | ||||||
|  |  | ||||||
|         int applyCommandLine( int argc, char const* const* const argv, OnUnusedOptions::DoWhat unusedOptionBehaviour = OnUnusedOptions::Fail ) { |         int applyCommandLine( int argc, char const* const* const argv, OnUnusedOptions::DoWhat unusedOptionBehaviour = OnUnusedOptions::Fail ) { | ||||||
|             try { |             try { | ||||||
| @@ -7108,6 +7153,8 @@ namespace Catch { | |||||||
|                 m_unusedTokens = m_cli.parseInto( Clara::argsToVector( argc, argv ), m_configData ); |                 m_unusedTokens = m_cli.parseInto( Clara::argsToVector( argc, argv ), m_configData ); | ||||||
|                 if( m_configData.showHelp ) |                 if( m_configData.showHelp ) | ||||||
|                     showHelp( m_configData.processName ); |                     showHelp( m_configData.processName ); | ||||||
|  |                 if( m_configData.libIdentify ) | ||||||
|  |                     libIdentify(); | ||||||
|                 m_config.reset(); |                 m_config.reset(); | ||||||
|             } |             } | ||||||
|             catch( std::exception& ex ) { |             catch( std::exception& ex ) { | ||||||
| @@ -7164,7 +7211,36 @@ namespace Catch { | |||||||
|     #endif |     #endif | ||||||
|  |  | ||||||
|         int run() { |         int run() { | ||||||
|             if( m_configData.showHelp ) |             if( ( m_configData.waitForKeypress & WaitForKeypress::BeforeStart ) != 0 ) { | ||||||
|  |                 Catch::cout() << "...waiting for enter/ return before starting" << std::endl; | ||||||
|  |                 static_cast<void>(std::getchar()); | ||||||
|  |             } | ||||||
|  |             int exitCode = runInternal(); | ||||||
|  |             if( ( m_configData.waitForKeypress & WaitForKeypress::BeforeExit ) != 0 ) { | ||||||
|  |                 Catch::cout() << "...waiting for enter/ return before exiting, with code: " << exitCode << std::endl; | ||||||
|  |                 static_cast<void>(std::getchar()); | ||||||
|  |             } | ||||||
|  |             return exitCode; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         Clara::CommandLine<ConfigData> const& cli() const { | ||||||
|  |             return m_cli; | ||||||
|  |         } | ||||||
|  |         std::vector<Clara::Parser::Token> const& unusedTokens() const { | ||||||
|  |             return m_unusedTokens; | ||||||
|  |         } | ||||||
|  |         ConfigData& configData() { | ||||||
|  |             return m_configData; | ||||||
|  |         } | ||||||
|  |         Config& config() { | ||||||
|  |             if( !m_config ) | ||||||
|  |                 m_config = new Config( m_configData ); | ||||||
|  |             return *m_config; | ||||||
|  |         } | ||||||
|  |     private: | ||||||
|  |  | ||||||
|  |         int runInternal() { | ||||||
|  |             if( m_configData.showHelp || m_configData.libIdentify ) | ||||||
|                 return 0; |                 return 0; | ||||||
|  |  | ||||||
|             try |             try | ||||||
| @@ -7188,21 +7264,6 @@ namespace Catch { | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         Clara::CommandLine<ConfigData> const& cli() const { |  | ||||||
|             return m_cli; |  | ||||||
|         } |  | ||||||
|         std::vector<Clara::Parser::Token> const& unusedTokens() const { |  | ||||||
|             return m_unusedTokens; |  | ||||||
|         } |  | ||||||
|         ConfigData& configData() { |  | ||||||
|             return m_configData; |  | ||||||
|         } |  | ||||||
|         Config& config() { |  | ||||||
|             if( !m_config ) |  | ||||||
|                 m_config = new Config( m_configData ); |  | ||||||
|             return *m_config; |  | ||||||
|         } |  | ||||||
|     private: |  | ||||||
|         Clara::CommandLine<ConfigData> m_cli; |         Clara::CommandLine<ConfigData> m_cli; | ||||||
|         std::vector<Clara::Parser::Token> m_unusedTokens; |         std::vector<Clara::Parser::Token> m_unusedTokens; | ||||||
|         ConfigData m_configData; |         ConfigData m_configData; | ||||||
| @@ -7227,14 +7288,14 @@ namespace Catch { | |||||||
| namespace Catch { | namespace Catch { | ||||||
|  |  | ||||||
|     struct RandomNumberGenerator { |     struct RandomNumberGenerator { | ||||||
|         typedef std::ptrdiff_t result_type; |         typedef unsigned int result_type; | ||||||
|  |  | ||||||
|         result_type operator()( result_type n ) const { return std::rand() % n; } |         result_type operator()( result_type n ) const { return std::rand() % n; } | ||||||
|  |  | ||||||
| #ifdef CATCH_CONFIG_CPP11_SHUFFLE | #ifdef CATCH_CONFIG_CPP11_SHUFFLE | ||||||
|         static constexpr result_type min() { return 0; } |         static constexpr result_type (min)() { return 0; } | ||||||
|         static constexpr result_type max() { return 1000000; } |         static constexpr result_type (max)() { return 1000000; } | ||||||
|         result_type operator()() const { return std::rand() % max(); } |         result_type operator()() const { return std::rand() % (max)(); } | ||||||
| #endif | #endif | ||||||
|         template<typename V> |         template<typename V> | ||||||
|         static void shuffle( V& vector ) { |         static void shuffle( V& vector ) { | ||||||
| @@ -8148,7 +8209,7 @@ namespace Catch { | |||||||
|  |  | ||||||
|     std::string AssertionResult::getExpression() const { |     std::string AssertionResult::getExpression() const { | ||||||
|         if( isFalseTest( m_info.resultDisposition ) ) |         if( isFalseTest( m_info.resultDisposition ) ) | ||||||
|             return '!' + capturedExpressionWithSecondArgument(m_info.capturedExpression, m_info.secondArg); |             return "!(" + capturedExpressionWithSecondArgument(m_info.capturedExpression, m_info.secondArg) + ")"; | ||||||
|         else |         else | ||||||
|             return capturedExpressionWithSecondArgument(m_info.capturedExpression, m_info.secondArg); |             return capturedExpressionWithSecondArgument(m_info.capturedExpression, m_info.secondArg); | ||||||
|     } |     } | ||||||
| @@ -8406,7 +8467,7 @@ namespace Catch { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     inline Version libraryVersion() { |     inline Version libraryVersion() { | ||||||
|         static Version version( 1, 9, 7, "", 0 ); |         static Version version( 1, 12, 2, "", 0 ); | ||||||
|         return version; |         return version; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -8441,11 +8502,18 @@ namespace Catch { | |||||||
|     : m_info( other.m_info ) |     : m_info( other.m_info ) | ||||||
|     {} |     {} | ||||||
|  |  | ||||||
|  | #if defined(_MSC_VER) | ||||||
|  | #pragma warning(push) | ||||||
|  | #pragma warning(disable:4996) // std::uncaught_exception is deprecated in C++17 | ||||||
|  | #endif | ||||||
|     ScopedMessage::~ScopedMessage() { |     ScopedMessage::~ScopedMessage() { | ||||||
|         if ( !std::uncaught_exception() ){ |         if ( !std::uncaught_exception() ){ | ||||||
|             getResultCapture().popScopedMessage(m_info); |             getResultCapture().popScopedMessage(m_info); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | #if defined(_MSC_VER) | ||||||
|  | #pragma warning(pop) | ||||||
|  | #endif | ||||||
|  |  | ||||||
| } // end namespace Catch | } // end namespace Catch | ||||||
|  |  | ||||||
| @@ -9104,6 +9172,8 @@ std::string toString( std::nullptr_t ) { | |||||||
| // #included from: catch_result_builder.hpp | // #included from: catch_result_builder.hpp | ||||||
| #define TWOBLUECUBES_CATCH_RESULT_BUILDER_HPP_INCLUDED | #define TWOBLUECUBES_CATCH_RESULT_BUILDER_HPP_INCLUDED | ||||||
|  |  | ||||||
|  | #include <cassert> | ||||||
|  |  | ||||||
| namespace Catch { | namespace Catch { | ||||||
|  |  | ||||||
|     ResultBuilder::ResultBuilder(   char const* macroName, |     ResultBuilder::ResultBuilder(   char const* macroName, | ||||||
| @@ -10220,12 +10290,12 @@ namespace Catch { | |||||||
|  |  | ||||||
|             bool includeResults = m_config->includeSuccessfulResults() || !result.isOk(); |             bool includeResults = m_config->includeSuccessfulResults() || !result.isOk(); | ||||||
|  |  | ||||||
|             if( includeResults ) { |             if( includeResults || result.getResultType() == ResultWas::Warning ) { | ||||||
|                 // Print any info messages in <Info> tags. |                 // Print any info messages in <Info> tags. | ||||||
|                 for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end(); |                 for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end(); | ||||||
|                      it != itEnd; |                      it != itEnd; | ||||||
|                      ++it ) { |                      ++it ) { | ||||||
|                     if( it->type == ResultWas::Info ) { |                     if( it->type == ResultWas::Info && includeResults ) { | ||||||
|                         m_xml.scopedElement( "Info" ) |                         m_xml.scopedElement( "Info" ) | ||||||
|                                 .writeText( it->message ); |                                 .writeText( it->message ); | ||||||
|                     } else if ( it->type == ResultWas::Warning ) { |                     } else if ( it->type == ResultWas::Warning ) { | ||||||
| @@ -10597,6 +10667,7 @@ namespace Catch { | |||||||
| // #included from: ../reporters/catch_reporter_console.hpp | // #included from: ../reporters/catch_reporter_console.hpp | ||||||
| #define TWOBLUECUBES_CATCH_REPORTER_CONSOLE_HPP_INCLUDED | #define TWOBLUECUBES_CATCH_REPORTER_CONSOLE_HPP_INCLUDED | ||||||
|  |  | ||||||
|  | #include <cassert> | ||||||
| #include <cfloat> | #include <cfloat> | ||||||
| #include <cstdio> | #include <cstdio> | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user