mirror of https://github.com/catchorg/Catch2.git
parent
e83f839741
commit
d06dcedfdc
|
@ -364,35 +364,21 @@ private:
|
||||||
class ScopedInfo
|
class ScopedInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
///////////////////////////////////////////////////////////////////////////
|
ScopedInfo() : m_oss() {
|
||||||
ScopedInfo
|
|
||||||
() : m_oss()
|
|
||||||
{
|
|
||||||
Hub::getResultCapture().pushScopedInfo( this );
|
Hub::getResultCapture().pushScopedInfo( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
~ScopedInfo() {
|
||||||
~ScopedInfo
|
|
||||||
()
|
|
||||||
{
|
|
||||||
Hub::getResultCapture().popScopedInfo( this );
|
Hub::getResultCapture().popScopedInfo( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
template<typename T>
|
||||||
ScopedInfo& operator <<
|
ScopedInfo& operator << ( const T& value ) {
|
||||||
(
|
m_oss << value;
|
||||||
const char* str
|
|
||||||
)
|
|
||||||
{
|
|
||||||
m_oss << str;
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
std::string getInfo () const {
|
||||||
std::string getInfo
|
|
||||||
()
|
|
||||||
const
|
|
||||||
{
|
|
||||||
return m_oss.str();
|
return m_oss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -400,35 +386,28 @@ private:
|
||||||
std::ostringstream m_oss;
|
std::ostringstream m_oss;
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// This is just here to avoid compiler warnings with macro constants
|
// This is just here to avoid compiler warnings with macro constants
|
||||||
inline bool isTrue
|
inline bool isTrue( bool value ){ return value; }
|
||||||
(
|
|
||||||
bool value
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // end namespace Catch
|
} // end namespace Catch
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define INTERNAL_CATCH_ACCEPT_EXPR( expr, stopOnFailure ) \
|
#define INTERNAL_CATCH_ACCEPT_EXPR( expr, stopOnFailure, originalExpr ) \
|
||||||
if( Catch::ResultAction::Value internal_catch_action = Catch::Hub::getResultCapture().acceptExpression( expr ) ) \
|
if( Catch::ResultAction::Value internal_catch_action = Catch::Hub::getResultCapture().acceptExpression( expr ) ) \
|
||||||
{ \
|
{ \
|
||||||
if( internal_catch_action == Catch::ResultAction::DebugFailed ) BreakIntoDebugger(); \
|
if( internal_catch_action == Catch::ResultAction::DebugFailed ) BreakIntoDebugger(); \
|
||||||
if( Catch::isTrue( stopOnFailure ) ) throw Catch::TestFailureException(); \
|
if( Catch::isTrue( stopOnFailure ) ) throw Catch::TestFailureException(); \
|
||||||
|
if( Catch::isTrue( false ) ){ bool this_is_here_to_invoke_warnings = ( originalExpr ); Catch::isTrue( this_is_here_to_invoke_warnings ); } \
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define INTERNAL_CATCH_TEST( expr, isNot, stopOnFailure, macroName ) \
|
#define INTERNAL_CATCH_TEST( expr, isNot, stopOnFailure, macroName ) \
|
||||||
do{ try{ \
|
do{ try{ \
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr, isNot )->*expr ), stopOnFailure ); \
|
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr, isNot )->*expr ), stopOnFailure, expr ); \
|
||||||
if( Catch::isTrue( false ) ){ bool internal_catch_dummyResult = ( expr ); Catch::isTrue( internal_catch_dummyResult ); } \
|
|
||||||
}catch( Catch::TestFailureException& ){ \
|
}catch( Catch::TestFailureException& ){ \
|
||||||
throw; \
|
throw; \
|
||||||
} catch( ... ){ \
|
} catch( ... ){ \
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ) << Catch::Hub::getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), false ); \
|
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ) << Catch::Hub::getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), false, expr ); \
|
||||||
throw; \
|
throw; \
|
||||||
}}while( Catch::isTrue( false ) )
|
}}while( Catch::isTrue( false ) )
|
||||||
|
|
||||||
|
@ -447,11 +426,11 @@ inline bool isTrue
|
||||||
try \
|
try \
|
||||||
{ \
|
{ \
|
||||||
expr; \
|
expr; \
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ).setResultType( Catch::ResultWas::Ok ), stopOnFailure ); \
|
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ).setResultType( Catch::ResultWas::Ok ), stopOnFailure, false ); \
|
||||||
} \
|
} \
|
||||||
catch( ... ) \
|
catch( ... ) \
|
||||||
{ \
|
{ \
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ) << Catch::Hub::getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), stopOnFailure ); \
|
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ) << Catch::Hub::getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), stopOnFailure, false ); \
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -459,7 +438,7 @@ inline bool isTrue
|
||||||
try \
|
try \
|
||||||
{ \
|
{ \
|
||||||
expr; \
|
expr; \
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ).setResultType( Catch::ResultWas::DidntThrowException ), stopOnFailure ); \
|
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ).setResultType( Catch::ResultWas::DidntThrowException ), stopOnFailure, false ); \
|
||||||
} \
|
} \
|
||||||
catch( Catch::TestFailureException& ) \
|
catch( Catch::TestFailureException& ) \
|
||||||
{ \
|
{ \
|
||||||
|
@ -467,7 +446,7 @@ inline bool isTrue
|
||||||
} \
|
} \
|
||||||
catch( exceptionType ) \
|
catch( exceptionType ) \
|
||||||
{ \
|
{ \
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ).setResultType( Catch::ResultWas::Ok ), stopOnFailure ); \
|
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ).setResultType( Catch::ResultWas::Ok ), stopOnFailure, false ); \
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -475,7 +454,7 @@ inline bool isTrue
|
||||||
INTERNAL_CATCH_THROWS( expr, exceptionType, stopOnFailure, macroName ) \
|
INTERNAL_CATCH_THROWS( expr, exceptionType, stopOnFailure, macroName ) \
|
||||||
catch( ... ) \
|
catch( ... ) \
|
||||||
{ \
|
{ \
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ) << Catch::Hub::getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), stopOnFailure ); \
|
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ) << Catch::Hub::getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), stopOnFailure, false ); \
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -490,11 +469,11 @@ inline bool isTrue
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define INTERNAL_CHECK_THAT( arg, matcher, stopOnFailure, macroName ) \
|
#define INTERNAL_CHECK_THAT( arg, matcher, stopOnFailure, macroName ) \
|
||||||
do{ try{ \
|
do{ try{ \
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #arg " " #matcher, false ).acceptMatcher( matcher, arg, #matcher ) ), stopOnFailure ); \
|
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #arg " " #matcher, false ).acceptMatcher( matcher, arg, #matcher ) ), stopOnFailure, false ); \
|
||||||
}catch( Catch::TestFailureException& ){ \
|
}catch( Catch::TestFailureException& ){ \
|
||||||
throw; \
|
throw; \
|
||||||
} catch( ... ){ \
|
} catch( ... ){ \
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #arg " " #matcher ) << Catch::Hub::getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), false ); \
|
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ResultBuilder( CATCH_INTERNAL_LINEINFO, macroName, #arg " " #matcher ) << Catch::Hub::getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), false, false ); \
|
||||||
throw; \
|
throw; \
|
||||||
}}while( Catch::isTrue( false ) )
|
}}while( Catch::isTrue( false ) )
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,7 @@ namespace Catch
|
||||||
}
|
}
|
||||||
|
|
||||||
ATTRIBUTE_NORETURN
|
ATTRIBUTE_NORETURN
|
||||||
inline void throwLogicError( const std::string& message, const std::string& file, long line ) {
|
inline void throwLogicError( const std::string& message, const std::string& file, std::size_t line ) {
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
oss << "Internal Catch error: '" << message << "' at: " << SourceLineInfo( file, line );
|
oss << "Internal Catch error: '" << message << "' at: " << SourceLineInfo( file, line );
|
||||||
throw std::logic_error( oss.str() );
|
throw std::logic_error( oss.str() );
|
||||||
|
|
|
@ -58,7 +58,7 @@ namespace Internal
|
||||||
{
|
{
|
||||||
static bool evaluate( const T1& lhs, const T2& rhs)
|
static bool evaluate( const T1& lhs, const T2& rhs)
|
||||||
{
|
{
|
||||||
return const_cast<T1&>( lhs ) == const_cast<T2&>( rhs );
|
return const_cast<T1&>( lhs ) == const_cast<T2&>( rhs );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
template<typename T1, typename T2>
|
template<typename T1, typename T2>
|
||||||
|
|
|
@ -68,7 +68,7 @@ public:
|
||||||
()
|
()
|
||||||
const
|
const
|
||||||
{
|
{
|
||||||
return 1+m_to-m_from;
|
return static_cast<std::size_t>( 1+m_to-m_from );
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -1,15 +1,10 @@
|
||||||
/*
|
/*
|
||||||
* catch_interfaces_reporter.h
|
|
||||||
* Test
|
|
||||||
*
|
|
||||||
* Created by Phil on 31/12/2010.
|
* Created by Phil on 31/12/2010.
|
||||||
* Copyright 2010 Two Blue Cubes Ltd. All rights reserved.
|
* Copyright 2010 Two Blue Cubes Ltd. All rights reserved.
|
||||||
*
|
*
|
||||||
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef TWOBLUECUBES_CATCH_IREPORTERREGISTRY_INCLUDED
|
#ifndef TWOBLUECUBES_CATCH_IREPORTERREGISTRY_INCLUDED
|
||||||
#define TWOBLUECUBES_CATCH_IREPORTERREGISTRY_INCLUDED
|
#define TWOBLUECUBES_CATCH_IREPORTERREGISTRY_INCLUDED
|
||||||
|
|
||||||
|
@ -23,115 +18,45 @@
|
||||||
|
|
||||||
namespace Catch
|
namespace Catch
|
||||||
{
|
{
|
||||||
///////////////////////////////////////////////////////////////////////////
|
struct IReporterConfig {
|
||||||
struct IReporterConfig
|
virtual ~IReporterConfig() {}
|
||||||
{
|
virtual std::ostream& stream () const = 0;
|
||||||
virtual ~IReporterConfig
|
virtual bool includeSuccessfulResults () const = 0;
|
||||||
()
|
virtual std::string getName () const = 0;
|
||||||
{}
|
|
||||||
|
|
||||||
virtual std::ostream& stream
|
|
||||||
() const = 0;
|
|
||||||
|
|
||||||
virtual bool includeSuccessfulResults
|
|
||||||
() const = 0;
|
|
||||||
|
|
||||||
virtual std::string getName
|
|
||||||
() const = 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class TestCaseInfo;
|
class TestCaseInfo;
|
||||||
class ResultInfo;
|
class ResultInfo;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
struct IReporter : IShared {
|
||||||
struct IReporter : IShared
|
virtual ~IReporter() {}
|
||||||
{
|
virtual bool shouldRedirectStdout() const = 0;
|
||||||
virtual ~IReporter
|
virtual void StartTesting() = 0;
|
||||||
(){}
|
virtual void EndTesting( const Totals& totals ) = 0;
|
||||||
|
virtual void StartGroup( const std::string& groupName ) = 0;
|
||||||
virtual bool shouldRedirectStdout
|
virtual void EndGroup( const std::string& groupName, const Totals& totals ) = 0;
|
||||||
() const = 0;
|
virtual void StartSection( const std::string& sectionName, const std::string description ) = 0;
|
||||||
|
virtual void EndSection( const std::string& sectionName, const Counts& assertions ) = 0;
|
||||||
virtual void StartTesting
|
virtual void StartTestCase( const TestCaseInfo& testInfo ) = 0;
|
||||||
() = 0;
|
virtual void EndTestCase( const TestCaseInfo& testInfo, const Totals& totals, const std::string& stdOut, const std::string& stdErr ) = 0;
|
||||||
|
virtual void Result( const ResultInfo& result ) = 0;
|
||||||
virtual void EndTesting
|
|
||||||
( const Totals& totals
|
|
||||||
) = 0;
|
|
||||||
|
|
||||||
virtual void StartGroup
|
|
||||||
( const std::string& groupName
|
|
||||||
) = 0;
|
|
||||||
|
|
||||||
virtual void EndGroup
|
|
||||||
( const std::string& groupName,
|
|
||||||
const Totals& totals
|
|
||||||
) = 0;
|
|
||||||
|
|
||||||
virtual void StartSection
|
|
||||||
( const std::string& sectionName,
|
|
||||||
const std::string description
|
|
||||||
) = 0;
|
|
||||||
|
|
||||||
virtual void EndSection
|
|
||||||
( const std::string& sectionName,
|
|
||||||
const Counts& assertions
|
|
||||||
) = 0;
|
|
||||||
|
|
||||||
virtual void StartTestCase
|
|
||||||
( const TestCaseInfo& testInfo
|
|
||||||
) = 0;
|
|
||||||
|
|
||||||
virtual void EndTestCase
|
|
||||||
( const TestCaseInfo& testInfo,
|
|
||||||
const Totals& totals,
|
|
||||||
const std::string& stdOut,
|
|
||||||
const std::string& stdErr
|
|
||||||
) = 0;
|
|
||||||
|
|
||||||
virtual void Result
|
|
||||||
( const ResultInfo& result
|
|
||||||
) = 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
struct IReporterFactory {
|
||||||
struct IReporterFactory
|
virtual ~IReporterFactory() {}
|
||||||
{
|
virtual IReporter* create( const IReporterConfig& config ) const = 0;
|
||||||
virtual ~IReporterFactory
|
virtual std::string getDescription() const = 0;
|
||||||
(){}
|
|
||||||
|
|
||||||
virtual IReporter* create
|
|
||||||
( const IReporterConfig& config
|
|
||||||
) const = 0;
|
|
||||||
|
|
||||||
virtual std::string getDescription
|
|
||||||
() const = 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
struct IReporterRegistry {
|
||||||
struct IReporterRegistry
|
|
||||||
{
|
|
||||||
typedef std::map<std::string, IReporterFactory*> FactoryMap;
|
typedef std::map<std::string, IReporterFactory*> FactoryMap;
|
||||||
|
|
||||||
virtual ~IReporterRegistry
|
virtual ~IReporterRegistry() {}
|
||||||
(){}
|
virtual IReporter* create( const std::string& name, const IReporterConfig& config ) const = 0;
|
||||||
|
virtual void registerReporter( const std::string& name, IReporterFactory* factory ) = 0;
|
||||||
virtual IReporter* create
|
virtual const FactoryMap& getFactories() const = 0;
|
||||||
( const std::string& name,
|
|
||||||
const IReporterConfig& config
|
|
||||||
) const = 0;
|
|
||||||
|
|
||||||
virtual void registerReporter
|
|
||||||
( const std::string& name,
|
|
||||||
IReporterFactory* factory
|
|
||||||
) = 0;
|
|
||||||
|
|
||||||
virtual const FactoryMap& getFactories
|
|
||||||
() const = 0;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
|
||||||
inline std::string trim( const std::string& str )
|
inline std::string trim( const std::string& str )
|
||||||
{
|
{
|
||||||
std::string::size_type start = str.find_first_not_of( "\n\r\t " );
|
std::string::size_type start = str.find_first_not_of( "\n\r\t " );
|
||||||
|
@ -139,8 +64,6 @@ namespace Catch
|
||||||
|
|
||||||
return start != std::string::npos ? str.substr( start, 1+end-start ) : "";
|
return start != std::string::npos ? str.substr( start, 1+end-start ) : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // TWOBLUECUBES_CATCH_IREPORTERREGISTRY_INCLUDED
|
#endif // TWOBLUECUBES_CATCH_IREPORTERREGISTRY_INCLUDED
|
||||||
|
|
|
@ -64,7 +64,7 @@ namespace Catch
|
||||||
{
|
{
|
||||||
if( pbase() != pptr() )
|
if( pbase() != pptr() )
|
||||||
{
|
{
|
||||||
m_writer( std::string( pbase(), pptr() - pbase() ) );
|
m_writer( std::string( pbase(), static_cast<std::string::size_type>( pptr() - pbase() ) ) );
|
||||||
setp( pbase(), epptr() );
|
setp( pbase(), epptr() );
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -247,7 +247,7 @@ TEST_CASE( "./succeeding/conditions/ptr",
|
||||||
REQUIRE( returnsNull() == NULL );
|
REQUIRE( returnsNull() == NULL );
|
||||||
REQUIRE( returnsConstNull() == NULL );
|
REQUIRE( returnsConstNull() == NULL );
|
||||||
|
|
||||||
// REQUIRE( NULL != p ); // gives warning, but should compile and run ok
|
REQUIRE( NULL != p );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Not (!) tests
|
// Not (!) tests
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
#include "catch.hpp"
|
#include "catch.hpp"
|
||||||
|
|
||||||
inline size_t multiply( size_t a, size_t b )
|
inline int multiply( int a, int b )
|
||||||
{
|
{
|
||||||
return a*b;
|
return a*b;
|
||||||
}
|
}
|
||||||
|
@ -21,8 +21,8 @@ TEST_CASE( "./succeeding/generators/1", "Generators over two ranges" )
|
||||||
{
|
{
|
||||||
using namespace Catch::Generators;
|
using namespace Catch::Generators;
|
||||||
|
|
||||||
size_t i = GENERATE( between( 1, 5 ).then( values( 15, 20, 21 ).then( 36 ) ) );
|
int i = GENERATE( between( 1, 5 ).then( values( 15, 20, 21 ).then( 36 ) ) );
|
||||||
size_t j = GENERATE( between( 100, 107 ) );
|
int j = GENERATE( between( 100, 107 ) );
|
||||||
|
|
||||||
REQUIRE( multiply( i, 2 ) == i*2 );
|
REQUIRE( multiply( i, 2 ) == i*2 );
|
||||||
REQUIRE( multiply( j, 2 ) == j*2 );
|
REQUIRE( multiply( j, 2 ) == j*2 );
|
||||||
|
|
|
@ -43,7 +43,7 @@ TEST_CASE( "selftest/main", "Runs all Catch self tests and checks their results"
|
||||||
"Number of 'succeeding' tests is fixed" )
|
"Number of 'succeeding' tests is fixed" )
|
||||||
{
|
{
|
||||||
runner.runMatching( "./succeeding/*" );
|
runner.runMatching( "./succeeding/*" );
|
||||||
CHECK( runner.getTotals().assertions.passed == 275 );
|
CHECK( runner.getTotals().assertions.passed == 276 );
|
||||||
CHECK( runner.getTotals().assertions.failed == 0 );
|
CHECK( runner.getTotals().assertions.failed == 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -209,7 +209,7 @@ namespace ObjectWithNonConstEqualityOperator
|
||||||
TEST_CASE("./succeeding/non-const==", "Demonstrate that a non-const == is not used")
|
TEST_CASE("./succeeding/non-const==", "Demonstrate that a non-const == is not used")
|
||||||
{
|
{
|
||||||
Test t( 1 );
|
Test t( 1 );
|
||||||
REQUIRE( t == 1 );
|
REQUIRE( t == 1u );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -292,6 +292,7 @@
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||||
|
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES;
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
GCC_DYNAMIC_NO_PIC = NO;
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
|
@ -318,6 +319,7 @@
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||||
|
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES;
|
||||||
COPY_PHASE_STRIP = YES;
|
COPY_PHASE_STRIP = YES;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
|
|
Loading…
Reference in New Issue