mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-09 15:49:53 +01:00
Squashed commit of the following:
commit2a1e8bfc6e
Author: Phil Nash <github@philnash.me> Date: Thu Nov 1 08:16:15 2012 +0000 Updated colour comments commitf0f407fc3e
Author: Phil Nash <github@philnash.me> Date: Wed Oct 31 18:28:21 2012 +0000 Manually applied merge #133 from Master commit355b95fda1
Author: Phil Nash <github@philnash.me> Date: Wed Oct 31 18:04:22 2012 +0000 Cleaned up ANSI colour code impl a bit commit778f9c4fc7
Author: Phil Nash <github@philnash.me> Date: Tue Oct 30 09:09:30 2012 +0000 Removed "no-" from Wno-global-constructors when disabling commit5efa4bcb8a
Author: Phil Nash <github@philnash.me> Date: Mon Oct 29 20:49:22 2012 +0000 Regenerated single_include commit108f1937d8
Author: Phil Nash <github@philnash.me> Date: Mon Oct 29 20:46:45 2012 +0000 Added terminal colour codes for POSIX With thanks to Adam Strzelecki commit8f4cc541d5
Author: Phil Nash <github@philnash.me> Date: Mon Oct 29 19:55:34 2012 +0000 Added regression test baselines commit2e203a1834
Author: Phil Nash <github@philnash.me> Date: Mon Oct 29 19:55:13 2012 +0000 Fixed remaining reporting regressions commit134e45b3ad
Author: Phil Nash <github@philnash.me> Date: Sun Oct 28 20:57:21 2012 +0000 Fixed #132 commit2f92db9898
Author: Phil Nash <github@philnash.me> Date: Sun Oct 28 12:15:34 2012 +0000 Updated the readme specifically for the Integration branch commit82acc2ca05
Author: Phil Nash <github@philnash.me> Date: Sun Oct 28 12:07:17 2012 +0000 Regenerated single include commitfe1d7c1d08
Author: Phil Nash <github@philnash.me> Date: Sun Oct 28 10:27:44 2012 +0000 Small fixes and tweaks commit355b5e546d
Author: Phil Nash <github@philnash.me> Date: Fri Oct 26 09:05:36 2012 +0100 Some tidy-up commitf847186ebb
Author: Phil Nash <github@philnash.me> Date: Fri Oct 26 08:45:23 2012 +0100 AssertionResultBuilder -> ExpressionResultBuilder commit8cca2f1369
Author: Phil Nash <github@philnash.me> Date: Wed Oct 24 22:09:01 2012 +0100 ExpressionBuilder ->ExpressionDecomposer Expression -> ExpressionLhs commite04e74f896
Author: Phil Nash <github@philnash.me> Date: Wed Oct 24 21:59:47 2012 +0100 More AssertionResult refactoring commit1dd56d4d2b
Author: Phil Nash <github@philnash.me> Date: Fri Oct 19 08:01:34 2012 +0100 AssertionResultBuilder can be constructed from result type commitf2d5f1b3e4
Author: Phil Nash <github@philnash.me> Date: Fri Oct 19 08:01:05 2012 +0100 Expression has its own result builder - not passed in from expression builder commite3b111a39a
Author: Phil Nash <github@philnash.me> Date: Thu Oct 18 22:59:16 2012 +0100 streamlined acceptResult commit3ad13256e1
Author: Phil Nash <github@philnash.me> Date: Thu Oct 18 08:39:44 2012 +0100 Refactored assertion builder stuff out of expression builder commitc96f9330a0
Author: Phil Nash <github@philnash.me> Date: Wed Oct 17 08:14:22 2012 +0100 Collect assertion info up front commita5fa78284d
Author: Phil Nash <github@philnash.me> Date: Tue Oct 16 08:33:13 2012 +0100 ResultData -> AssertionResultData commitc597a893fa
Author: Phil Nash <github@philnash.me> Date: Tue Oct 16 08:31:05 2012 +0100 ResultInfo -> AssertionResult filenames and variables commitd16955f63a
Author: Phil Nash <github@philnash.me> Date: Tue Oct 16 08:27:21 2012 +0100 Renamed ResultInfo -> AssertionResult commit175da3ef64
Author: Phil Nash <github@philnash.me> Date: Fri Oct 12 18:39:22 2012 +0100 regen test 3
This commit is contained in:
parent
b18d719f9d
commit
ce612bf656
@ -10,7 +10,7 @@
|
|||||||
#define TWOBLUECUBES_CATCH_HPP_INCLUDED
|
#define TWOBLUECUBES_CATCH_HPP_INCLUDED
|
||||||
|
|
||||||
#ifdef __clang__
|
#ifdef __clang__
|
||||||
#pragma clang diagnostic ignored "-Wno-global-constructors"
|
#pragma clang diagnostic ignored "-Wglobal-constructors"
|
||||||
|
|
||||||
#pragma clang diagnostic push
|
#pragma clang diagnostic push
|
||||||
#pragma clang diagnostic ignored "-Wpadded"
|
#pragma clang diagnostic ignored "-Wpadded"
|
||||||
@ -71,9 +71,9 @@
|
|||||||
#define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( msg, Catch::ResultWas::Warning, false, "CATCH_WARN" )
|
#define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( msg, Catch::ResultWas::Warning, false, "CATCH_WARN" )
|
||||||
#define CATCH_FAIL( msg ) INTERNAL_CATCH_MSG( msg, Catch::ResultWas::ExplicitFailure, true, "CATCH_FAIL" )
|
#define CATCH_FAIL( msg ) INTERNAL_CATCH_MSG( msg, Catch::ResultWas::ExplicitFailure, true, "CATCH_FAIL" )
|
||||||
#define CATCH_SUCCEED( msg ) INTERNAL_CATCH_MSG( msg, Catch::ResultWas::Ok, false, "CATCH_SUCCEED" )
|
#define CATCH_SUCCEED( msg ) INTERNAL_CATCH_MSG( msg, Catch::ResultWas::Ok, false, "CATCH_SUCCEED" )
|
||||||
#define CATCH_SCOPED_INFO( msg ) INTERNAL_CATCH_SCOPED_INFO( msg )
|
#define CATCH_SCOPED_INFO( msg ) INTERNAL_CATCH_SCOPED_INFO( msg, "CATCH_SCOPED_INFO" )
|
||||||
#define CATCH_CAPTURE( msg ) INTERNAL_CATCH_MSG( #msg " := " << msg, Catch::ResultWas::Info, false, "CATCH_CAPTURE" )
|
#define CATCH_CAPTURE( msg ) INTERNAL_CATCH_MSG( #msg " := " << msg, Catch::ResultWas::Info, false, "CATCH_CAPTURE" )
|
||||||
#define CATCH_SCOPED_CAPTURE( msg ) INTERNAL_CATCH_SCOPED_INFO( #msg " := " << msg )
|
#define CATCH_SCOPED_CAPTURE( msg ) INTERNAL_CATCH_SCOPED_INFO( #msg " := " << msg, "CATCH_SCOPED_CAPTURE" )
|
||||||
|
|
||||||
#define CATCH_SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
|
#define CATCH_SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
|
||||||
|
|
||||||
@ -116,9 +116,9 @@
|
|||||||
#define WARN( msg ) INTERNAL_CATCH_MSG( msg, Catch::ResultWas::Warning, false, "WARN" )
|
#define WARN( msg ) INTERNAL_CATCH_MSG( msg, Catch::ResultWas::Warning, false, "WARN" )
|
||||||
#define FAIL( msg ) INTERNAL_CATCH_MSG( msg, Catch::ResultWas::ExplicitFailure, true, "FAIL" )
|
#define FAIL( msg ) INTERNAL_CATCH_MSG( msg, Catch::ResultWas::ExplicitFailure, true, "FAIL" )
|
||||||
#define SUCCEED( msg ) INTERNAL_CATCH_MSG( msg, Catch::ResultWas::Ok, false, "SUCCEED" )
|
#define SUCCEED( msg ) INTERNAL_CATCH_MSG( msg, Catch::ResultWas::Ok, false, "SUCCEED" )
|
||||||
#define SCOPED_INFO( msg ) INTERNAL_CATCH_SCOPED_INFO( msg )
|
#define SCOPED_INFO( msg ) INTERNAL_CATCH_SCOPED_INFO( msg, "SCOPED_INFO" )
|
||||||
#define CAPTURE( msg ) INTERNAL_CATCH_MSG( #msg " := " << msg, Catch::ResultWas::Info, false, "CAPTURE" )
|
#define CAPTURE( msg ) INTERNAL_CATCH_MSG( #msg " := " << msg, Catch::ResultWas::Info, false, "CAPTURE" )
|
||||||
#define SCOPED_CAPTURE( msg ) INTERNAL_CATCH_SCOPED_INFO( #msg " := " << msg )
|
#define SCOPED_CAPTURE( msg ) INTERNAL_CATCH_SCOPED_INFO( #msg " := " << msg, "SCOPED_CAPTURE" )
|
||||||
|
|
||||||
#define SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
|
#define SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
|
||||||
|
|
||||||
|
66
include/internal/catch_assertionresult.h
Normal file
66
include/internal/catch_assertionresult.h
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
/*
|
||||||
|
* Created by Phil on 28/10/2010.
|
||||||
|
* Copyright 2010 Two Blue Cubes Ltd. All rights reserved.
|
||||||
|
*
|
||||||
|
* 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)
|
||||||
|
*/
|
||||||
|
#ifndef TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED
|
||||||
|
#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "catch_result_type.h"
|
||||||
|
|
||||||
|
namespace Catch {
|
||||||
|
|
||||||
|
struct AssertionInfo
|
||||||
|
{
|
||||||
|
AssertionInfo() {}
|
||||||
|
AssertionInfo( const std::string& _macroName, const SourceLineInfo& _lineInfo, const std::string& _capturedExpression, bool _shouldNegate )
|
||||||
|
: macroName( _macroName ),
|
||||||
|
lineInfo( _lineInfo ),
|
||||||
|
capturedExpression( _capturedExpression )
|
||||||
|
{
|
||||||
|
if( _shouldNegate )
|
||||||
|
capturedExpression = "!" + _capturedExpression;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string macroName;
|
||||||
|
SourceLineInfo lineInfo;
|
||||||
|
std::string capturedExpression;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct AssertionResultData
|
||||||
|
{
|
||||||
|
AssertionResultData() : resultType( ResultWas::Unknown ) {}
|
||||||
|
|
||||||
|
std::string reconstructedExpression;
|
||||||
|
std::string message;
|
||||||
|
ResultWas::OfType resultType;
|
||||||
|
};
|
||||||
|
|
||||||
|
class AssertionResult {
|
||||||
|
public:
|
||||||
|
AssertionResult();
|
||||||
|
AssertionResult( const AssertionInfo& info, const AssertionResultData& data );
|
||||||
|
~AssertionResult();
|
||||||
|
|
||||||
|
bool ok() const;
|
||||||
|
ResultWas::OfType getResultType() const;
|
||||||
|
bool hasExpression() const;
|
||||||
|
bool hasMessage() const;
|
||||||
|
std::string getExpression() const;
|
||||||
|
bool hasExpandedExpression() const;
|
||||||
|
std::string getExpandedExpression() const;
|
||||||
|
std::string getMessage() const;
|
||||||
|
SourceLineInfo getSourceInfo() const;
|
||||||
|
std::string getTestMacroName() const;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
AssertionInfo m_info;
|
||||||
|
AssertionResultData m_resultData;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end namespace Catch
|
||||||
|
|
||||||
|
#endif // TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED
|
65
include/internal/catch_assertionresult.hpp
Normal file
65
include/internal/catch_assertionresult.hpp
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
/*
|
||||||
|
* Created by Phil on 8/8/12
|
||||||
|
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||||
|
*
|
||||||
|
* 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)
|
||||||
|
*/
|
||||||
|
#ifndef TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED
|
||||||
|
#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED
|
||||||
|
|
||||||
|
#include "catch_assertionresult.h"
|
||||||
|
|
||||||
|
namespace Catch {
|
||||||
|
|
||||||
|
AssertionResult::AssertionResult() {}
|
||||||
|
|
||||||
|
AssertionResult::AssertionResult( const AssertionInfo& info, const AssertionResultData& data )
|
||||||
|
: m_info( info ),
|
||||||
|
m_resultData( data )
|
||||||
|
{}
|
||||||
|
|
||||||
|
AssertionResult::~AssertionResult() {}
|
||||||
|
|
||||||
|
bool AssertionResult::ok() const {
|
||||||
|
return isOk( m_resultData.resultType );
|
||||||
|
}
|
||||||
|
|
||||||
|
ResultWas::OfType AssertionResult::getResultType() const {
|
||||||
|
return m_resultData.resultType;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AssertionResult::hasExpression() const {
|
||||||
|
return !m_info.capturedExpression.empty();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AssertionResult::hasMessage() const {
|
||||||
|
return !m_resultData.message.empty();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string AssertionResult::getExpression() const {
|
||||||
|
return m_info.capturedExpression;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AssertionResult::hasExpandedExpression() const {
|
||||||
|
return hasExpression() && getExpandedExpression() != getExpression();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string AssertionResult::getExpandedExpression() const {
|
||||||
|
return m_resultData.reconstructedExpression;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string AssertionResult::getMessage() const {
|
||||||
|
return m_resultData.message;
|
||||||
|
}
|
||||||
|
SourceLineInfo AssertionResult::getSourceInfo() const {
|
||||||
|
return m_info.lineInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string AssertionResult::getTestMacroName() const {
|
||||||
|
return m_info.macroName;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace Catch
|
||||||
|
|
||||||
|
#endif // TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED
|
@ -8,53 +8,84 @@
|
|||||||
#ifndef TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED
|
#ifndef TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED
|
||||||
#define TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED
|
#define TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED
|
||||||
|
|
||||||
#include "catch_expression_builder.hpp"
|
#include "catch_expression_decomposer.hpp"
|
||||||
|
#include "catch_expressionresult_builder.h"
|
||||||
#include "catch_interfaces_capture.h"
|
#include "catch_interfaces_capture.h"
|
||||||
#include "catch_debugger.hpp"
|
#include "catch_debugger.hpp"
|
||||||
#include "catch_context.h"
|
#include "catch_context.h"
|
||||||
#include "catch_common.h"
|
#include "catch_common.h"
|
||||||
|
#include "catch_interfaces_registry_hub.h"
|
||||||
#include <ostream>
|
#include <ostream>
|
||||||
|
|
||||||
namespace Catch {
|
namespace Catch {
|
||||||
|
|
||||||
|
inline IResultCapture& getResultCapture() {
|
||||||
|
return getCurrentContext().getResultCapture();
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename MatcherT>
|
||||||
|
ExpressionResultBuilder expressionResultBuilderFromMatcher( const MatcherT& matcher,
|
||||||
|
const std::string& matcherCallAsString ) {
|
||||||
|
std::string matcherAsString = matcher.toString();
|
||||||
|
if( matcherAsString == "{?}" )
|
||||||
|
matcherAsString = matcherCallAsString;
|
||||||
|
return ExpressionResultBuilder()
|
||||||
|
.setRhs( matcherAsString )
|
||||||
|
.setOp( "matches" );
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename MatcherT, typename ArgT>
|
||||||
|
ExpressionResultBuilder expressionResultBuilderFromMatcher( const MatcherT& matcher,
|
||||||
|
const ArgT& arg,
|
||||||
|
const std::string& matcherCallAsString ) {
|
||||||
|
return expressionResultBuilderFromMatcher( matcher, matcherCallAsString )
|
||||||
|
.setLhs( Catch::toString( arg ) )
|
||||||
|
.setResultType( matcher.match( arg ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename MatcherT, typename ArgT>
|
||||||
|
ExpressionResultBuilder expressionResultBuilderFromMatcher( const MatcherT& matcher,
|
||||||
|
ArgT* arg,
|
||||||
|
const std::string& matcherCallAsString ) {
|
||||||
|
return expressionResultBuilderFromMatcher( matcher, matcherCallAsString )
|
||||||
|
.setLhs( Catch::toString( arg ) )
|
||||||
|
.setResultType( matcher.match( arg ) );
|
||||||
|
}
|
||||||
|
|
||||||
struct TestFailureException{};
|
struct TestFailureException{};
|
||||||
|
|
||||||
class ScopedInfo {
|
class ScopedInfo {
|
||||||
public:
|
public:
|
||||||
ScopedInfo() : m_oss() {
|
ScopedInfo() : m_resultBuilder( ResultWas::Info ) {
|
||||||
getCurrentContext().getResultCapture().pushScopedInfo( this );
|
getResultCapture().pushScopedInfo( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
~ScopedInfo() {
|
~ScopedInfo() {
|
||||||
getCurrentContext().getResultCapture().popScopedInfo( this );
|
getResultCapture().popScopedInfo( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
ScopedInfo& operator << ( const T& value ) {
|
ScopedInfo& operator << ( const T& value ) {
|
||||||
m_oss << value;
|
m_resultBuilder << value;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
AssertionResult buildResult( const AssertionInfo& assertionInfo ) const {
|
||||||
ResultInfo getInfo () const {
|
return m_resultBuilder.buildResult( assertionInfo );
|
||||||
return ResultInfoBuilder()
|
|
||||||
.setResultType( ResultWas::Info )
|
|
||||||
.setMessage( m_oss.str() )
|
|
||||||
.setMacroName( "SCOPED_INFO" )
|
|
||||||
.build();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::ostringstream m_oss;
|
ExpressionResultBuilder m_resultBuilder;
|
||||||
};
|
};
|
||||||
|
|
||||||
// This is just here to avoid compiler warnings with macro constants
|
// This is just here to avoid compiler warnings with macro constants and boolean literals
|
||||||
inline bool isTrue( bool value ){ return value; }
|
inline bool isTrue( bool value ){ return value; }
|
||||||
|
|
||||||
} // end namespace Catch
|
} // end namespace Catch
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define INTERNAL_CATCH_ACCEPT_EXPR( expr, stopOnFailure, originalExpr ) \
|
#define INTERNAL_CATCH_ASSERTIONINFO_NAME INTERNAL_CATCH_UNIQUE_NAME( __assertionInfo )
|
||||||
if( Catch::ResultAction::Value internal_catch_action = Catch::getCurrentContext().getResultCapture().acceptExpression( expr ) ) { \
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
#define INTERNAL_CATCH_ACCEPT_EXPR( evaluatedExpr, stopOnFailure, originalExpr ) \
|
||||||
|
if( Catch::ResultAction::Value internal_catch_action = Catch::getResultCapture().acceptExpression( evaluatedExpr, INTERNAL_CATCH_ASSERTIONINFO_NAME ) ) { \
|
||||||
if( internal_catch_action & Catch::ResultAction::Debug ) BreakIntoDebugger(); \
|
if( internal_catch_action & Catch::ResultAction::Debug ) BreakIntoDebugger(); \
|
||||||
if( internal_catch_action & Catch::ResultAction::Abort ) throw Catch::TestFailureException(); \
|
if( internal_catch_action & Catch::ResultAction::Abort ) throw Catch::TestFailureException(); \
|
||||||
if( Catch::isTrue( stopOnFailure ) ) throw Catch::TestFailureException(); \
|
if( Catch::isTrue( stopOnFailure ) ) throw Catch::TestFailureException(); \
|
||||||
@ -62,76 +93,102 @@ inline bool isTrue( bool value ){ return value; }
|
|||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define INTERNAL_CATCH_TEST( expr, isFalse, stopOnFailure, macroName ) \
|
#define INTERNAL_CATCH_ACCEPT_INFO( expr, macroName, shouldNegate ) \
|
||||||
do { try { \
|
Catch::AssertionInfo INTERNAL_CATCH_ASSERTIONINFO_NAME( macroName, CATCH_INTERNAL_LINEINFO, expr, shouldNegate );
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr, isFalse )->*expr ), stopOnFailure, expr ); \
|
// !TBD Catch::getResultCapture().acceptAssertionInfo( INTERNAL_CATCH_ASSERTIONINFO_NAME )
|
||||||
} catch( Catch::TestFailureException& ) { \
|
|
||||||
throw; \
|
|
||||||
} catch( ... ) { \
|
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ) << Catch::getRegistryHub().getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), false, expr ); \
|
|
||||||
throw; \
|
|
||||||
} } while( Catch::isTrue( false ) )
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define INTERNAL_CATCH_IF( expr, isFalse, stopOnFailure, macroName ) \
|
#define INTERNAL_CATCH_TEST( expr, shouldNegate, stopOnFailure, macroName ) \
|
||||||
INTERNAL_CATCH_TEST( expr, isFalse, stopOnFailure, macroName ); \
|
do { \
|
||||||
if( Catch::getCurrentContext().getResultCapture().getLastResult()->ok() )
|
INTERNAL_CATCH_ACCEPT_INFO( #expr, macroName, shouldNegate ); \
|
||||||
|
try { \
|
||||||
|
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionDecomposer()->*expr ).negate( shouldNegate ), stopOnFailure, expr ); \
|
||||||
|
} catch( Catch::TestFailureException& ) { \
|
||||||
|
throw; \
|
||||||
|
} catch( ... ) { \
|
||||||
|
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionResultBuilder( Catch::ResultWas::ThrewException ) << Catch::translateActiveException(), false, expr ); \
|
||||||
|
throw; \
|
||||||
|
} \
|
||||||
|
} while( Catch::isTrue( false ) )
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define INTERNAL_CATCH_ELSE( expr, isFalse, stopOnFailure, macroName ) \
|
#define INTERNAL_CATCH_IF( expr, shouldNegate, stopOnFailure, macroName ) \
|
||||||
INTERNAL_CATCH_TEST( expr, isFalse, stopOnFailure, macroName ); \
|
INTERNAL_CATCH_TEST( expr, shouldNegate, stopOnFailure, macroName ); \
|
||||||
if( !Catch::getCurrentContext().getResultCapture().getLastResult()->ok() )
|
if( Catch::getResultCapture().getLastResult()->ok() )
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
#define INTERNAL_CATCH_ELSE( expr, shouldNegate, stopOnFailure, macroName ) \
|
||||||
|
INTERNAL_CATCH_TEST( expr, shouldNegate, stopOnFailure, macroName ); \
|
||||||
|
if( !Catch::getResultCapture().getLastResult()->ok() )
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define INTERNAL_CATCH_NO_THROW( expr, stopOnFailure, macroName ) \
|
#define INTERNAL_CATCH_NO_THROW( expr, stopOnFailure, macroName ) \
|
||||||
try { \
|
do { \
|
||||||
expr; \
|
INTERNAL_CATCH_ACCEPT_INFO( #expr, macroName, false ); \
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ).setResultType( Catch::ResultWas::Ok ), stopOnFailure, false ); \
|
try { \
|
||||||
} \
|
expr; \
|
||||||
catch( ... ) { \
|
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionResultBuilder( Catch::ResultWas::Ok ), stopOnFailure, false ); \
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ) << Catch::getRegistryHub().getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), stopOnFailure, false ); \
|
} \
|
||||||
}
|
catch( ... ) { \
|
||||||
|
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionResultBuilder( Catch::ResultWas::ThrewException ) << Catch::translateActiveException(), stopOnFailure, false ); \
|
||||||
|
} \
|
||||||
|
} while( Catch::isTrue( false ) )
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define INTERNAL_CATCH_THROWS( expr, exceptionType, stopOnFailure, macroName ) \
|
#define INTERNAL_CATCH_THROWS_IMPL( expr, exceptionType, stopOnFailure ) \
|
||||||
try { \
|
try { \
|
||||||
if( Catch::getCurrentContext().getConfig()->allowThrows() ) { \
|
if( Catch::getCurrentContext().getConfig()->allowThrows() ) { \
|
||||||
expr; \
|
expr; \
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ).setResultType( Catch::ResultWas::DidntThrowException ), stopOnFailure, false ); \
|
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionResultBuilder( Catch::ResultWas::DidntThrowException ), stopOnFailure, false ); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
catch( Catch::TestFailureException& ) { \
|
catch( Catch::TestFailureException& ) { \
|
||||||
throw; \
|
throw; \
|
||||||
} \
|
} \
|
||||||
catch( exceptionType ) { \
|
catch( exceptionType ) { \
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ).setResultType( Catch::ResultWas::Ok ), stopOnFailure, false ); \
|
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionResultBuilder( Catch::ResultWas::Ok ), stopOnFailure, false ); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
#define INTERNAL_CATCH_THROWS( expr, exceptionType, stopOnFailure, macroName ) \
|
||||||
|
do { \
|
||||||
|
INTERNAL_CATCH_ACCEPT_INFO( #expr, macroName, false ); \
|
||||||
|
INTERNAL_CATCH_THROWS_IMPL( expr, exceptionType, stopOnFailure ) \
|
||||||
|
} while( Catch::isTrue( false ) )
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define INTERNAL_CATCH_THROWS_AS( expr, exceptionType, stopOnFailure, macroName ) \
|
#define INTERNAL_CATCH_THROWS_AS( expr, exceptionType, stopOnFailure, macroName ) \
|
||||||
INTERNAL_CATCH_THROWS( expr, exceptionType, stopOnFailure, macroName ) \
|
do { \
|
||||||
catch( ... ) { \
|
INTERNAL_CATCH_ACCEPT_INFO( #expr, macroName, false ); \
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ) << Catch::getRegistryHub().getExceptionTranslatorRegistry() ).setResultType( Catch::ResultWas::ThrewException ), stopOnFailure, false ); \
|
INTERNAL_CATCH_THROWS_IMPL( expr, exceptionType, stopOnFailure ) \
|
||||||
}
|
catch( ... ) { \
|
||||||
|
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionResultBuilder( Catch::ResultWas::ThrewException ) << Catch::translateActiveException() ), stopOnFailure, false ); \
|
||||||
|
} \
|
||||||
|
} while( Catch::isTrue( false ) )
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define INTERNAL_CATCH_MSG( reason, resultType, stopOnFailure, macroName ) \
|
#define INTERNAL_CATCH_MSG( reason, resultType, stopOnFailure, macroName ) \
|
||||||
Catch::getCurrentContext().getResultCapture().acceptExpression( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName ) << reason ).setResultType( resultType ) );
|
INTERNAL_CATCH_ACCEPT_INFO( "", macroName, false ); \
|
||||||
|
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionResultBuilder( resultType ) << reason, stopOnFailure, true );
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define INTERNAL_CATCH_SCOPED_INFO( log ) \
|
#define INTERNAL_CATCH_SCOPED_INFO( log, macroName ) \
|
||||||
|
INTERNAL_CATCH_ACCEPT_INFO( "", macroName, false ); \
|
||||||
Catch::ScopedInfo INTERNAL_CATCH_UNIQUE_NAME( info ); \
|
Catch::ScopedInfo INTERNAL_CATCH_UNIQUE_NAME( info ); \
|
||||||
INTERNAL_CATCH_UNIQUE_NAME( info ) << log
|
INTERNAL_CATCH_UNIQUE_NAME( info ) << log
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define INTERNAL_CHECK_THAT( arg, matcher, stopOnFailure, macroName ) \
|
#define INTERNAL_CHECK_THAT( arg, matcher, stopOnFailure, macroName ) \
|
||||||
do { try { \
|
do { \
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #arg " " #matcher, false ).acceptMatcher( ::Catch::Matchers::matcher, arg, #matcher ) ), stopOnFailure, false ); \
|
INTERNAL_CATCH_ACCEPT_INFO( #arg " " #matcher, macroName, false ); \
|
||||||
} catch( Catch::TestFailureException& ) { \
|
try { \
|
||||||
throw; \
|
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::expressionResultBuilderFromMatcher( ::Catch::Matchers::matcher, arg, #matcher ) ), stopOnFailure, false ); \
|
||||||
} catch( ... ) { \
|
} catch( Catch::TestFailureException& ) { \
|
||||||
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #arg " " #matcher ) << Catch::getRegistryHub().getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), false, false ); \
|
throw; \
|
||||||
throw; \
|
} catch( ... ) { \
|
||||||
}}while( Catch::isTrue( false ) )
|
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionResultBuilder( Catch::ResultWas::ThrewException ) << Catch::translateActiveException() ), false, false ); \
|
||||||
|
throw; \
|
||||||
|
} \
|
||||||
|
} while( Catch::isTrue( false ) )
|
||||||
|
|
||||||
#endif // TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED
|
#endif // TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED
|
||||||
|
@ -122,6 +122,9 @@ namespace Catch {
|
|||||||
file.swap( other.file );
|
file.swap( other.file );
|
||||||
std::swap( line, other.line );
|
std::swap( line, other.line );
|
||||||
}
|
}
|
||||||
|
bool empty() const {
|
||||||
|
return file.empty();
|
||||||
|
}
|
||||||
|
|
||||||
std::string function;
|
std::string function;
|
||||||
std::string file;
|
std::string file;
|
||||||
|
@ -10,7 +10,60 @@
|
|||||||
|
|
||||||
#include "catch_console_colour.hpp"
|
#include "catch_console_colour.hpp"
|
||||||
|
|
||||||
#ifdef CATCH_PLATFORM_WINDOWS
|
#if defined( CATCH_CONFIG_USE_ANSI_COLOUR_CODES )
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
namespace Catch {
|
||||||
|
|
||||||
|
// use POSIX/ ANSI console terminal codes
|
||||||
|
// Implementation contributed by Adam Strzelecki (http://github.com/nanoant)
|
||||||
|
// https://github.com/philsquared/Catch/pull/131
|
||||||
|
|
||||||
|
TextColour::TextColour( Colours colour ) {
|
||||||
|
if( colour )
|
||||||
|
set( colour );
|
||||||
|
}
|
||||||
|
|
||||||
|
TextColour::~TextColour() {
|
||||||
|
set( TextColour::None );
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace { const char colourEscape = '\033'; }
|
||||||
|
|
||||||
|
void TextColour::set( Colours colour ) {
|
||||||
|
if( isatty( fileno(stdout) ) ) {
|
||||||
|
switch( colour ) {
|
||||||
|
case TextColour::FileName:
|
||||||
|
std::cout << colourEscape << "[0m"; // white/ normal
|
||||||
|
break;
|
||||||
|
case TextColour::ResultError:
|
||||||
|
std::cout << colourEscape << "[1;31m"; // bold red
|
||||||
|
break;
|
||||||
|
case TextColour::ResultSuccess:
|
||||||
|
std::cout << colourEscape << "[1;32m"; // bold green
|
||||||
|
break;
|
||||||
|
case TextColour::Error:
|
||||||
|
std::cout << colourEscape << "[0;31m"; // red
|
||||||
|
break;
|
||||||
|
case TextColour::Success:
|
||||||
|
std::cout << colourEscape << "[0;32m"; // green
|
||||||
|
break;
|
||||||
|
case TextColour::OriginalExpression:
|
||||||
|
std::cout << colourEscape << "[0;36m"; // cyan
|
||||||
|
break;
|
||||||
|
case TextColour::ReconstructedExpression:
|
||||||
|
std::cout << colourEscape << "[0;33m"; // yellow
|
||||||
|
break;
|
||||||
|
case TextColour::None:
|
||||||
|
std::cout << colourEscape << "[0m"; // reset
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace Catch
|
||||||
|
|
||||||
|
#elif defined ( CATCH_PLATFORM_WINDOWS )
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
@ -84,6 +137,7 @@ namespace Catch {
|
|||||||
#else
|
#else
|
||||||
|
|
||||||
namespace Catch {
|
namespace Catch {
|
||||||
|
|
||||||
TextColour::TextColour( Colours ){}
|
TextColour::TextColour( Colours ){}
|
||||||
TextColour::~TextColour(){}
|
TextColour::~TextColour(){}
|
||||||
void TextColour::set( Colours ){}
|
void TextColour::set( Colours ){}
|
||||||
|
@ -1,90 +0,0 @@
|
|||||||
/*
|
|
||||||
* Created by Phil on 11/5/2012.
|
|
||||||
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
|
|
||||||
*
|
|
||||||
* 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)
|
|
||||||
*/
|
|
||||||
#ifndef TWOBLUECUBES_CATCH_EXPRESSION_HPP_INCLUDED
|
|
||||||
#define TWOBLUECUBES_CATCH_EXPRESSION_HPP_INCLUDED
|
|
||||||
|
|
||||||
#include "catch_resultinfo_builder.h"
|
|
||||||
#include "catch_evaluate.hpp"
|
|
||||||
|
|
||||||
namespace Catch {
|
|
||||||
|
|
||||||
template<typename T>
|
|
||||||
class Expression {
|
|
||||||
void operator = ( const Expression& );
|
|
||||||
|
|
||||||
public:
|
|
||||||
Expression( ResultInfoBuilder& result, T lhs )
|
|
||||||
: m_result( result.setLhs( Catch::toString( lhs ) ) ),
|
|
||||||
m_lhs( lhs )
|
|
||||||
{}
|
|
||||||
|
|
||||||
template<typename RhsT>
|
|
||||||
ResultInfoBuilder& operator == ( const RhsT& rhs ) {
|
|
||||||
return captureExpression<Internal::IsEqualTo>( rhs );
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename RhsT>
|
|
||||||
ResultInfoBuilder& operator != ( const RhsT& rhs ) {
|
|
||||||
return captureExpression<Internal::IsNotEqualTo>( rhs );
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename RhsT>
|
|
||||||
ResultInfoBuilder& operator < ( const RhsT& rhs ) {
|
|
||||||
return captureExpression<Internal::IsLessThan>( rhs );
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename RhsT>
|
|
||||||
ResultInfoBuilder& operator > ( const RhsT& rhs ) {
|
|
||||||
return captureExpression<Internal::IsGreaterThan>( rhs );
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename RhsT>
|
|
||||||
ResultInfoBuilder& operator <= ( const RhsT& rhs ) {
|
|
||||||
return captureExpression<Internal::IsLessThanOrEqualTo>( rhs );
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename RhsT>
|
|
||||||
ResultInfoBuilder& operator >= ( const RhsT& rhs ) {
|
|
||||||
return captureExpression<Internal::IsGreaterThanOrEqualTo>( rhs );
|
|
||||||
}
|
|
||||||
|
|
||||||
ResultInfoBuilder& operator == ( bool rhs ) {
|
|
||||||
return captureExpression<Internal::IsEqualTo>( rhs );
|
|
||||||
}
|
|
||||||
|
|
||||||
ResultInfoBuilder& operator != ( bool rhs ) {
|
|
||||||
return captureExpression<Internal::IsNotEqualTo>( rhs );
|
|
||||||
}
|
|
||||||
|
|
||||||
operator ResultInfoBuilder& () {
|
|
||||||
return m_result.setResultType( m_lhs ? ResultWas::Ok : ResultWas::ExpressionFailed );
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename RhsT>
|
|
||||||
STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator + ( const RhsT& );
|
|
||||||
|
|
||||||
template<typename RhsT>
|
|
||||||
STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator - ( const RhsT& );
|
|
||||||
|
|
||||||
private:
|
|
||||||
template<Internal::Operator Op, typename RhsT>
|
|
||||||
ResultInfoBuilder& captureExpression( const RhsT& rhs ) {
|
|
||||||
return m_result
|
|
||||||
.setResultType( Internal::compare<Op>( m_lhs, rhs ) ? ResultWas::Ok : ResultWas::ExpressionFailed )
|
|
||||||
.setRhs( Catch::toString( rhs ) )
|
|
||||||
.setOp( Internal::OperatorTraits<Op>::getName() );
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
ResultInfoBuilder& m_result;
|
|
||||||
T m_lhs;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // end namespace Catch
|
|
||||||
|
|
||||||
#endif // TWOBLUECUBES_CATCH_EXPRESSION_HPP_INCLUDED
|
|
@ -1,102 +0,0 @@
|
|||||||
/*
|
|
||||||
* Created by Phil on 11/5/2012.
|
|
||||||
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
|
|
||||||
*
|
|
||||||
* 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)
|
|
||||||
*/
|
|
||||||
#ifndef TWOBLUECUBES_CATCH_EXPRESSION_BUILDER_HPP_INCLUDED
|
|
||||||
#define TWOBLUECUBES_CATCH_EXPRESSION_BUILDER_HPP_INCLUDED
|
|
||||||
|
|
||||||
#include "catch_expression.hpp"
|
|
||||||
#include "catch_resultinfo_builder.h"
|
|
||||||
#include "catch_tostring.hpp"
|
|
||||||
#include "catch_resultinfo.h"
|
|
||||||
#include "catch_result_type.h"
|
|
||||||
#include "catch_context.h"
|
|
||||||
#include "catch_common.h"
|
|
||||||
#include <sstream>
|
|
||||||
|
|
||||||
namespace Catch {
|
|
||||||
|
|
||||||
class ExpressionBuilder {
|
|
||||||
public:
|
|
||||||
|
|
||||||
ExpressionBuilder( const SourceLineInfo& lineInfo,
|
|
||||||
const char* macroName,
|
|
||||||
const char* expr = "",
|
|
||||||
bool isFalse = false )
|
|
||||||
: m_messageStream()
|
|
||||||
{
|
|
||||||
m_result
|
|
||||||
.setCapturedExpression( expr )
|
|
||||||
.setIsFalse( isFalse )
|
|
||||||
.setLineInfo( lineInfo )
|
|
||||||
.setMacroName( macroName );
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename T>
|
|
||||||
Expression<const T&> operator->* ( const T & operand ) {
|
|
||||||
Expression<const T&> expr( m_result, operand );
|
|
||||||
return expr;
|
|
||||||
}
|
|
||||||
|
|
||||||
Expression<bool> operator->* ( bool value ) {
|
|
||||||
Expression<bool> expr( m_result, value );
|
|
||||||
return expr;
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename T>
|
|
||||||
ExpressionBuilder& operator << ( const T & value ) {
|
|
||||||
m_messageStream << Catch::toString( value );
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename MatcherT, typename ArgT>
|
|
||||||
ExpressionBuilder& acceptMatcher( const MatcherT& matcher,
|
|
||||||
const ArgT& arg,
|
|
||||||
const std::string& matcherCallAsString ) {
|
|
||||||
std::string matcherAsString = matcher.toString();
|
|
||||||
if( matcherAsString == "{?}" )
|
|
||||||
matcherAsString = matcherCallAsString;
|
|
||||||
m_result
|
|
||||||
.setLhs( Catch::toString( arg ) )
|
|
||||||
.setRhs( matcherAsString )
|
|
||||||
.setOp( "matches" )
|
|
||||||
.setResultType( matcher.match( arg ) ? ResultWas::Ok : ResultWas::ExpressionFailed );
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename MatcherT, typename ArgT>
|
|
||||||
ExpressionBuilder& acceptMatcher( const MatcherT& matcher,
|
|
||||||
ArgT* arg,
|
|
||||||
const std::string& matcherCallAsString ) {
|
|
||||||
std::string matcherAsString = matcher.toString();
|
|
||||||
if( matcherAsString == "{?}" )
|
|
||||||
matcherAsString = matcherCallAsString;
|
|
||||||
m_result
|
|
||||||
.setLhs( Catch::toString( arg ) )
|
|
||||||
.setRhs( matcherAsString )
|
|
||||||
.setOp( "matches" )
|
|
||||||
.setResultType( matcher.match( arg ) ? ResultWas::Ok : ResultWas::ExpressionFailed );
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
ExpressionBuilder& setResultType( ResultWas::OfType resultType ) {
|
|
||||||
m_result.setResultType( resultType );
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
operator ResultInfoBuilder&() {
|
|
||||||
m_result.setMessage( m_messageStream.str() );
|
|
||||||
return m_result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
ResultInfoBuilder m_result;
|
|
||||||
std::ostringstream m_messageStream;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // end namespace Catch
|
|
||||||
|
|
||||||
#endif // TWOBLUECUBES_CATCH_EXPRESSION_BUILDER_HPP_INCLUDED
|
|
31
include/internal/catch_expression_decomposer.hpp
Normal file
31
include/internal/catch_expression_decomposer.hpp
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* Created by Phil on 11/5/2012.
|
||||||
|
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||||
|
*
|
||||||
|
* 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)
|
||||||
|
*/
|
||||||
|
#ifndef TWOBLUECUBES_CATCH_EXPRESSION_DECOMPOSER_HPP_INCLUDED
|
||||||
|
#define TWOBLUECUBES_CATCH_EXPRESSION_DECOMPOSER_HPP_INCLUDED
|
||||||
|
|
||||||
|
#include "catch_expression_lhs.hpp"
|
||||||
|
|
||||||
|
namespace Catch {
|
||||||
|
|
||||||
|
// Captures the LHS of the expression and wraps it in an Expression Lhs object
|
||||||
|
class ExpressionDecomposer {
|
||||||
|
public:
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
ExpressionLhs<const T&> operator->* ( const T & operand ) {
|
||||||
|
return ExpressionLhs<const T&>( operand );
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpressionLhs<bool> operator->* ( bool value ) {
|
||||||
|
return ExpressionLhs<bool>( value );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end namespace Catch
|
||||||
|
|
||||||
|
#endif // TWOBLUECUBES_CATCH_EXPRESSION_DECOMPOSER_HPP_INCLUDED
|
97
include/internal/catch_expression_lhs.hpp
Normal file
97
include/internal/catch_expression_lhs.hpp
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
/*
|
||||||
|
* Created by Phil on 11/5/2012.
|
||||||
|
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||||
|
*
|
||||||
|
* 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)
|
||||||
|
*/
|
||||||
|
#ifndef TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED
|
||||||
|
#define TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED
|
||||||
|
|
||||||
|
#include "catch_expressionresult_builder.h"
|
||||||
|
#include "catch_evaluate.hpp"
|
||||||
|
|
||||||
|
namespace Catch {
|
||||||
|
|
||||||
|
struct STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison;
|
||||||
|
|
||||||
|
// Wraps the LHS of an expression and captures the operator and RHS (if any) - wrapping them all
|
||||||
|
// in an ExpressionResultBuilder object
|
||||||
|
template<typename T>
|
||||||
|
class ExpressionLhs {
|
||||||
|
void operator = ( const ExpressionLhs& );
|
||||||
|
|
||||||
|
public:
|
||||||
|
ExpressionLhs( T lhs ) : m_lhs( lhs ) {}
|
||||||
|
|
||||||
|
template<typename RhsT>
|
||||||
|
ExpressionResultBuilder& operator == ( const RhsT& rhs ) {
|
||||||
|
return captureExpression<Internal::IsEqualTo>( rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename RhsT>
|
||||||
|
ExpressionResultBuilder& operator != ( const RhsT& rhs ) {
|
||||||
|
return captureExpression<Internal::IsNotEqualTo>( rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename RhsT>
|
||||||
|
ExpressionResultBuilder& operator < ( const RhsT& rhs ) {
|
||||||
|
return captureExpression<Internal::IsLessThan>( rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename RhsT>
|
||||||
|
ExpressionResultBuilder& operator > ( const RhsT& rhs ) {
|
||||||
|
return captureExpression<Internal::IsGreaterThan>( rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename RhsT>
|
||||||
|
ExpressionResultBuilder& operator <= ( const RhsT& rhs ) {
|
||||||
|
return captureExpression<Internal::IsLessThanOrEqualTo>( rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename RhsT>
|
||||||
|
ExpressionResultBuilder& operator >= ( const RhsT& rhs ) {
|
||||||
|
return captureExpression<Internal::IsGreaterThanOrEqualTo>( rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpressionResultBuilder& operator == ( bool rhs ) {
|
||||||
|
return captureExpression<Internal::IsEqualTo>( rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpressionResultBuilder& operator != ( bool rhs ) {
|
||||||
|
return captureExpression<Internal::IsNotEqualTo>( rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpressionResultBuilder& negate( bool shouldNegate ) {
|
||||||
|
bool value = m_lhs ? true : false;
|
||||||
|
return m_result
|
||||||
|
.setLhs( Catch::toString( value ) )
|
||||||
|
.setResultType( value )
|
||||||
|
.negate( shouldNegate );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only simple binary expressions are allowed on the LHS.
|
||||||
|
// If more complex compositions are required then place the sub expression in parentheses
|
||||||
|
template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator + ( const RhsT& );
|
||||||
|
template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator - ( const RhsT& );
|
||||||
|
template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator / ( const RhsT& );
|
||||||
|
template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator * ( const RhsT& );
|
||||||
|
|
||||||
|
private:
|
||||||
|
template<Internal::Operator Op, typename RhsT>
|
||||||
|
ExpressionResultBuilder& captureExpression( const RhsT& rhs ) {
|
||||||
|
return m_result
|
||||||
|
.setResultType( Internal::compare<Op>( m_lhs, rhs ) )
|
||||||
|
.setLhs( Catch::toString( m_lhs ) )
|
||||||
|
.setRhs( Catch::toString( rhs ) )
|
||||||
|
.setOp( Internal::OperatorTraits<Op>::getName() );
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
ExpressionResultBuilder m_result;
|
||||||
|
T m_lhs;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end namespace Catch
|
||||||
|
|
||||||
|
#endif // TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED
|
58
include/internal/catch_expressionresult_builder.h
Normal file
58
include/internal/catch_expressionresult_builder.h
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
* Created by Phil on 8/5/2012.
|
||||||
|
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||||
|
*
|
||||||
|
* 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)
|
||||||
|
*/
|
||||||
|
#ifndef TWOBLUECUBES_CATCH_ASSERTIONRESULT_BUILDER_H_INCLUDED
|
||||||
|
#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_BUILDER_H_INCLUDED
|
||||||
|
|
||||||
|
#include "catch_tostring.hpp"
|
||||||
|
#include "catch_assertionresult.h"
|
||||||
|
#include "catch_result_type.h"
|
||||||
|
#include "catch_evaluate.hpp"
|
||||||
|
#include "catch_common.h"
|
||||||
|
|
||||||
|
namespace Catch {
|
||||||
|
|
||||||
|
// Wraps the (stringised versions of) the lhs, operator and rhs of an expression - as well as
|
||||||
|
// the result of evaluating it. This is used to build an AssertionResult object
|
||||||
|
class ExpressionResultBuilder {
|
||||||
|
public:
|
||||||
|
|
||||||
|
ExpressionResultBuilder( ResultWas::OfType resultType = ResultWas::Unknown );
|
||||||
|
ExpressionResultBuilder( const ExpressionResultBuilder& other );
|
||||||
|
ExpressionResultBuilder& operator=(const ExpressionResultBuilder& other );
|
||||||
|
|
||||||
|
ExpressionResultBuilder& setResultType( ResultWas::OfType result );
|
||||||
|
ExpressionResultBuilder& setResultType( bool result );
|
||||||
|
ExpressionResultBuilder& setLhs( const std::string& lhs );
|
||||||
|
ExpressionResultBuilder& setRhs( const std::string& rhs );
|
||||||
|
ExpressionResultBuilder& setOp( const std::string& op );
|
||||||
|
|
||||||
|
ExpressionResultBuilder& negate( bool shouldNegate );
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
ExpressionResultBuilder& operator << ( const T& value ) {
|
||||||
|
m_stream << value;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string reconstructExpression( const AssertionInfo& info ) const;
|
||||||
|
|
||||||
|
AssertionResult buildResult( const AssertionInfo& info ) const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
AssertionResultData m_data;
|
||||||
|
struct ExprComponents {
|
||||||
|
ExprComponents() : shouldNegate( false ) {}
|
||||||
|
bool shouldNegate;
|
||||||
|
std::string lhs, rhs, op;
|
||||||
|
} m_exprComponents;
|
||||||
|
std::ostringstream m_stream;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end namespace Catch
|
||||||
|
|
||||||
|
#endif // TWOBLUECUBES_CATCH_ASSERTIONRESULT_BUILDER_H_INCLUDED
|
98
include/internal/catch_expressionresult_builder.hpp
Normal file
98
include/internal/catch_expressionresult_builder.hpp
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
/*
|
||||||
|
* Created by Phil on 8/8/2012.
|
||||||
|
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||||
|
*
|
||||||
|
* 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)
|
||||||
|
*/
|
||||||
|
#ifndef TWOBLUECUBES_CATCH_EXPRESSIONRESULT_BUILDER_HPP_INCLUDED
|
||||||
|
#define TWOBLUECUBES_CATCH_EXPRESSIONRESULT_BUILDER_HPP_INCLUDED
|
||||||
|
|
||||||
|
#include "catch_expressionresult_builder.h"
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
namespace Catch {
|
||||||
|
|
||||||
|
ExpressionResultBuilder::ExpressionResultBuilder( ResultWas::OfType resultType ) {
|
||||||
|
m_data.resultType = resultType;
|
||||||
|
}
|
||||||
|
ExpressionResultBuilder::ExpressionResultBuilder( const ExpressionResultBuilder& other )
|
||||||
|
: m_data( other.m_data ),
|
||||||
|
m_exprComponents( other.m_exprComponents )
|
||||||
|
{
|
||||||
|
m_stream << other.m_stream.str();
|
||||||
|
}
|
||||||
|
ExpressionResultBuilder& ExpressionResultBuilder::operator=(const ExpressionResultBuilder& other ) {
|
||||||
|
m_data = other.m_data;
|
||||||
|
m_exprComponents = other.m_exprComponents;
|
||||||
|
m_stream.str("");
|
||||||
|
m_stream << other.m_stream.str();
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
ExpressionResultBuilder& ExpressionResultBuilder::setResultType( ResultWas::OfType result ) {
|
||||||
|
m_data.resultType = result;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
ExpressionResultBuilder& ExpressionResultBuilder::setResultType( bool result ) {
|
||||||
|
m_data.resultType = result ? ResultWas::Ok : ResultWas::ExpressionFailed;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
ExpressionResultBuilder& ExpressionResultBuilder::negate( bool shouldNegate ) {
|
||||||
|
m_exprComponents.shouldNegate = shouldNegate;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
ExpressionResultBuilder& ExpressionResultBuilder::setLhs( const std::string& lhs ) {
|
||||||
|
m_exprComponents.lhs = lhs;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
ExpressionResultBuilder& ExpressionResultBuilder::setRhs( const std::string& rhs ) {
|
||||||
|
m_exprComponents.rhs = rhs;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
ExpressionResultBuilder& ExpressionResultBuilder::setOp( const std::string& op ) {
|
||||||
|
m_exprComponents.op = op;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
AssertionResult ExpressionResultBuilder::buildResult( const AssertionInfo& info ) const
|
||||||
|
{
|
||||||
|
assert( m_data.resultType != ResultWas::Unknown );
|
||||||
|
|
||||||
|
AssertionResultData data = m_data;
|
||||||
|
|
||||||
|
// Flip bool results if shouldNegate is set
|
||||||
|
if( m_exprComponents.shouldNegate && data.resultType == ResultWas::Ok )
|
||||||
|
data.resultType = ResultWas::ExpressionFailed;
|
||||||
|
else if( m_exprComponents.shouldNegate && data.resultType == ResultWas::ExpressionFailed )
|
||||||
|
data.resultType = ResultWas::Ok;
|
||||||
|
|
||||||
|
data.message = m_stream.str();
|
||||||
|
data.reconstructedExpression = reconstructExpression( info );
|
||||||
|
if( m_exprComponents.shouldNegate ) {
|
||||||
|
if( m_exprComponents.op == "" )
|
||||||
|
data.reconstructedExpression = "!" + data.reconstructedExpression;
|
||||||
|
else
|
||||||
|
data.reconstructedExpression = "!(" + data.reconstructedExpression + ")";
|
||||||
|
}
|
||||||
|
return AssertionResult( info, data );
|
||||||
|
}
|
||||||
|
std::string ExpressionResultBuilder::reconstructExpression( const AssertionInfo& info ) const {
|
||||||
|
if( m_exprComponents.op == "" )
|
||||||
|
return m_exprComponents.lhs.empty() ? info.capturedExpression : m_exprComponents.op + m_exprComponents.lhs;
|
||||||
|
else if( m_exprComponents.op == "matches" )
|
||||||
|
return m_exprComponents.lhs + " " + m_exprComponents.rhs;
|
||||||
|
else if( m_exprComponents.op != "!" ) {
|
||||||
|
if( m_exprComponents.lhs.size() + m_exprComponents.rhs.size() < 30 )
|
||||||
|
return m_exprComponents.lhs + " " + m_exprComponents.op + " " + m_exprComponents.rhs;
|
||||||
|
else if( m_exprComponents.lhs.size() < 70 && m_exprComponents.rhs.size() < 70 )
|
||||||
|
return "\n\t" + m_exprComponents.lhs + "\n\t" + m_exprComponents.op + "\n\t" + m_exprComponents.rhs;
|
||||||
|
else
|
||||||
|
return "\n" + m_exprComponents.lhs + "\n" + m_exprComponents.op + "\n" + m_exprComponents.rhs + "\n\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return "{can't expand - use " + info.macroName + "_FALSE( " + info.capturedExpression.substr(1) + " ) instead of " + info.macroName + "( " + info.capturedExpression + " ) for better diagnostics}";
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace Catch
|
||||||
|
|
||||||
|
#endif // TWOBLUECUBES_CATCH_EXPRESSIONRESULT_BUILDER_HPP_INCLUDED
|
@ -22,8 +22,8 @@
|
|||||||
#include "catch_context_impl.hpp"
|
#include "catch_context_impl.hpp"
|
||||||
#include "catch_console_colour_impl.hpp"
|
#include "catch_console_colour_impl.hpp"
|
||||||
#include "catch_generators_impl.hpp"
|
#include "catch_generators_impl.hpp"
|
||||||
#include "catch_resultinfo.hpp"
|
#include "catch_assertionresult.hpp"
|
||||||
#include "catch_resultinfo_builder.hpp"
|
#include "catch_expressionresult_builder.hpp"
|
||||||
#include "catch_test_case_info.hpp"
|
#include "catch_test_case_info.hpp"
|
||||||
#include "catch_tags.hpp"
|
#include "catch_tags.hpp"
|
||||||
|
|
||||||
|
@ -17,14 +17,15 @@ namespace Catch {
|
|||||||
|
|
||||||
class TestCaseInfo;
|
class TestCaseInfo;
|
||||||
class ScopedInfo;
|
class ScopedInfo;
|
||||||
class ResultInfoBuilder;
|
class ExpressionResultBuilder;
|
||||||
class ResultInfo;
|
class AssertionResult;
|
||||||
|
struct AssertionInfo;
|
||||||
|
|
||||||
struct IResultCapture {
|
struct IResultCapture {
|
||||||
|
|
||||||
virtual ~IResultCapture();
|
virtual ~IResultCapture();
|
||||||
|
|
||||||
virtual void testEnded( const ResultInfo& result ) = 0;
|
virtual void testEnded( const AssertionResult& result ) = 0;
|
||||||
virtual bool sectionStarted( const std::string& name,
|
virtual bool sectionStarted( const std::string& name,
|
||||||
const std::string& description,
|
const std::string& description,
|
||||||
const SourceLineInfo& lineInfo,
|
const SourceLineInfo& lineInfo,
|
||||||
@ -34,13 +35,11 @@ namespace Catch {
|
|||||||
virtual void popScopedInfo( ScopedInfo* scopedInfo ) = 0;
|
virtual void popScopedInfo( ScopedInfo* scopedInfo ) = 0;
|
||||||
virtual bool shouldDebugBreak() const = 0;
|
virtual bool shouldDebugBreak() const = 0;
|
||||||
|
|
||||||
virtual ResultAction::Value acceptResult( bool result ) = 0;
|
virtual void acceptAssertionInfo( const AssertionInfo& assertionInfo ) = 0;
|
||||||
virtual ResultAction::Value acceptResult( ResultWas::OfType result ) = 0;
|
virtual ResultAction::Value acceptExpression( const ExpressionResultBuilder& assertionResult, const AssertionInfo& assertionInfo ) = 0;
|
||||||
virtual ResultAction::Value acceptExpression( const ResultInfoBuilder& resultInfo ) = 0;
|
|
||||||
virtual void acceptMessage( const std::string& msg ) = 0;
|
|
||||||
|
|
||||||
virtual std::string getCurrentTestName() const = 0;
|
virtual std::string getCurrentTestName() const = 0;
|
||||||
virtual const ResultInfo* getLastResult() const = 0;
|
virtual const AssertionResult* getLastResult() const = 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,6 +38,8 @@ namespace Catch {
|
|||||||
IRegistryHub& getRegistryHub();
|
IRegistryHub& getRegistryHub();
|
||||||
IMutableRegistryHub& getMutableRegistryHub();
|
IMutableRegistryHub& getMutableRegistryHub();
|
||||||
void cleanUp();
|
void cleanUp();
|
||||||
|
std::string translateActiveException();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED
|
#endif // TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED
|
||||||
|
@ -49,23 +49,37 @@ namespace Catch
|
|||||||
};
|
};
|
||||||
|
|
||||||
class TestCaseInfo;
|
class TestCaseInfo;
|
||||||
class ResultInfo;
|
class AssertionResult;
|
||||||
|
|
||||||
struct IReporter : IShared {
|
struct IReporter : IShared {
|
||||||
virtual ~IReporter();
|
virtual ~IReporter();
|
||||||
|
|
||||||
virtual bool shouldRedirectStdout() const = 0;
|
virtual bool shouldRedirectStdout() const = 0;
|
||||||
|
|
||||||
virtual void StartTesting() = 0;
|
virtual void StartTesting() = 0;
|
||||||
virtual void EndTesting( const Totals& totals ) = 0;
|
virtual void EndTesting( const Totals& totals ) = 0;
|
||||||
|
|
||||||
virtual void StartGroup( const std::string& groupName ) = 0;
|
virtual void StartGroup( const std::string& groupName ) = 0;
|
||||||
virtual void EndGroup( const std::string& groupName, const Totals& totals ) = 0;
|
virtual void EndGroup( const std::string& groupName, const Totals& totals ) = 0;
|
||||||
|
|
||||||
|
virtual void StartTestCase( const TestCaseInfo& testInfo ) = 0;
|
||||||
|
// TestCaseResult
|
||||||
|
virtual void EndTestCase( const TestCaseInfo& testInfo, const Totals& totals, const std::string& stdOut, const std::string& stdErr ) = 0;
|
||||||
|
|
||||||
|
// SectionInfo
|
||||||
virtual void StartSection( const std::string& sectionName, const std::string& description ) = 0;
|
virtual void StartSection( const std::string& sectionName, const std::string& description ) = 0;
|
||||||
|
// Section Result
|
||||||
|
virtual void EndSection( const std::string& sectionName, const Counts& assertions ) = 0;
|
||||||
|
|
||||||
|
// - merge into SectionResult ?
|
||||||
virtual void NoAssertionsInSection( const std::string& sectionName ) = 0;
|
virtual void NoAssertionsInSection( const std::string& sectionName ) = 0;
|
||||||
virtual void NoAssertionsInTestCase( const std::string& testName ) = 0;
|
virtual void NoAssertionsInTestCase( const std::string& testName ) = 0;
|
||||||
virtual void EndSection( const std::string& sectionName, const Counts& assertions ) = 0;
|
|
||||||
virtual void StartTestCase( const TestCaseInfo& testInfo ) = 0;
|
// - merge into SectionResult, TestCaseResult, GroupResult & TestRunResult
|
||||||
virtual void Aborted() = 0;
|
virtual void Aborted() = 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;
|
// AssertionReslt
|
||||||
|
virtual void Result( const AssertionResult& result ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct IReporterFactory {
|
struct IReporterFactory {
|
||||||
|
@ -73,6 +73,10 @@ namespace Catch {
|
|||||||
getTheRegistryHub() = NULL;
|
getTheRegistryHub() = NULL;
|
||||||
cleanUpContext();
|
cleanUpContext();
|
||||||
}
|
}
|
||||||
|
std::string translateActiveException() {
|
||||||
|
return getRegistryHub().getExceptionTranslatorRegistry().translateActiveException();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
} // end namespace Catch
|
} // end namespace Catch
|
||||||
|
|
||||||
|
@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* Created by Phil on 28/10/2010.
|
|
||||||
* Copyright 2010 Two Blue Cubes Ltd. All rights reserved.
|
|
||||||
*
|
|
||||||
* 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)
|
|
||||||
*/
|
|
||||||
#ifndef TWOBLUECUBES_CATCH_RESULTINFO_H_INCLUDED
|
|
||||||
#define TWOBLUECUBES_CATCH_RESULTINFO_H_INCLUDED
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include "catch_result_type.h"
|
|
||||||
|
|
||||||
namespace Catch {
|
|
||||||
|
|
||||||
struct ResultData
|
|
||||||
{
|
|
||||||
ResultData() : resultType( ResultWas::Unknown ) {}
|
|
||||||
|
|
||||||
std::string macroName;
|
|
||||||
SourceLineInfo lineInfo;
|
|
||||||
std::string capturedExpression;
|
|
||||||
std::string reconstructedExpression;
|
|
||||||
std::string message;
|
|
||||||
ResultWas::OfType resultType;
|
|
||||||
};
|
|
||||||
|
|
||||||
class ResultInfo {
|
|
||||||
public:
|
|
||||||
ResultInfo();
|
|
||||||
ResultInfo( const ResultData& data );
|
|
||||||
~ResultInfo();
|
|
||||||
|
|
||||||
bool ok() const;
|
|
||||||
ResultWas::OfType getResultType() const;
|
|
||||||
bool hasExpression() const;
|
|
||||||
bool hasMessage() const;
|
|
||||||
std::string getExpression() const;
|
|
||||||
bool hasExpandedExpression() const;
|
|
||||||
std::string getExpandedExpression() const;
|
|
||||||
std::string getMessage() const;
|
|
||||||
std::string getFilename() const;
|
|
||||||
std::size_t getLine() const;
|
|
||||||
std::string getTestMacroName() const;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
ResultData m_data;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // end namespace Catch
|
|
||||||
|
|
||||||
#endif // TWOBLUECUBES_CATCH_RESULTINFO_H_INCLUDED
|
|
@ -1,67 +0,0 @@
|
|||||||
/*
|
|
||||||
* Created by Phil on 8/8/12
|
|
||||||
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
|
|
||||||
*
|
|
||||||
* 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)
|
|
||||||
*/
|
|
||||||
#ifndef TWOBLUECUBES_CATCH_RESULTINFO_HPP_INCLUDED
|
|
||||||
#define TWOBLUECUBES_CATCH_RESULTINFO_HPP_INCLUDED
|
|
||||||
|
|
||||||
#include "catch_resultinfo.h"
|
|
||||||
|
|
||||||
namespace Catch {
|
|
||||||
|
|
||||||
ResultInfo::ResultInfo() {}
|
|
||||||
|
|
||||||
ResultInfo::ResultInfo( const ResultData& data ) : m_data( data ) {}
|
|
||||||
|
|
||||||
ResultInfo::~ResultInfo() {}
|
|
||||||
|
|
||||||
bool ResultInfo::ok() const {
|
|
||||||
return isOk( m_data.resultType );
|
|
||||||
}
|
|
||||||
|
|
||||||
ResultWas::OfType ResultInfo::getResultType() const {
|
|
||||||
return m_data.resultType;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ResultInfo::hasExpression() const {
|
|
||||||
return !m_data.capturedExpression.empty();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ResultInfo::hasMessage() const {
|
|
||||||
return !m_data.message.empty();
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string ResultInfo::getExpression() const {
|
|
||||||
return m_data.capturedExpression;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ResultInfo::hasExpandedExpression() const {
|
|
||||||
return hasExpression() && getExpandedExpression() != getExpression();
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string ResultInfo::getExpandedExpression() const {
|
|
||||||
return m_data.reconstructedExpression;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string ResultInfo::getMessage() const {
|
|
||||||
return m_data.message;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string ResultInfo::getFilename() const {
|
|
||||||
return m_data.lineInfo.file;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::size_t ResultInfo::getLine() const {
|
|
||||||
return m_data.lineInfo.line;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string ResultInfo::getTestMacroName() const {
|
|
||||||
return m_data.macroName;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // end namespace Catch
|
|
||||||
|
|
||||||
#endif // TWOBLUECUBES_CATCH_RESULTINFO_HPP_INCLUDED
|
|
@ -1,58 +0,0 @@
|
|||||||
/*
|
|
||||||
* Created by Phil on 8/5/2012.
|
|
||||||
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
|
|
||||||
*
|
|
||||||
* 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)
|
|
||||||
*/
|
|
||||||
#ifndef TWOBLUECUBES_CATCH_RESULTINFO_BUILDER_H_INCLUDED
|
|
||||||
#define TWOBLUECUBES_CATCH_RESULTINFO_BUILDER_H_INCLUDED
|
|
||||||
|
|
||||||
#include "catch_tostring.hpp"
|
|
||||||
#include "catch_resultinfo.h"
|
|
||||||
#include "catch_result_type.h"
|
|
||||||
#include "catch_evaluate.hpp"
|
|
||||||
#include "catch_common.h"
|
|
||||||
|
|
||||||
namespace Catch {
|
|
||||||
|
|
||||||
struct STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison;
|
|
||||||
|
|
||||||
class ResultInfoBuilder {
|
|
||||||
public:
|
|
||||||
|
|
||||||
ResultInfoBuilder();
|
|
||||||
|
|
||||||
ResultInfoBuilder& setResultType( ResultWas::OfType result );
|
|
||||||
ResultInfoBuilder& setCapturedExpression( const std::string& capturedExpression );
|
|
||||||
ResultInfoBuilder& setIsFalse( bool isFalse );
|
|
||||||
ResultInfoBuilder& setMessage( const std::string& message );
|
|
||||||
ResultInfoBuilder& setLineInfo( const SourceLineInfo& lineInfo );
|
|
||||||
ResultInfoBuilder& setLhs( const std::string& lhs );
|
|
||||||
ResultInfoBuilder& setRhs( const std::string& rhs );
|
|
||||||
ResultInfoBuilder& setOp( const std::string& op );
|
|
||||||
ResultInfoBuilder& setMacroName( const std::string& macroName );
|
|
||||||
|
|
||||||
std::string reconstructExpression() const;
|
|
||||||
|
|
||||||
ResultInfo build() const;
|
|
||||||
|
|
||||||
// Disable attempts to use || and && in expressions (without parantheses)
|
|
||||||
template<typename RhsT>
|
|
||||||
STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator || ( const RhsT& );
|
|
||||||
template<typename RhsT>
|
|
||||||
STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator && ( const RhsT& );
|
|
||||||
|
|
||||||
bool getIsFalse() const {
|
|
||||||
return m_isFalse;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
ResultData m_data;
|
|
||||||
std::string m_lhs, m_rhs, m_op;
|
|
||||||
bool m_isFalse;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // end namespace Catch
|
|
||||||
|
|
||||||
#endif // TWOBLUECUBES_CATCH_RESULTINFO_BUILDER_H_INCLUDED
|
|
@ -1,102 +0,0 @@
|
|||||||
/*
|
|
||||||
* Created by Phil on 8/8/2012.
|
|
||||||
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
|
|
||||||
*
|
|
||||||
* 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)
|
|
||||||
*/
|
|
||||||
#ifndef TWOBLUECUBES_CATCH_RESULTINFO_BUILDER_HPP_INCLUDED
|
|
||||||
#define TWOBLUECUBES_CATCH_RESULTINFO_BUILDER_HPP_INCLUDED
|
|
||||||
|
|
||||||
#include "catch_resultinfo_builder.h"
|
|
||||||
|
|
||||||
namespace Catch {
|
|
||||||
|
|
||||||
ResultInfoBuilder::ResultInfoBuilder() {}
|
|
||||||
|
|
||||||
ResultInfoBuilder& ResultInfoBuilder::setResultType( ResultWas::OfType result ) {
|
|
||||||
// Flip bool results if isFalse is set
|
|
||||||
if( m_isFalse && result == ResultWas::Ok )
|
|
||||||
m_data.resultType = ResultWas::ExpressionFailed;
|
|
||||||
else if( m_isFalse && result == ResultWas::ExpressionFailed )
|
|
||||||
m_data.resultType = ResultWas::Ok;
|
|
||||||
else
|
|
||||||
m_data.resultType = result;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
ResultInfoBuilder& ResultInfoBuilder::setCapturedExpression( const std::string& capturedExpression ) {
|
|
||||||
m_data.capturedExpression = capturedExpression;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
ResultInfoBuilder& ResultInfoBuilder::setIsFalse( bool isFalse ) {
|
|
||||||
m_isFalse = isFalse;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
ResultInfoBuilder& ResultInfoBuilder::setMessage( const std::string& message ) {
|
|
||||||
m_data.message = message;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
ResultInfoBuilder& ResultInfoBuilder::setLineInfo( const SourceLineInfo& lineInfo ) {
|
|
||||||
m_data.lineInfo = lineInfo;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
ResultInfoBuilder& ResultInfoBuilder::setMacroName( const std::string& macroName ) {
|
|
||||||
m_data.macroName = macroName;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
ResultInfoBuilder& ResultInfoBuilder::setLhs( const std::string& lhs ) {
|
|
||||||
m_lhs = lhs;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
ResultInfoBuilder& ResultInfoBuilder::setRhs( const std::string& rhs ) {
|
|
||||||
m_rhs = rhs;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
ResultInfoBuilder& ResultInfoBuilder::setOp( const std::string& op ) {
|
|
||||||
m_op = op;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
ResultInfo ResultInfoBuilder::build() const
|
|
||||||
{
|
|
||||||
ResultData data = m_data;
|
|
||||||
data.reconstructedExpression = reconstructExpression();
|
|
||||||
if( m_isFalse ) {
|
|
||||||
if( m_op == "" ) {
|
|
||||||
data.capturedExpression = "!" + data.capturedExpression;
|
|
||||||
data.reconstructedExpression = "!" + data.reconstructedExpression;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
data.capturedExpression = "!(" + data.capturedExpression + ")";
|
|
||||||
data.reconstructedExpression = "!(" + data.reconstructedExpression + ")";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ResultInfo( data );
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string ResultInfoBuilder::reconstructExpression() const {
|
|
||||||
if( m_op == "" )
|
|
||||||
return m_lhs.empty() ? m_data.capturedExpression : m_op + m_lhs;
|
|
||||||
else if( m_op == "matches" )
|
|
||||||
return m_lhs + " " + m_rhs;
|
|
||||||
else if( m_op != "!" ) {
|
|
||||||
if( m_lhs.size() + m_rhs.size() < 30 )
|
|
||||||
return m_lhs + " " + m_op + " " + m_rhs;
|
|
||||||
else if( m_lhs.size() < 70 && m_rhs.size() < 70 )
|
|
||||||
return "\n\t" + m_lhs + "\n\t" + m_op + "\n\t" + m_rhs;
|
|
||||||
else
|
|
||||||
return "\n" + m_lhs + "\n" + m_op + "\n" + m_rhs + "\n\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return "{can't expand - use " + m_data.macroName + "_FALSE( " + m_data.capturedExpression.substr(1) + " ) instead of " + m_data.macroName + "( " + m_data.capturedExpression + " ) for better diagnostics}";
|
|
||||||
}
|
|
||||||
|
|
||||||
} // end namespace Catch
|
|
||||||
|
|
||||||
#endif // TWOBLUECUBES_CATCH_RESULTINFO_BUILDER_HPP_INCLUDED
|
|
@ -109,7 +109,7 @@ namespace Catch {
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
do {
|
do {
|
||||||
m_currentResult.setLineInfo( m_runningTest->getTestCaseInfo().getLineInfo() );
|
m_assertionInfo.lineInfo = m_runningTest->getTestCaseInfo().getLineInfo();
|
||||||
runCurrentTest( redirectedCout, redirectedCerr );
|
runCurrentTest( redirectedCout, redirectedCerr );
|
||||||
}
|
}
|
||||||
while( m_runningTest->hasUntestedSections() && !aborting() );
|
while( m_runningTest->hasUntestedSections() && !aborting() );
|
||||||
@ -131,25 +131,17 @@ namespace Catch {
|
|||||||
|
|
||||||
private: // IResultCapture
|
private: // IResultCapture
|
||||||
|
|
||||||
virtual ResultAction::Value acceptResult( bool result ) {
|
virtual void acceptAssertionInfo( const AssertionInfo& assertionInfo ) {
|
||||||
return acceptResult( result ? ResultWas::Ok : ResultWas::ExpressionFailed );
|
m_assertionInfo = assertionInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ResultAction::Value acceptResult( ResultWas::OfType result ) {
|
virtual ResultAction::Value acceptExpression( const ExpressionResultBuilder& assertionResult, const AssertionInfo& assertionInfo ) {
|
||||||
m_currentResult.setResultType( result );
|
m_assertionInfo = assertionInfo;
|
||||||
|
m_currentResult = assertionResult;
|
||||||
return actOnCurrentResult();
|
return actOnCurrentResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ResultAction::Value acceptExpression( const ResultInfoBuilder& resultInfo ) {
|
virtual void testEnded( const AssertionResult& result ) {
|
||||||
m_currentResult = resultInfo;
|
|
||||||
return actOnCurrentResult();
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void acceptMessage( const std::string& msg ) {
|
|
||||||
m_currentResult.setMessage( msg );
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void testEnded( const ResultInfo& result ) {
|
|
||||||
if( result.getResultType() == ResultWas::Ok ) {
|
if( result.getResultType() == ResultWas::Ok ) {
|
||||||
m_totals.assertions.passed++;
|
m_totals.assertions.passed++;
|
||||||
}
|
}
|
||||||
@ -160,19 +152,19 @@ namespace Catch {
|
|||||||
std::vector<ScopedInfo*>::const_iterator it = m_scopedInfos.begin();
|
std::vector<ScopedInfo*>::const_iterator it = m_scopedInfos.begin();
|
||||||
std::vector<ScopedInfo*>::const_iterator itEnd = m_scopedInfos.end();
|
std::vector<ScopedInfo*>::const_iterator itEnd = m_scopedInfos.end();
|
||||||
for(; it != itEnd; ++it )
|
for(; it != itEnd; ++it )
|
||||||
m_reporter->Result( (*it)->getInfo() );
|
m_reporter->Result( (*it)->buildResult( m_assertionInfo ) );
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
std::vector<ResultInfo>::const_iterator it = m_info.begin();
|
std::vector<AssertionResult>::const_iterator it = m_assertionResults.begin();
|
||||||
std::vector<ResultInfo>::const_iterator itEnd = m_info.end();
|
std::vector<AssertionResult>::const_iterator itEnd = m_assertionResults.end();
|
||||||
for(; it != itEnd; ++it )
|
for(; it != itEnd; ++it )
|
||||||
m_reporter->Result( *it );
|
m_reporter->Result( *it );
|
||||||
}
|
}
|
||||||
m_info.clear();
|
m_assertionResults.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
if( result.getResultType() == ResultWas::Info )
|
if( result.getResultType() == ResultWas::Info )
|
||||||
m_info.push_back( result );
|
m_assertionResults.push_back( result );
|
||||||
else
|
else
|
||||||
m_reporter->Result( result );
|
m_reporter->Result( result );
|
||||||
}
|
}
|
||||||
@ -190,7 +182,7 @@ namespace Catch {
|
|||||||
if( !m_runningTest->addSection( oss.str() ) )
|
if( !m_runningTest->addSection( oss.str() ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
m_currentResult.setLineInfo( lineInfo );
|
m_assertionInfo.lineInfo = lineInfo;
|
||||||
m_reporter->StartSection( name, description );
|
m_reporter->StartSection( name, description );
|
||||||
assertions = m_totals.assertions;
|
assertions = m_totals.assertions;
|
||||||
|
|
||||||
@ -229,7 +221,7 @@ namespace Catch {
|
|||||||
: "";
|
: "";
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual const ResultInfo* getLastResult() const {
|
virtual const AssertionResult* getLastResult() const {
|
||||||
return &m_lastResult;
|
return &m_lastResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -242,10 +234,11 @@ namespace Catch {
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
ResultAction::Value actOnCurrentResult() {
|
ResultAction::Value actOnCurrentResult() {
|
||||||
m_lastResult = m_currentResult.build();
|
m_lastResult = m_currentResult.buildResult( m_assertionInfo );
|
||||||
testEnded( m_lastResult );
|
testEnded( m_lastResult );
|
||||||
|
|
||||||
m_currentResult = ResultInfoBuilder();
|
m_currentResult = ExpressionResultBuilder();
|
||||||
|
m_assertionInfo = AssertionInfo();
|
||||||
|
|
||||||
ResultAction::Value action = ResultAction::None;
|
ResultAction::Value action = ResultAction::None;
|
||||||
|
|
||||||
@ -284,26 +277,29 @@ namespace Catch {
|
|||||||
// This just means the test was aborted due to failure
|
// This just means the test was aborted due to failure
|
||||||
}
|
}
|
||||||
catch(...) {
|
catch(...) {
|
||||||
acceptMessage( getRegistryHub().getExceptionTranslatorRegistry().translateActiveException() );
|
m_currentResult
|
||||||
acceptResult( ResultWas::ThrewException );
|
.setResultType( ResultWas::ThrewException )
|
||||||
|
<< translateActiveException();
|
||||||
|
actOnCurrentResult();
|
||||||
}
|
}
|
||||||
m_info.clear();
|
m_assertionResults.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IMutableContext& m_context;
|
IMutableContext& m_context;
|
||||||
RunningTest* m_runningTest;
|
RunningTest* m_runningTest;
|
||||||
ResultInfoBuilder m_currentResult;
|
ExpressionResultBuilder m_currentResult;
|
||||||
ResultInfo m_lastResult;
|
AssertionResult m_lastResult;
|
||||||
|
|
||||||
const Config& m_config;
|
const Config& m_config;
|
||||||
Totals m_totals;
|
Totals m_totals;
|
||||||
Ptr<IReporter> m_reporter;
|
Ptr<IReporter> m_reporter;
|
||||||
std::vector<ScopedInfo*> m_scopedInfos;
|
std::vector<ScopedInfo*> m_scopedInfos;
|
||||||
std::vector<ResultInfo> m_info;
|
std::vector<AssertionResult> m_assertionResults;
|
||||||
IRunner* m_prevRunner;
|
IRunner* m_prevRunner;
|
||||||
IResultCapture* m_prevResultCapture;
|
IResultCapture* m_prevResultCapture;
|
||||||
const IConfig* m_prevConfig;
|
const IConfig* m_prevConfig;
|
||||||
|
AssertionInfo m_assertionInfo;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // end namespace Catch
|
} // end namespace Catch
|
||||||
|
@ -74,8 +74,6 @@ namespace Catch {
|
|||||||
m_remainder += c;
|
m_remainder += c;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Suppress assignment operator to avoid warnings from MSVC saying that
|
|
||||||
// it can't be implicitly synthesized.
|
|
||||||
TagExtracter& operator=(const TagExtracter&);
|
TagExtracter& operator=(const TagExtracter&);
|
||||||
|
|
||||||
std::set<std::string>& m_tags;
|
std::set<std::string>& m_tags;
|
||||||
@ -181,8 +179,6 @@ namespace Catch {
|
|||||||
m_exp.m_tagSets.push_back( m_currentTagSet );
|
m_exp.m_tagSets.push_back( m_currentTagSet );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Suppress assignment operator to avoid warnings from MSVC saying that
|
|
||||||
// it can't be implicitly synthesized.
|
|
||||||
TagExpressionParser& operator=(const TagExpressionParser&);
|
TagExpressionParser& operator=(const TagExpressionParser&);
|
||||||
|
|
||||||
bool m_isNegated;
|
bool m_isNegated;
|
||||||
|
@ -159,21 +159,21 @@ namespace Catch {
|
|||||||
m_sectionSpans.pop_back();
|
m_sectionSpans.pop_back();
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void Result( const ResultInfo& resultInfo ) {
|
virtual void Result( const AssertionResult& assertionResult ) {
|
||||||
if( !m_config.includeSuccessfulResults && resultInfo.getResultType() == ResultWas::Ok )
|
if( !m_config.includeSuccessfulResults && assertionResult.getResultType() == ResultWas::Ok )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
startSpansLazily();
|
startSpansLazily();
|
||||||
|
|
||||||
if( !resultInfo.getFilename().empty() ) {
|
if( !assertionResult.getSourceInfo().empty() ) {
|
||||||
TextColour colour( TextColour::FileName );
|
TextColour colour( TextColour::FileName );
|
||||||
m_config.stream << SourceLineInfo( resultInfo.getFilename(), resultInfo.getLine() );
|
m_config.stream << assertionResult.getSourceInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
if( resultInfo.hasExpression() ) {
|
if( assertionResult.hasExpression() ) {
|
||||||
TextColour colour( TextColour::OriginalExpression );
|
TextColour colour( TextColour::OriginalExpression );
|
||||||
m_config.stream << resultInfo.getExpression();
|
m_config.stream << assertionResult.getExpression();
|
||||||
if( resultInfo.ok() ) {
|
if( assertionResult.ok() ) {
|
||||||
TextColour successColour( TextColour::Success );
|
TextColour successColour( TextColour::Success );
|
||||||
m_config.stream << " succeeded";
|
m_config.stream << " succeeded";
|
||||||
}
|
}
|
||||||
@ -182,45 +182,51 @@ namespace Catch {
|
|||||||
m_config.stream << " failed";
|
m_config.stream << " failed";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch( resultInfo.getResultType() ) {
|
switch( assertionResult.getResultType() ) {
|
||||||
case ResultWas::ThrewException:
|
case ResultWas::ThrewException:
|
||||||
{
|
{
|
||||||
TextColour colour( TextColour::Error );
|
TextColour colour( TextColour::Error );
|
||||||
if( resultInfo.hasExpression() )
|
if( assertionResult.hasExpression() )
|
||||||
m_config.stream << " with unexpected";
|
m_config.stream << " with unexpected";
|
||||||
else
|
else
|
||||||
m_config.stream << "Unexpected";
|
m_config.stream << "Unexpected";
|
||||||
m_config.stream << " exception with message: '" << resultInfo.getMessage() << "'";
|
m_config.stream << " exception with message: '" << assertionResult.getMessage() << "'";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ResultWas::DidntThrowException:
|
case ResultWas::DidntThrowException:
|
||||||
{
|
{
|
||||||
TextColour colour( TextColour::Error );
|
TextColour colour( TextColour::Error );
|
||||||
if( resultInfo.hasExpression() )
|
if( assertionResult.hasExpression() )
|
||||||
m_config.stream << " because no exception was thrown where one was expected";
|
m_config.stream << " because no exception was thrown where one was expected";
|
||||||
else
|
else
|
||||||
m_config.stream << "No exception thrown where one was expected";
|
m_config.stream << "No exception thrown where one was expected";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ResultWas::Info:
|
case ResultWas::Info:
|
||||||
streamVariableLengthText( "info", resultInfo.getMessage() );
|
{
|
||||||
|
TextColour colour( TextColour::ReconstructedExpression );
|
||||||
|
streamVariableLengthText( "info", assertionResult.getMessage() );
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case ResultWas::Warning:
|
case ResultWas::Warning:
|
||||||
m_config.stream << "warning:\n'" << resultInfo.getMessage() << "'";
|
{
|
||||||
|
TextColour colour( TextColour::ReconstructedExpression );
|
||||||
|
streamVariableLengthText( "warning", assertionResult.getMessage() );
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case ResultWas::ExplicitFailure:
|
case ResultWas::ExplicitFailure:
|
||||||
{
|
{
|
||||||
TextColour colour( TextColour::Error );
|
TextColour colour( TextColour::Error );
|
||||||
m_config.stream << "failed with message: '" << resultInfo.getMessage() << "'";
|
m_config.stream << "failed with message: '" << assertionResult.getMessage() << "'";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ResultWas::Unknown: // These cases are here to prevent compiler warnings
|
case ResultWas::Unknown: // These cases are here to prevent compiler warnings
|
||||||
case ResultWas::Ok:
|
case ResultWas::Ok:
|
||||||
case ResultWas::FailureBit:
|
case ResultWas::FailureBit:
|
||||||
case ResultWas::ExpressionFailed:
|
case ResultWas::ExpressionFailed:
|
||||||
case ResultWas::Exception:
|
case ResultWas::Exception:
|
||||||
if( !resultInfo.hasExpression() ) {
|
if( !assertionResult.hasExpression() ) {
|
||||||
if( resultInfo.ok() ) {
|
if( assertionResult.ok() ) {
|
||||||
TextColour colour( TextColour::Success );
|
TextColour colour( TextColour::Success );
|
||||||
m_config.stream << " succeeded";
|
m_config.stream << " succeeded";
|
||||||
}
|
}
|
||||||
@ -232,14 +238,15 @@ namespace Catch {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( resultInfo.hasExpandedExpression() ) {
|
if( assertionResult.hasExpandedExpression() ) {
|
||||||
m_config.stream << " for: ";
|
m_config.stream << " for: ";
|
||||||
if( resultInfo.getExpandedExpression().size() > 40 )
|
if( assertionResult.getExpandedExpression().size() > 40 ) {
|
||||||
m_config.stream << "\n";
|
m_config.stream << "\n";
|
||||||
if( resultInfo.getExpandedExpression().size() < 70 )
|
if( assertionResult.getExpandedExpression().size() < 70 )
|
||||||
m_config.stream << "\t";
|
m_config.stream << "\t";
|
||||||
|
}
|
||||||
TextColour colour( TextColour::ReconstructedExpression );
|
TextColour colour( TextColour::ReconstructedExpression );
|
||||||
m_config.stream << resultInfo.getExpandedExpression();
|
m_config.stream << assertionResult.getExpandedExpression();
|
||||||
}
|
}
|
||||||
m_config.stream << std::endl;
|
m_config.stream << std::endl;
|
||||||
}
|
}
|
||||||
@ -309,7 +316,7 @@ namespace Catch {
|
|||||||
void streamVariableLengthText( const std::string& prefix, const std::string& text ) {
|
void streamVariableLengthText( const std::string& prefix, const std::string& text ) {
|
||||||
std::string trimmed = trim( text );
|
std::string trimmed = trim( text );
|
||||||
if( trimmed.find_first_of( "\r\n" ) == std::string::npos ) {
|
if( trimmed.find_first_of( "\r\n" ) == std::string::npos ) {
|
||||||
m_config.stream << "[" << prefix << ": " << trimmed << "]\n";
|
m_config.stream << "[" << prefix << ": " << trimmed << "]";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
m_config.stream << "\n[" << prefix << "] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n" << trimmed
|
m_config.stream << "\n[" << prefix << "] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n" << trimmed
|
||||||
|
@ -97,19 +97,19 @@ namespace Catch {
|
|||||||
m_currentStats->m_testCaseStats.push_back( TestCaseStats( testInfo.getName() ) );
|
m_currentStats->m_testCaseStats.push_back( TestCaseStats( testInfo.getName() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void Result( const Catch::ResultInfo& resultInfo ) {
|
virtual void Result( const Catch::AssertionResult& assertionResult ) {
|
||||||
if( resultInfo.getResultType() != ResultWas::Ok || m_config.includeSuccessfulResults ) {
|
if( assertionResult.getResultType() != ResultWas::Ok || m_config.includeSuccessfulResults ) {
|
||||||
TestCaseStats& testCaseStats = m_currentStats->m_testCaseStats.back();
|
TestCaseStats& testCaseStats = m_currentStats->m_testCaseStats.back();
|
||||||
TestStats stats;
|
TestStats stats;
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
if( !resultInfo.getMessage().empty() )
|
if( !assertionResult.getMessage().empty() )
|
||||||
oss << resultInfo.getMessage() << " at ";
|
oss << assertionResult.getMessage() << " at ";
|
||||||
oss << SourceLineInfo( resultInfo.getFilename(), resultInfo.getLine() );
|
oss << assertionResult.getSourceInfo();
|
||||||
stats.m_content = oss.str();
|
stats.m_content = oss.str();
|
||||||
stats.m_message = resultInfo.getExpandedExpression();
|
stats.m_message = assertionResult.getExpandedExpression();
|
||||||
stats.m_resultType = resultInfo.getTestMacroName();
|
stats.m_resultType = assertionResult.getTestMacroName();
|
||||||
|
|
||||||
switch( resultInfo.getResultType() ) {
|
switch( assertionResult.getResultType() ) {
|
||||||
case ResultWas::ThrewException:
|
case ResultWas::ThrewException:
|
||||||
stats.m_element = "error";
|
stats.m_element = "error";
|
||||||
m_currentStats->m_errorsCount++;
|
m_currentStats->m_errorsCount++;
|
||||||
|
@ -75,42 +75,42 @@ namespace Catch {
|
|||||||
m_currentTestSuccess = true;
|
m_currentTestSuccess = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void Result( const Catch::ResultInfo& resultInfo ) {
|
virtual void Result( const Catch::AssertionResult& assertionResult ) {
|
||||||
if( !m_config.includeSuccessfulResults && resultInfo.getResultType() == ResultWas::Ok )
|
if( !m_config.includeSuccessfulResults && assertionResult.getResultType() == ResultWas::Ok )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( resultInfo.hasExpression() ) {
|
if( assertionResult.hasExpression() ) {
|
||||||
m_xml.startElement( "Expression" )
|
m_xml.startElement( "Expression" )
|
||||||
.writeAttribute( "success", resultInfo.ok() )
|
.writeAttribute( "success", assertionResult.ok() )
|
||||||
.writeAttribute( "filename", resultInfo.getFilename() )
|
.writeAttribute( "filename", assertionResult.getSourceInfo().file )
|
||||||
.writeAttribute( "line", resultInfo.getLine() );
|
.writeAttribute( "line", assertionResult.getSourceInfo().line );
|
||||||
|
|
||||||
m_xml.scopedElement( "Original" )
|
m_xml.scopedElement( "Original" )
|
||||||
.writeText( resultInfo.getExpression() );
|
.writeText( assertionResult.getExpression() );
|
||||||
m_xml.scopedElement( "Expanded" )
|
m_xml.scopedElement( "Expanded" )
|
||||||
.writeText( resultInfo.getExpandedExpression() );
|
.writeText( assertionResult.getExpandedExpression() );
|
||||||
m_currentTestSuccess &= resultInfo.ok();
|
m_currentTestSuccess &= assertionResult.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
switch( resultInfo.getResultType() ) {
|
switch( assertionResult.getResultType() ) {
|
||||||
case ResultWas::ThrewException:
|
case ResultWas::ThrewException:
|
||||||
m_xml.scopedElement( "Exception" )
|
m_xml.scopedElement( "Exception" )
|
||||||
.writeAttribute( "filename", resultInfo.getFilename() )
|
.writeAttribute( "filename", assertionResult.getSourceInfo().file )
|
||||||
.writeAttribute( "line", resultInfo.getLine() )
|
.writeAttribute( "line", assertionResult.getSourceInfo().line )
|
||||||
.writeText( resultInfo.getMessage() );
|
.writeText( assertionResult.getMessage() );
|
||||||
m_currentTestSuccess = false;
|
m_currentTestSuccess = false;
|
||||||
break;
|
break;
|
||||||
case ResultWas::Info:
|
case ResultWas::Info:
|
||||||
m_xml.scopedElement( "Info" )
|
m_xml.scopedElement( "Info" )
|
||||||
.writeText( resultInfo.getMessage() );
|
.writeText( assertionResult.getMessage() );
|
||||||
break;
|
break;
|
||||||
case ResultWas::Warning:
|
case ResultWas::Warning:
|
||||||
m_xml.scopedElement( "Warning" )
|
m_xml.scopedElement( "Warning" )
|
||||||
.writeText( resultInfo.getMessage() );
|
.writeText( assertionResult.getMessage() );
|
||||||
break;
|
break;
|
||||||
case ResultWas::ExplicitFailure:
|
case ResultWas::ExplicitFailure:
|
||||||
m_xml.scopedElement( "Failure" )
|
m_xml.scopedElement( "Failure" )
|
||||||
.writeText( resultInfo.getMessage() );
|
.writeText( assertionResult.getMessage() );
|
||||||
m_currentTestSuccess = false;
|
m_currentTestSuccess = false;
|
||||||
break;
|
break;
|
||||||
case ResultWas::Unknown:
|
case ResultWas::Unknown:
|
||||||
@ -121,7 +121,7 @@ namespace Catch {
|
|||||||
case ResultWas::DidntThrowException:
|
case ResultWas::DidntThrowException:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if( resultInfo.hasExpression() )
|
if( assertionResult.hasExpression() )
|
||||||
m_xml.endElement();
|
m_xml.endElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
169
projects/SelfTest/Baselines/failingResults.txt
Normal file
169
projects/SelfTest/Baselines/failingResults.txt
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
[Started testing]
|
||||||
|
[Started group: './failing*']
|
||||||
|
|
||||||
|
[Running: ./failing/TestClass/failingCase]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ClassTests.cpp:28: s == "world" failed for: "hello" == "world"
|
||||||
|
[Finished: './failing/TestClass/failingCase' 1 test case failed (1 assertion failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/Fixture/failingCase]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ClassTests.cpp:55: m_a == 2 failed for: 1 == 2
|
||||||
|
[Finished: './failing/Fixture/failingCase' 1 test case failed (1 assertion failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/conditions/equality]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:71: data.int_seven == 6 failed for: 7 == 6
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:72: data.int_seven == 8 failed for: 7 == 8
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:73: data.int_seven == 0 failed for: 7 == 0
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:74: data.float_nine_point_one == Approx( 9.11f ) failed for: 9.1 == Approx( 9.11 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:75: data.float_nine_point_one == Approx( 9.0f ) failed for: 9.1 == Approx( 9 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:76: data.float_nine_point_one == Approx( 1 ) failed for: 9.1 == Approx( 1 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:77: data.float_nine_point_one == Approx( 0 ) failed for: 9.1 == Approx( 0 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:78: data.double_pi == Approx( 3.1415 ) failed for: 3.14159 == Approx( 3.1415 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:79: data.str_hello == "goodbye" failed for: "hello" == "goodbye"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:80: data.str_hello == "hell" failed for: "hello" == "hell"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:81: data.str_hello == "hello1" failed for: "hello" == "hello1"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:82: data.str_hello.size() == 6 failed for: 5 == 6
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:85: x == Approx( 1.301 ) failed for: 1.3 == Approx( 1.301 )
|
||||||
|
[Finished: './failing/conditions/equality' 1 test case failed (All 13 assertions failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/conditions/inequality]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:111: data.int_seven != 7 failed for: 7 != 7
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:112: data.float_nine_point_one != Approx( 9.1f ) failed for: 9.1 != Approx( 9.1 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:113: data.double_pi != Approx( 3.1415926535 ) failed for: 3.14159 != Approx( 3.14159 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:114: data.str_hello != "hello" failed for: "hello" != "hello"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:115: data.str_hello.size() != 5 failed for: 5 != 5
|
||||||
|
[Finished: './failing/conditions/inequality' 1 test case failed (All 5 assertions failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/conditions/ordered]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:152: data.int_seven > 7 failed for: 7 > 7
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:153: data.int_seven < 7 failed for: 7 < 7
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:154: data.int_seven > 8 failed for: 7 > 8
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:155: data.int_seven < 6 failed for: 7 < 6
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:156: data.int_seven < 0 failed for: 7 < 0
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:157: data.int_seven < -1 failed for: 7 < -1
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:159: data.int_seven >= 8 failed for: 7 >= 8
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:160: data.int_seven <= 6 failed for: 7 <= 6
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:162: data.float_nine_point_one < 9 failed for: 9.1 < 9
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:163: data.float_nine_point_one > 10 failed for: 9.1 > 10
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:164: data.float_nine_point_one > 9.2 failed for: 9.1 > 9.2
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:166: data.str_hello > "hello" failed for: "hello" > "hello"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:167: data.str_hello < "hello" failed for: "hello" < "hello"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:168: data.str_hello > "hellp" failed for: "hello" > "hellp"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:169: data.str_hello > "z" failed for: "hello" > "z"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:170: data.str_hello < "hellm" failed for: "hello" < "hellm"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:171: data.str_hello < "a" failed for: "hello" < "a"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:173: data.str_hello >= "z" failed for: "hello" >= "z"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:174: data.str_hello <= "a" failed for: "hello" <= "a"
|
||||||
|
[Finished: './failing/conditions/ordered' 1 test case failed (All 19 assertions failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/conditions/not]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:320: false != false failed
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:321: true != true failed
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:322: !true failed for: false
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:323: !true failed
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:325: !trueValue failed for: false
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:326: !trueValue failed for: !true
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:328: !(1 == 1) failed for: false
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:329: !1 == 1 failed for: !(1 == 1)
|
||||||
|
[Finished: './failing/conditions/not' 1 test case failed (All 8 assertions failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/exceptions/explicit]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ExceptionTests.cpp:47: thisThrows() failed with unexpected exception with message: 'expected exception'
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ExceptionTests.cpp:48: thisDoesntThrow() failed because no exception was thrown where one was expected
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ExceptionTests.cpp:49: thisThrows() failed with unexpected exception with message: 'expected exception'
|
||||||
|
[Finished: './failing/exceptions/explicit' 1 test case failed (All 3 assertions failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/exceptions/implicit]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ExceptionTests.cpp:52: Unexpected exception with message: 'unexpected exception'
|
||||||
|
[Finished: './failing/exceptions/implicit' 1 test case failed (1 assertion failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/exceptions/custom]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ExceptionTests.cpp:95: Unexpected exception with message: 'custom exception'
|
||||||
|
[Finished: './failing/exceptions/custom' 1 test case failed (1 assertion failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/exceptions/custom/nothrow]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ExceptionTests.cpp:102: throw CustomException( "unexpected custom exception" ) failed with unexpected exception with message: 'unexpected custom exception'
|
||||||
|
[Finished: './failing/exceptions/custom/nothrow' 1 test case failed (1 assertion failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/exceptions/custom/throw]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ExceptionTests.cpp:107: throw CustomException( "custom exception - not std" ) failed with unexpected exception with message: 'custom exception - not std'
|
||||||
|
[Finished: './failing/exceptions/custom/throw' 1 test case failed (1 assertion failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/exceptions/custom/double]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ExceptionTests.cpp:111: Unexpected exception with message: '3.14'
|
||||||
|
[Finished: './failing/exceptions/custom/double' 1 test case failed (1 assertion failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/exceptions/in-section]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ExceptionTests.cpp:125: Unexpected exception with message: 'Exception from section'
|
||||||
|
[Finished: './failing/exceptions/in-section' 1 test case failed (1 assertion failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/message/info/1]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MessageTests.cpp:19: [info: this message should be logged]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MessageTests.cpp:20: [info: so should this]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MessageTests.cpp:22: a == 1 failed for: 2 == 1
|
||||||
|
[Finished: './failing/message/info/1' 1 test case failed (1 assertion failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/message/fail]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MessageTests.cpp:46: failed with message: 'This is a failure'
|
||||||
|
[Finished: './failing/message/fail' 1 test case failed (1 assertion failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/message/sections]
|
||||||
|
|
||||||
|
[Started section: 'one']
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MessageTests.cpp:53: failed with message: 'Message from section one'
|
||||||
|
[End of section: 'one' 1 assertion failed]
|
||||||
|
|
||||||
|
[Started section: 'two']
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MessageTests.cpp:58: failed with message: 'Message from section two'
|
||||||
|
[End of section: 'two' 1 assertion failed]
|
||||||
|
|
||||||
|
[Finished: './failing/message/sections' 1 test case failed (All 2 assertions failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/info]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:169: [info: hi]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:171: [info: i := 7]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:172: false failed
|
||||||
|
[Finished: './failing/info' 1 test case failed (1 assertion failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/checkedif]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:177: flag failed for: false
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:190: testCheckedIf( false ) failed for: false
|
||||||
|
[Finished: './failing/checkedif' 1 test case failed (All 2 assertions failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/checkedelse]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:195: flag failed for: false
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:208: testCheckedElse( false ) failed for: false
|
||||||
|
[Finished: './failing/checkedelse' 1 test case failed (All 2 assertions failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/matchers/Contains]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:255: testStringForMatching() Contains( "not there" ) failed for:
|
||||||
|
"this string contains 'abc' as a substring" contains: "not there"
|
||||||
|
[Finished: './failing/matchers/Contains' 1 test case failed (1 assertion failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/matchers/StartsWith]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:260: testStringForMatching() StartsWith( "string" ) failed for:
|
||||||
|
"this string contains 'abc' as a substring" starts with: "string"
|
||||||
|
[Finished: './failing/matchers/StartsWith' 1 test case failed (1 assertion failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/matchers/EndsWith]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:265: testStringForMatching() EndsWith( "this" ) failed for:
|
||||||
|
"this string contains 'abc' as a substring" ends with: "this"
|
||||||
|
[Finished: './failing/matchers/EndsWith' 1 test case failed (1 assertion failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/matchers/Equals]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:270: testStringForMatching() Equals( "something else" ) failed for:
|
||||||
|
"this string contains 'abc' as a substring" equals: "something else"
|
||||||
|
[Finished: './failing/matchers/Equals' 1 test case failed (1 assertion failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/Tricky/non streamable type]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:95: &o1 == &o2 failed for: 0x7fff522b88b8 == 0x7fff522b88b0
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:96: o1 == o2 failed for: {?} == {?}
|
||||||
|
[Finished: './failing/Tricky/non streamable type' 1 test case failed (All 2 assertions failed)]
|
||||||
|
|
||||||
|
[Running: ./failing/string literals]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:106: std::string( "first" ) == "second" failed for: "first" == "second"
|
||||||
|
[Finished: './failing/string literals' 1 test case failed (1 assertion failed)]
|
||||||
|
[End of group: './failing*'. All 25 test cases failed (All 72 assertions failed)]
|
||||||
|
|
||||||
|
|
||||||
|
[Testing completed. All 25 test cases failed (All 72 assertions failed)]
|
||||||
|
|
469
projects/SelfTest/Baselines/successfulResults.txt
Normal file
469
projects/SelfTest/Baselines/successfulResults.txt
Normal file
@ -0,0 +1,469 @@
|
|||||||
|
[Started testing]
|
||||||
|
[Started group: './succeeding*']
|
||||||
|
|
||||||
|
[Running: ./succeeding/Approx/simple]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:20: d == Approx( 1.23 ) succeeded for: 1.23 == Approx( 1.23 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:21: d != Approx( 1.22 ) succeeded for: 1.23 != Approx( 1.22 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:22: d != Approx( 1.24 ) succeeded for: 1.23 != Approx( 1.24 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:24: Approx( d ) == 1.23 succeeded for: Approx( 1.23 ) == 1.23
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:25: Approx( d ) != 1.22 succeeded for: Approx( 1.23 ) != 1.22
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:26: Approx( d ) != 1.24 succeeded for: Approx( 1.23 ) != 1.24
|
||||||
|
[Finished: './succeeding/Approx/simple' All tests passed (6 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/Approx/epsilon]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:38: d != Approx( 1.231 ) succeeded for: 1.23 != Approx( 1.231 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:39: d == Approx( 1.231 ).epsilon( 0.1 ) succeeded for: 1.23 == Approx( 1.231 )
|
||||||
|
[Finished: './succeeding/Approx/epsilon' All tests passed (2 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/Approx/float]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:49: 1.23f == Approx( 1.23f ) succeeded for: 1.23 == Approx( 1.23 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:50: 0.0f == Approx( 0.0f ) succeeded for: 0 == Approx( 0 )
|
||||||
|
[Finished: './succeeding/Approx/float' All tests passed (2 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/Approx/int]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:60: 1 == Approx( 1 ) succeeded
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:61: 0 == Approx( 0 ) succeeded
|
||||||
|
[Finished: './succeeding/Approx/int' All tests passed (2 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/Approx/mixed]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:75: 1.0f == Approx( 1 ) succeeded for: 1 == Approx( 1 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:76: 0 == Approx( dZero) succeeded for: 0 == Approx( 0 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:77: 0 == Approx( dSmall ).epsilon( 0.001 ) succeeded for: 0 == Approx( 1e-05 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:78: 1.234f == Approx( dMedium ) succeeded for: 1.234 == Approx( 1.234 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:79: dMedium == Approx( 1.234f ) succeeded for: 1.234 == Approx( 1.234 )
|
||||||
|
[Finished: './succeeding/Approx/mixed' All tests passed (5 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/Approx/custom]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:93: d == approx( 1.23 ) succeeded for: 1.23 == Approx( 1.23 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:94: d == approx( 1.22 ) succeeded for: 1.23 == Approx( 1.22 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:95: d == approx( 1.24 ) succeeded for: 1.23 == Approx( 1.24 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:96: d != approx( 1.25 ) succeeded for: 1.23 != Approx( 1.25 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:98: approx( d ) == 1.23 succeeded for: Approx( 1.23 ) == 1.23
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:99: approx( d ) == 1.22 succeeded for: Approx( 1.23 ) == 1.22
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:100: approx( d ) == 1.24 succeeded for: Approx( 1.23 ) == 1.24
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ApproxTests.cpp:101: approx( d ) != 1.25 succeeded for: Approx( 1.23 ) != 1.25
|
||||||
|
[Finished: './succeeding/Approx/custom' All tests passed (8 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/TestClass/succeedingCase]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ClassTests.cpp:24: s == "hello" succeeded for: "hello" == "hello"
|
||||||
|
[Finished: './succeeding/TestClass/succeedingCase' All tests passed (1 assertion in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/Fixture/succeedingCase]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ClassTests.cpp:47: m_a == 1 succeeded for: 1 == 1
|
||||||
|
[Finished: './succeeding/Fixture/succeedingCase' All tests passed (1 assertion in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/conditions/equality]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:55: data.int_seven == 7 succeeded for: 7 == 7
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:56: data.float_nine_point_one == Approx( 9.1f ) succeeded for: 9.1 == Approx( 9.1 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:57: data.double_pi == Approx( 3.1415926535 ) succeeded for: 3.14159 == Approx( 3.14159 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:58: data.str_hello == "hello" succeeded for: "hello" == "hello"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:59: "hello" == data.str_hello succeeded for: "hello" == "hello"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:60: data.str_hello.size() == 5 succeeded for: 5 == 5
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:63: x == Approx( 1.3 ) succeeded for: 1.3 == Approx( 1.3 )
|
||||||
|
[Finished: './succeeding/conditions/equality' All tests passed (7 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/conditions/inequality]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:93: data.int_seven != 6 succeeded for: 7 != 6
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:94: data.int_seven != 8 succeeded for: 7 != 8
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:95: data.float_nine_point_one != Approx( 9.11f ) succeeded for: 9.1 != Approx( 9.11 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:96: data.float_nine_point_one != Approx( 9.0f ) succeeded for: 9.1 != Approx( 9 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:97: data.float_nine_point_one != Approx( 1 ) succeeded for: 9.1 != Approx( 1 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:98: data.float_nine_point_one != Approx( 0 ) succeeded for: 9.1 != Approx( 0 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:99: data.double_pi != Approx( 3.1415 ) succeeded for: 3.14159 != Approx( 3.1415 )
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:100: data.str_hello != "goodbye" succeeded for: "hello" != "goodbye"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:101: data.str_hello != "hell" succeeded for: "hello" != "hell"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:102: data.str_hello != "hello1" succeeded for: "hello" != "hello1"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:103: data.str_hello.size() != 6 succeeded for: 5 != 6
|
||||||
|
[Finished: './succeeding/conditions/inequality' All tests passed (11 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/conditions/ordered]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:124: data.int_seven < 8 succeeded for: 7 < 8
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:125: data.int_seven > 6 succeeded for: 7 > 6
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:126: data.int_seven > 0 succeeded for: 7 > 0
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:127: data.int_seven > -1 succeeded for: 7 > -1
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:129: data.int_seven >= 7 succeeded for: 7 >= 7
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:130: data.int_seven >= 6 succeeded for: 7 >= 6
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:131: data.int_seven <= 7 succeeded for: 7 <= 7
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:132: data.int_seven <= 8 succeeded for: 7 <= 8
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:134: data.float_nine_point_one > 9 succeeded for: 9.1 > 9
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:135: data.float_nine_point_one < 10 succeeded for: 9.1 < 10
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:136: data.float_nine_point_one < 9.2 succeeded for: 9.1 < 9.2
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:138: data.str_hello <= "hello" succeeded for: "hello" <= "hello"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:139: data.str_hello >= "hello" succeeded for: "hello" >= "hello"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:141: data.str_hello < "hellp" succeeded for: "hello" < "hellp"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:142: data.str_hello < "zebra" succeeded for: "hello" < "zebra"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:143: data.str_hello > "hellm" succeeded for: "hello" > "hellm"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:144: data.str_hello > "a" succeeded for: "hello" > "a"
|
||||||
|
[Finished: './succeeding/conditions/ordered' All tests passed (17 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/conditions/int literals]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:188: i == 1 succeeded for: 1 == 1
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:189: ui == 2 succeeded for: 2 == 2
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:190: l == 3 succeeded for: 3 == 3
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:191: ul == 4 succeeded for: 4 == 4
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:192: c == 5 succeeded for: 5 == 5
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:193: uc == 6 succeeded for: == 6
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:195: 1 == i succeeded for: 1 == 1
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:196: 2 == ui succeeded for: 2 == 2
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:197: 3 == l succeeded for: 3 == 3
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:198: 4 == ul succeeded for: 4 == 4
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:199: 5 == c succeeded for: 5 == 5
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:200: 6 == uc succeeded for: 6 ==
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:202: (std::numeric_limits<unsigned long>::max)() > ul succeeded for: 0xffffffffffffffff > 4
|
||||||
|
[Finished: './succeeding/conditions/int literals' All tests passed (13 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/conditions//long_to_unsigned_x]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:223: long_var == unsigned_char_var succeeded for: 1 ==
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:224: long_var == unsigned_short_var succeeded for: 1 == 1
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:225: long_var == unsigned_int_var succeeded for: 1 == 1
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:226: long_var == unsigned_long_var succeeded for: 1 == 1
|
||||||
|
[Finished: './succeeding/conditions//long_to_unsigned_x' All tests passed (4 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/conditions/negative ints]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:232: ( -1 > 2u ) succeeded for: true
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:233: -1 > 2u succeeded for: -1 > 2
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:235: ( 2u < -1 ) succeeded for: true
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:236: 2u < -1 succeeded for: 2 < -1
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:239: ( minInt > 2u ) succeeded for: true
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:240: minInt > 2u succeeded for: -2147483648 > 2
|
||||||
|
[Finished: './succeeding/conditions/negative ints' All tests passed (6 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/conditions/computed ints]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:255: 54 == 6*9 succeeded for: 54 == 54
|
||||||
|
[Finished: './succeeding/conditions/computed ints' All tests passed (1 assertion in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/conditions/ptr]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:271: p == __null succeeded for: __null == 0
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:272: p == pNULL succeeded for: __null == __null
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:277: p != __null succeeded for: 0x7fff556be0f8 != 0
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:280: cp != __null succeeded for: 0x7fff556be0f8 != 0
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:283: cpc != __null succeeded for: 0x7fff556be0f8 != 0
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:285: returnsNull() == __null succeeded for: {null string} == 0
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:286: returnsConstNull() == __null succeeded for: {null string} == 0
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:288: __null != p succeeded for: 0 != 0x7fff556be0f8
|
||||||
|
[Finished: './succeeding/conditions/ptr' All tests passed (8 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/conditions/not]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:303: false == false succeeded
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:304: true == true succeeded
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:305: !false succeeded for: true
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:306: !false succeeded
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:308: !falseValue succeeded for: true
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:309: !falseValue succeeded for: !false
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:311: !(1 == 2) succeeded for: true
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:312: !1 == 2 succeeded for: !(1 == 2)
|
||||||
|
[Finished: './succeeding/conditions/not' All tests passed (8 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/exceptions/explicit]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ExceptionTests.cpp:39: thisThrows() succeeded
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ExceptionTests.cpp:40: thisDoesntThrow() succeeded
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ExceptionTests.cpp:41: thisThrows() succeeded
|
||||||
|
[Finished: './succeeding/exceptions/explicit' All tests passed (3 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/exceptions/error messages]
|
||||||
|
|
||||||
|
[Started section: 'custom, unexpected']
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ExceptionTests.cpp:145: runner.getLog() Contains( "custom exception" ) succeeded for:
|
||||||
|
"\[g] ./failing/exceptions/custom
|
||||||
|
\[tc] ./failing/exceptions/custom
|
||||||
|
ThrewException'custom exception' /[tc] ./failing/exceptions/custom
|
||||||
|
/[g] ./failing/exceptions/custom
|
||||||
|
" contains: "custom exception"
|
||||||
|
[End of section: 'custom, unexpected' 1 assertion passed]
|
||||||
|
|
||||||
|
[Started section: 'in section']
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ExceptionTests.cpp:153: runner.getLog() Contains( "Exception from section" ) succeeded for:
|
||||||
|
"\[g] ./failing/exceptions/in-section
|
||||||
|
\[tc] ./failing/exceptions/in-section
|
||||||
|
\ [s] the section
|
||||||
|
\ [s] the section2
|
||||||
|
/ [s] the section2
|
||||||
|
/ [s] the section
|
||||||
|
ThrewException'Exception from section' \ [s] the section
|
||||||
|
/ [s] the section
|
||||||
|
/[tc] ./failing/exceptions/in-section
|
||||||
|
/[g] ./failing/exceptions/in-section
|
||||||
|
" contains: "Exception from section"
|
||||||
|
[End of section: 'in section' 1 assertion passed]
|
||||||
|
|
||||||
|
[Finished: './succeeding/exceptions/error messages' All tests passed (2 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/exceptions/notimplemented]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ExceptionTests.cpp:165: thisFunctionNotImplemented( 7 ) succeeded
|
||||||
|
[Finished: './succeeding/exceptions/notimplemented' All tests passed (1 assertion in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/generators/1]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 2 == 2
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 200 == 200
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 4 == 4
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 200 == 200
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 6 == 6
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 200 == 200
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 8 == 8
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 200 == 200
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 10 == 10
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 200 == 200
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 30 == 30
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 200 == 200
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 40 == 40
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 200 == 200
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 42 == 42
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 200 == 200
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 72 == 72
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 200 == 200
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 2 == 2
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 202 == 202
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 4 == 4
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 202 == 202
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 6 == 6
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 202 == 202
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 8 == 8
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 202 == 202
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 10 == 10
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 202 == 202
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 30 == 30
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 202 == 202
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 40 == 40
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 202 == 202
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 42 == 42
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 202 == 202
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 72 == 72
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 202 == 202
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 2 == 2
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 204 == 204
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 4 == 4
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 204 == 204
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 6 == 6
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 204 == 204
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 8 == 8
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 204 == 204
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 10 == 10
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 204 == 204
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 30 == 30
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 204 == 204
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 40 == 40
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 204 == 204
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 42 == 42
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 204 == 204
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 72 == 72
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 204 == 204
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 2 == 2
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 206 == 206
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 4 == 4
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 206 == 206
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 6 == 6
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 206 == 206
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 8 == 8
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 206 == 206
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 10 == 10
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 206 == 206
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 30 == 30
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 206 == 206
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 40 == 40
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 206 == 206
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 42 == 42
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 206 == 206
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 72 == 72
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 206 == 206
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 2 == 2
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 208 == 208
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 4 == 4
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 208 == 208
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 6 == 6
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 208 == 208
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 8 == 8
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 208 == 208
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 10 == 10
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 208 == 208
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 30 == 30
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 208 == 208
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 40 == 40
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 208 == 208
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 42 == 42
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 208 == 208
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 72 == 72
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 208 == 208
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 2 == 2
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 210 == 210
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 4 == 4
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 210 == 210
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 6 == 6
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 210 == 210
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 8 == 8
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 210 == 210
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 10 == 10
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 210 == 210
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 30 == 30
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 210 == 210
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 40 == 40
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 210 == 210
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 42 == 42
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 210 == 210
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 72 == 72
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 210 == 210
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 2 == 2
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 212 == 212
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 4 == 4
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 212 == 212
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 6 == 6
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 212 == 212
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 8 == 8
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 212 == 212
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 10 == 10
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 212 == 212
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 30 == 30
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 212 == 212
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 40 == 40
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 212 == 212
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 42 == 42
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 212 == 212
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 72 == 72
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 212 == 212
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 2 == 2
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 214 == 214
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 4 == 4
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 214 == 214
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 6 == 6
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 214 == 214
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 8 == 8
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 214 == 214
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 10 == 10
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 214 == 214
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 30 == 30
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 214 == 214
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 40 == 40
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 214 == 214
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 42 == 42
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 214 == 214
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:26: multiply( i, 2 ) == i*2 succeeded for: 72 == 72
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/GeneratorTests.cpp:27: multiply( j, 2 ) == j*2 succeeded for: 214 == 214
|
||||||
|
[Finished: './succeeding/generators/1' All tests passed (144 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/message]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MessageTests.cpp:14: [warning: this is a warning]
|
||||||
|
[Finished: './succeeding/message' No tests ran]
|
||||||
|
|
||||||
|
[Running: ./succeeding/Misc/Sections]
|
||||||
|
[Started section: 's1']
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:25: a != b succeeded for: 1 != 2
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:26: b != a succeeded for: 2 != 1
|
||||||
|
[End of section: 's1' All 2 assertions passed]
|
||||||
|
|
||||||
|
[Started section: 's2']
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:31: a != b succeeded for: 1 != 2
|
||||||
|
[End of section: 's2' 1 assertion passed]
|
||||||
|
|
||||||
|
[Finished: './succeeding/Misc/Sections' All tests passed (3 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/Misc/Sections/nested]
|
||||||
|
[Started section: 's1']
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:42: a != b succeeded for: 1 != 2
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:43: b != a succeeded for: 2 != 1
|
||||||
|
[Started section: 's2']
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:47: a != b succeeded for: 1 != 2
|
||||||
|
[End of section: 's2' 1 assertion passed]
|
||||||
|
|
||||||
|
[End of section: 's1' All 3 assertions passed]
|
||||||
|
|
||||||
|
[Finished: './succeeding/Misc/Sections/nested' All tests passed (3 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/Misc/null strings]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:163: makeString( false ) != static_cast<char*>(__null) succeeded for: "valid string" != {null string}
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:164: makeString( true ) == static_cast<char*>(__null) succeeded for: {null string} == {null string}
|
||||||
|
[Finished: './succeeding/Misc/null strings' All tests passed (2 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/checkedif]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:177: flag succeeded for: true
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:185: testCheckedIf( true ) succeeded for: true
|
||||||
|
[Finished: './succeeding/checkedif' All tests passed (2 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/checkedelse]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:195: flag succeeded for: true
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:203: testCheckedElse( true ) succeeded for: true
|
||||||
|
[Finished: './succeeding/checkedelse' All tests passed (2 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/atomic if]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:236: x == 0 succeeded for: 0 == 0
|
||||||
|
[Finished: './succeeding/atomic if' All tests passed (1 assertion in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/matchers]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:246: testStringForMatching() Contains( "string" ) succeeded for:
|
||||||
|
"this string contains 'abc' as a substring" contains: "string"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:247: testStringForMatching() Contains( "abc" ) succeeded for:
|
||||||
|
"this string contains 'abc' as a substring" contains: "abc"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:249: testStringForMatching() StartsWith( "this" ) succeeded for:
|
||||||
|
"this string contains 'abc' as a substring" starts with: "this"
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:250: testStringForMatching() EndsWith( "substring" ) succeeded for:
|
||||||
|
"this string contains 'abc' as a substring" ends with: "substring"
|
||||||
|
[Finished: './succeeding/matchers' All tests passed (4 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/matchers/Equals]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/MiscTests.cpp:285: testStringForMatching() Equals( "this string contains 'abc' as a substring" ) succeeded for:
|
||||||
|
"this string contains 'abc' as a substring" equals: "this string contains 'abc' as a substring"
|
||||||
|
[Finished: './succeeding/matchers/Equals' All tests passed (1 assertion in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/Tricky/std::pair]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:37: (std::pair<int, int>( 1, 2 )) == aNicePair succeeded for:
|
||||||
|
|
||||||
|
std::pair( 1, 2 )
|
||||||
|
==
|
||||||
|
std::pair( 1, 2 )
|
||||||
|
[Finished: './succeeding/Tricky/std::pair' All tests passed (1 assertion in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/side-effects]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:119: i++ == 7 succeeded for: 7 == 7
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:120: i++ == 8 succeeded for: 8 == 8
|
||||||
|
[Finished: './succeeding/side-effects' All tests passed (2 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/koenig]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:186: 0xc0000000 == o succeeded for: 0xc0000000 == {?}
|
||||||
|
[Finished: './succeeding/koenig' All tests passed (1 assertion in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/non-const==]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:212: t == 1u succeeded for: {?} == 1
|
||||||
|
[Finished: './succeeding/non-const==' All tests passed (1 assertion in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/enum/bits]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:224: 0xc0000000 == bit30and31 succeeded for: 0xc0000000 == 3221225472
|
||||||
|
[Finished: './succeeding/enum/bits' All tests passed (1 assertion in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/boolean member]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:239: obj.prop != __null succeeded for: 0x7fff556be8e0 != 0
|
||||||
|
[Finished: './succeeding/boolean member' All tests passed (1 assertion in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/unimplemented static bool]
|
||||||
|
[Started section: 'compare to true']
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:259: is_true<true>::value == true succeeded for: true == true
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:260: true == is_true<true>::value succeeded for: true == true
|
||||||
|
[End of section: 'compare to true' All 2 assertions passed]
|
||||||
|
|
||||||
|
[Started section: 'compare to false']
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:264: is_true<false>::value == false succeeded for: false == false
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:265: false == is_true<false>::value succeeded for: false == false
|
||||||
|
[End of section: 'compare to false' All 2 assertions passed]
|
||||||
|
|
||||||
|
[Started section: 'negation']
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:270: !is_true<false>::value succeeded for: true
|
||||||
|
[End of section: 'negation' 1 assertion passed]
|
||||||
|
|
||||||
|
[Started section: 'double negation']
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:275: !!is_true<true>::value succeeded for: true
|
||||||
|
[End of section: 'double negation' 1 assertion passed]
|
||||||
|
|
||||||
|
[Started section: 'direct']
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:280: is_true<true>::value succeeded for: true
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:281: !is_true<false>::value succeeded for: !false
|
||||||
|
[End of section: 'direct' All 2 assertions passed]
|
||||||
|
|
||||||
|
[Finished: './succeeding/unimplemented static bool' All tests passed (8 assertions in 1 test case)]
|
||||||
|
|
||||||
|
[Running: ./succeeding/SafeBool]
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:313: True succeeded for: true
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:314: !False succeeded for: true
|
||||||
|
/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:315: !False succeeded for: !false
|
||||||
|
[Finished: './succeeding/SafeBool' All tests passed (3 assertions in 1 test case)]
|
||||||
|
[End of group: './succeeding*'. All tests passed (288 assertions in 41 test cases)]
|
||||||
|
|
||||||
|
|
||||||
|
[Testing completed. All tests passed (288 assertions in 41 test cases)]
|
||||||
|
|
@ -37,7 +37,7 @@ TEST_CASE( "selftest/main", "Runs all Catch self tests and checks their results"
|
|||||||
SECTION( "selftest/test counts/succeeding tests",
|
SECTION( "selftest/test counts/succeeding tests",
|
||||||
"Number of 'succeeding' tests is fixed" ) {
|
"Number of 'succeeding' tests is fixed" ) {
|
||||||
Totals totals = runner.runMatching( "./succeeding/*" );
|
Totals totals = runner.runMatching( "./succeeding/*" );
|
||||||
CHECK( totals.assertions.passed == 285 );
|
CHECK( totals.assertions.passed == 288 );
|
||||||
CHECK( totals.assertions.failed == 0 );
|
CHECK( totals.assertions.failed == 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -293,3 +293,24 @@ TEST_CASE( "./sameName", "Tests with the same name are not allowed" )
|
|||||||
|
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
struct Boolable
|
||||||
|
{
|
||||||
|
explicit Boolable( bool value ) : m_value( value ) {}
|
||||||
|
|
||||||
|
operator Catch::SafeBool::type() const {
|
||||||
|
return Catch::SafeBool::makeSafe( m_value );
|
||||||
|
}
|
||||||
|
|
||||||
|
bool m_value;
|
||||||
|
};
|
||||||
|
|
||||||
|
TEST_CASE( "./succeeding/SafeBool", "Objects that evaluated in boolean contexts can be checked")
|
||||||
|
{
|
||||||
|
Boolable True( true );
|
||||||
|
Boolable False( false );
|
||||||
|
|
||||||
|
CHECK( True );
|
||||||
|
CHECK( !False );
|
||||||
|
CHECK_FALSE( False );
|
||||||
|
}
|
||||||
|
@ -31,11 +31,11 @@ namespace Catch{
|
|||||||
return totals;
|
return totals;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MockReporter::Result( const ResultInfo& resultInfo ) {
|
void MockReporter::Result( const AssertionResult& assertionResult ) {
|
||||||
if( resultInfo.getResultType() == ResultWas::Ok )
|
if( assertionResult.getResultType() == ResultWas::Ok )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
switch( resultInfo.getResultType() ) {
|
switch( assertionResult.getResultType() ) {
|
||||||
case ResultWas::Info:
|
case ResultWas::Info:
|
||||||
m_log << "Info";
|
m_log << "Info";
|
||||||
break;
|
break;
|
||||||
@ -70,14 +70,14 @@ namespace Catch{
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( resultInfo.hasExpression() )
|
if( assertionResult.hasExpression() )
|
||||||
m_log << resultInfo.getExpression();
|
m_log << assertionResult.getExpression();
|
||||||
|
|
||||||
if( resultInfo.hasMessage() )
|
if( assertionResult.hasMessage() )
|
||||||
m_log << "'" << resultInfo.getMessage() << "'";
|
m_log << "'" << assertionResult.getMessage() << "'";
|
||||||
|
|
||||||
if( resultInfo.hasExpandedExpression() )
|
if( assertionResult.hasExpandedExpression() )
|
||||||
m_log << resultInfo.getExpandedExpression();
|
m_log << assertionResult.getExpandedExpression();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MockReporter::openLabel( const std::string& label, const std::string& arg ) {
|
void MockReporter::openLabel( const std::string& label, const std::string& arg ) {
|
||||||
|
@ -95,7 +95,7 @@ namespace Catch {
|
|||||||
closeLabel( recordTestCases, testInfo.getName() );
|
closeLabel( recordTestCases, testInfo.getName() );
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void Result( const ResultInfo& resultInfo );
|
virtual void Result( const AssertionResult& assertionResult );
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -105,7 +105,7 @@
|
|||||||
4A6D0C5A149B3E3D00DB3EAA /* catch_reporter_registrars.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = catch_reporter_registrars.hpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
4A6D0C5A149B3E3D00DB3EAA /* catch_reporter_registrars.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = catch_reporter_registrars.hpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
||||||
4A6D0C5B149B3E3D00DB3EAA /* catch_reporter_registry.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_reporter_registry.hpp; sourceTree = "<group>"; };
|
4A6D0C5B149B3E3D00DB3EAA /* catch_reporter_registry.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_reporter_registry.hpp; sourceTree = "<group>"; };
|
||||||
4A6D0C5C149B3E3D00DB3EAA /* catch_result_type.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = catch_result_type.h; sourceTree = "<group>"; };
|
4A6D0C5C149B3E3D00DB3EAA /* catch_result_type.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = catch_result_type.h; sourceTree = "<group>"; };
|
||||||
4A6D0C5D149B3E3D00DB3EAA /* catch_resultinfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = catch_resultinfo.h; sourceTree = "<group>"; };
|
4A6D0C5D149B3E3D00DB3EAA /* catch_assertionresult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = catch_assertionresult.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
||||||
4A6D0C5E149B3E3D00DB3EAA /* catch_runner_impl.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = catch_runner_impl.hpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
4A6D0C5E149B3E3D00DB3EAA /* catch_runner_impl.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = catch_runner_impl.hpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
||||||
4A6D0C5F149B3E3D00DB3EAA /* catch_section.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_section.hpp; sourceTree = "<group>"; };
|
4A6D0C5F149B3E3D00DB3EAA /* catch_section.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_section.hpp; sourceTree = "<group>"; };
|
||||||
4A6D0C60149B3E3D00DB3EAA /* catch_stream.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_stream.hpp; sourceTree = "<group>"; };
|
4A6D0C60149B3E3D00DB3EAA /* catch_stream.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_stream.hpp; sourceTree = "<group>"; };
|
||||||
@ -120,10 +120,10 @@
|
|||||||
4A8E4DCC160A344100194CBD /* catch_tags.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_tags.hpp; sourceTree = "<group>"; };
|
4A8E4DCC160A344100194CBD /* catch_tags.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_tags.hpp; sourceTree = "<group>"; };
|
||||||
4A8E4DD0160A352200194CBD /* catch_tags.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_tags.cpp; path = ../../../SelfTest/SurrogateCpps/catch_tags.cpp; sourceTree = "<group>"; };
|
4A8E4DD0160A352200194CBD /* catch_tags.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_tags.cpp; path = ../../../SelfTest/SurrogateCpps/catch_tags.cpp; sourceTree = "<group>"; };
|
||||||
4A90B59B15D0F61A00EF71BC /* catch_interfaces_generators.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = catch_interfaces_generators.h; sourceTree = "<group>"; };
|
4A90B59B15D0F61A00EF71BC /* catch_interfaces_generators.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = catch_interfaces_generators.h; sourceTree = "<group>"; };
|
||||||
4A90B59D15D24FE900EF71BC /* catch_resultinfo.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_resultinfo.hpp; sourceTree = "<group>"; };
|
4A90B59D15D24FE900EF71BC /* catch_assertionresult.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = catch_assertionresult.hpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
||||||
4A90B59E15D2521E00EF71BC /* catch_resultinfo_builder.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = catch_resultinfo_builder.hpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
4A90B59E15D2521E00EF71BC /* catch_expressionresult_builder.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = catch_expressionresult_builder.hpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
||||||
4A9D84B11558FC0400FBB209 /* catch_tostring.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_tostring.hpp; sourceTree = "<group>"; };
|
4A9D84B11558FC0400FBB209 /* catch_tostring.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_tostring.hpp; sourceTree = "<group>"; };
|
||||||
4A9D84B315599AC900FBB209 /* catch_resultinfo_builder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = catch_resultinfo_builder.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
4A9D84B315599AC900FBB209 /* catch_expressionresult_builder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = catch_expressionresult_builder.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
||||||
4AA7FF4115F3E89D009AD7F9 /* BDDTests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BDDTests.cpp; sourceTree = "<group>"; };
|
4AA7FF4115F3E89D009AD7F9 /* BDDTests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BDDTests.cpp; sourceTree = "<group>"; };
|
||||||
4AB1C73514F97BDA00F31DF7 /* catch_console_colour_impl.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_console_colour_impl.hpp; sourceTree = "<group>"; };
|
4AB1C73514F97BDA00F31DF7 /* catch_console_colour_impl.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_console_colour_impl.hpp; sourceTree = "<group>"; };
|
||||||
4AB1C73714F97C1300F31DF7 /* catch_console_colour.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_console_colour.hpp; sourceTree = "<group>"; };
|
4AB1C73714F97C1300F31DF7 /* catch_console_colour.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_console_colour.hpp; sourceTree = "<group>"; };
|
||||||
@ -132,10 +132,10 @@
|
|||||||
4AB3D9A1161621B500C9A0F8 /* catch_interfaces_generators.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_interfaces_generators.cpp; path = ../../../SelfTest/SurrogateCpps/catch_interfaces_generators.cpp; sourceTree = "<group>"; };
|
4AB3D9A1161621B500C9A0F8 /* catch_interfaces_generators.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_interfaces_generators.cpp; path = ../../../SelfTest/SurrogateCpps/catch_interfaces_generators.cpp; sourceTree = "<group>"; };
|
||||||
4AB77CB51551AEA200857BF0 /* catch_ptr.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_ptr.hpp; sourceTree = "<group>"; };
|
4AB77CB51551AEA200857BF0 /* catch_ptr.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_ptr.hpp; sourceTree = "<group>"; };
|
||||||
4AB77CB71553B72B00857BF0 /* catch_section_info.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_section_info.hpp; sourceTree = "<group>"; };
|
4AB77CB71553B72B00857BF0 /* catch_section_info.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_section_info.hpp; sourceTree = "<group>"; };
|
||||||
4AB77CB81553BB3800857BF0 /* catch_running_test.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch_running_test.hpp; sourceTree = "<group>"; };
|
4AB77CB81553BB3800857BF0 /* catch_running_test.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = catch_running_test.hpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
||||||
4ABEA80415C90D2B009F0424 /* catch_objc_arc.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_objc_arc.hpp; sourceTree = "<group>"; };
|
4ABEA80415C90D2B009F0424 /* catch_objc_arc.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_objc_arc.hpp; sourceTree = "<group>"; };
|
||||||
4AC91CCE155CF02800DC5117 /* catch_expression.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = catch_expression.hpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
4AC91CCE155CF02800DC5117 /* catch_expression_lhs.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = catch_expression_lhs.hpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
||||||
4AC91CD0155D8DA600DC5117 /* catch_expression_builder.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = catch_expression_builder.hpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
4AC91CD0155D8DA600DC5117 /* catch_expression_decomposer.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = catch_expression_decomposer.hpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
|
||||||
4AE1840A14EE4F230066340D /* catch_self_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_self_test.cpp; path = ../../../SelfTest/catch_self_test.cpp; sourceTree = "<group>"; };
|
4AE1840A14EE4F230066340D /* catch_self_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_self_test.cpp; path = ../../../SelfTest/catch_self_test.cpp; sourceTree = "<group>"; };
|
||||||
4AEE031F16142F910071E950 /* catch_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_common.cpp; path = ../../../SelfTest/SurrogateCpps/catch_common.cpp; sourceTree = "<group>"; };
|
4AEE031F16142F910071E950 /* catch_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_common.cpp; path = ../../../SelfTest/SurrogateCpps/catch_common.cpp; sourceTree = "<group>"; };
|
||||||
4AEE032216142FC70071E950 /* catch_debugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_debugger.cpp; path = ../../../SelfTest/SurrogateCpps/catch_debugger.cpp; sourceTree = "<group>"; };
|
4AEE032216142FC70071E950 /* catch_debugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = catch_debugger.cpp; path = ../../../SelfTest/SurrogateCpps/catch_debugger.cpp; sourceTree = "<group>"; };
|
||||||
@ -275,8 +275,8 @@
|
|||||||
4A6D0C62149B3E3D00DB3EAA /* catch_test_case_registry_impl.hpp */,
|
4A6D0C62149B3E3D00DB3EAA /* catch_test_case_registry_impl.hpp */,
|
||||||
4AB1C73514F97BDA00F31DF7 /* catch_console_colour_impl.hpp */,
|
4AB1C73514F97BDA00F31DF7 /* catch_console_colour_impl.hpp */,
|
||||||
4A4B0F9B15CEF8C400AE2392 /* catch_notimplemented_exception.hpp */,
|
4A4B0F9B15CEF8C400AE2392 /* catch_notimplemented_exception.hpp */,
|
||||||
4A90B59D15D24FE900EF71BC /* catch_resultinfo.hpp */,
|
4A90B59D15D24FE900EF71BC /* catch_assertionresult.hpp */,
|
||||||
4A90B59E15D2521E00EF71BC /* catch_resultinfo_builder.hpp */,
|
4A90B59E15D2521E00EF71BC /* catch_expressionresult_builder.hpp */,
|
||||||
4A084F1C15DACEEA0027E631 /* catch_test_case_info.hpp */,
|
4A084F1C15DACEEA0027E631 /* catch_test_case_info.hpp */,
|
||||||
);
|
);
|
||||||
name = impl;
|
name = impl;
|
||||||
@ -288,15 +288,15 @@
|
|||||||
4A6D0C4D149B3E3D00DB3EAA /* catch_evaluate.hpp */,
|
4A6D0C4D149B3E3D00DB3EAA /* catch_evaluate.hpp */,
|
||||||
4A6D0C4F149B3E3D00DB3EAA /* catch_generators.hpp */,
|
4A6D0C4F149B3E3D00DB3EAA /* catch_generators.hpp */,
|
||||||
4A6D0C5C149B3E3D00DB3EAA /* catch_result_type.h */,
|
4A6D0C5C149B3E3D00DB3EAA /* catch_result_type.h */,
|
||||||
4A6D0C5D149B3E3D00DB3EAA /* catch_resultinfo.h */,
|
4A6D0C5D149B3E3D00DB3EAA /* catch_assertionresult.h */,
|
||||||
4A9D84B315599AC900FBB209 /* catch_resultinfo_builder.h */,
|
4A9D84B315599AC900FBB209 /* catch_expressionresult_builder.h */,
|
||||||
4A6D0C5F149B3E3D00DB3EAA /* catch_section.hpp */,
|
4A6D0C5F149B3E3D00DB3EAA /* catch_section.hpp */,
|
||||||
4A3D7DD01503869D005F9203 /* catch_matchers.hpp */,
|
4A3D7DD01503869D005F9203 /* catch_matchers.hpp */,
|
||||||
4A9D84B11558FC0400FBB209 /* catch_tostring.hpp */,
|
4A9D84B11558FC0400FBB209 /* catch_tostring.hpp */,
|
||||||
4A6D0C46149B3E3D00DB3EAA /* catch_approx.hpp */,
|
4A6D0C46149B3E3D00DB3EAA /* catch_approx.hpp */,
|
||||||
4A6D0C47149B3E3D00DB3EAA /* catch_capture.hpp */,
|
4A6D0C47149B3E3D00DB3EAA /* catch_capture.hpp */,
|
||||||
4AC91CCE155CF02800DC5117 /* catch_expression.hpp */,
|
4AC91CCE155CF02800DC5117 /* catch_expression_lhs.hpp */,
|
||||||
4AC91CD0155D8DA600DC5117 /* catch_expression_builder.hpp */,
|
4AC91CD0155D8DA600DC5117 /* catch_expression_decomposer.hpp */,
|
||||||
4A4B0F9A15CEF84800AE2392 /* catch_notimplemented_exception.h */,
|
4A4B0F9A15CEF84800AE2392 /* catch_notimplemented_exception.h */,
|
||||||
);
|
);
|
||||||
name = Assertions;
|
name = Assertions;
|
||||||
@ -551,11 +551,15 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES;
|
CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = NO;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = NO;
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = CATCH_CONFIG_USE_ANSI_COLOUR_CODES;
|
||||||
|
"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = (
|
||||||
|
CATCH_CONFIG_USE_ANSI_COLOUR_CODES,
|
||||||
|
"DEBUG=1",
|
||||||
|
);
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
WARNING_CFLAGS = (
|
WARNING_CFLAGS = (
|
||||||
"-Weverything",
|
"-Weverything",
|
||||||
"-Wno-disabled-macro-expansion",
|
"-Wno-disabled-macro-expansion",
|
||||||
"-Wno-global-constructors",
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
@ -565,11 +569,11 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES;
|
CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = NO;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = NO;
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = CATCH_CONFIG_USE_ANSI_COLOUR_CODES;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
WARNING_CFLAGS = (
|
WARNING_CFLAGS = (
|
||||||
"-Weverything",
|
"-Weverything",
|
||||||
"-Wno-disabled-macro-expansion",
|
"-Wno-disabled-macro-expansion",
|
||||||
"-Wno-global-constructors",
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user