Merge branch 'master' of github.com:philsquared/Catch

This commit is contained in:
Phil Nash 2011-09-29 18:42:32 +01:00
commit 4094e7fe3d
14 changed files with 95 additions and 55 deletions

1
.gitignore vendored
View File

@ -8,3 +8,4 @@ Release
*.user
*.xcuserstate
/Test/Test.xcodeproj/xcuserdata/
.DS_Store

View File

@ -28,6 +28,7 @@
#include "internal/catch_generators.hpp"
#include "internal/catch_interfaces_exception.h"
#include "internal/catch_approx.hpp"
#include "internal/catch_test_case_info.hpp"
#ifdef __OBJC__
#include "internal/catch_objc.hpp"

View File

@ -527,7 +527,8 @@ public:
const char* expr = "",
bool isNot = false
)
: m_result( expr, isNot, filename, line, macroName )
: m_result( expr, isNot, filename, line, macroName ),
m_messageStream()
{}
///////////////////////////////////////////////////////////////////////////
@ -627,7 +628,7 @@ class ScopedInfo
public:
///////////////////////////////////////////////////////////////////////////
ScopedInfo
()
() : m_oss()
{
Hub::getResultCapture().pushScopedInfo( this );
}

View File

@ -194,6 +194,7 @@ namespace Catch
return setErrorMode( m_command + " does not accept arguments" );
m_config.setShowHelp( true );
break;
case modeError:
default:
break;
}

View File

@ -38,6 +38,7 @@ namespace Catch
void operator = ( const NonCopyable& );
protected:
NonCopyable(){}
virtual ~NonCopyable() {}
};
typedef char NoType;

View File

@ -24,7 +24,14 @@ namespace Catch
///////////////////////////////////////////////////////////////////////////
ResultInfo
()
: m_line( 0 ),
: m_macroName(),
m_filename(),
m_line( 0 ),
m_expr(),
m_lhs(),
m_rhs(),
m_op(),
m_message(),
m_result( ResultWas::Unknown ),
m_isNot( false )
{}
@ -44,6 +51,8 @@ namespace Catch
m_filename( filename ),
m_line( line ),
m_expr( expr ),
m_lhs(),
m_rhs(),
m_op( isNotExpression( expr ) ? "!" : "" ),
m_message( message ),
m_result( result ),
@ -53,6 +62,11 @@ namespace Catch
m_expr = "!" + m_expr;
}
///////////////////////////////////////////////////////////////////////////
virtual ~ResultInfo
()
{
}
///////////////////////////////////////////////////////////////////////////
bool ok
()

View File

@ -31,6 +31,8 @@ namespace Catch
std::size_t line
)
: m_name( name ),
m_successes(0),
m_failures(0),
m_sectionIncluded( Hub::getResultCapture().sectionStarted( name, description, filename, line, m_successes, m_failures ) )
{
}

View File

@ -42,7 +42,11 @@ namespace Catch
///////////////////////////////////////////////////////////////////////
TestCaseInfo
()
: m_test( NULL )
: m_test( NULL ),
m_name(),
m_description(),
m_filename(),
m_line( 0 )
{
}

View File

@ -211,6 +211,11 @@ namespace Catch
case ResultWas::ExplicitFailure:
m_config.stream() << "failed with message: '" << resultInfo.getMessage() << "'";
break;
case ResultWas::Unknown: // These cases are here to prevent compiler warnings
case ResultWas::Ok:
case ResultWas::FailureBit:
case ResultWas::ExpressionFailed:
case ResultWas::Exception:
default:
if( !resultInfo.hasExpression() )
{

View File

@ -156,6 +156,10 @@ namespace Catch
case ResultWas::Ok:
stats.m_element = "success";
break;
case ResultWas::Unknown:
case ResultWas::FailureBit:
case ResultWas::Exception:
case ResultWas::DidntThrowException:
default:
stats.m_element = "unknown";
break;

View File

@ -153,6 +153,12 @@ namespace Catch
.writeText( resultInfo.getMessage() );
m_currentTestSuccess = false;
break;
case ResultWas::Unknown:
case ResultWas::Ok:
case ResultWas::FailureBit:
case ResultWas::ExpressionFailed:
case ResultWas::Exception:
case ResultWas::DidntThrowException:
default:
break;
}

View File

@ -385,28 +385,12 @@
SDKROOT = macosx10.6;
USER_HEADER_SEARCH_PATHS = ../../include;
WARNING_CFLAGS = (
"-Wfloat-equal",
"-Wundef",
"-Wshadow",
"-Wpointer-arith",
"-Wcast-qual",
"-Wcast-align",
"-Wwrite-strings",
"-Wconversion",
"-Wsign-compare",
"-Wmissing-noreturn",
"-Wmissing-format-attribute",
"-Wpacked",
"-Winline",
"-Wdisabled-optimization",
"-Wctor-dtor-privacy",
"-Wnon-virtual-dtor",
"-Wreorder",
"-Wold-style-cast",
"-Woverloaded-virtual",
"-ffor-scope",
"-Wextra",
"-Wall",
"-Winit-self",
"-Wmissing-include-dirs",
"-Wswitch-enum",
"-Wunused",
"-Wredundant-decls",
"-Wsign-promo",
);
};
name = Debug;
@ -417,10 +401,19 @@
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
SDKROOT = macosx10.6;
USER_HEADER_SEARCH_PATHS = ../../include;
WARNING_CFLAGS = (
"-Winit-self",
"-Wmissing-include-dirs",
"-Wswitch-enum",
"-Wunused",
"-Wredundant-decls",
"-Wsign-promo",
);
};
name = Release;
};

View File

@ -144,7 +144,14 @@
isa = PBXProject;
buildConfigurationList = 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "OCTest" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 08FB7794FE84155DC02AAC07 /* OCTest */;
projectDirPath = "";
projectRoot = "";

View File

@ -1530,7 +1530,7 @@ public:
Expression
(
MutableResultInfo& result,
const T& lhs
T lhs
)
: m_result( result ),
m_lhs( lhs )
@ -1638,7 +1638,7 @@ public:
private:
MutableResultInfo& m_result;
const T& m_lhs;
T m_lhs;
};
template<typename LhsT>
@ -1727,12 +1727,12 @@ public:
///////////////////////////////////////////////////////////////////////////
template<typename T>
Expression<T> operator->*
Expression<const T&> operator->*
(
const T & operand
)
{
Expression<T> expr( m_result, operand );
Expression<const T&> expr( m_result, operand );
return expr;
}
@ -2553,30 +2553,6 @@ namespace Catch
} // end namespace Catch
#ifdef __OBJC__
// #included from: internal/catch_objc.hpp
/*
* catch_objc.hpp
* Catch
*
* Created by Phil on 14/11/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)
*
*/
#define TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED
#import <objc/runtime.h>
#include <string>
// NB. Any general catch headers included here must be included
// in catch.hpp first to make sure they are included by the single
// header for non obj-usage
// #included from: internal/catch_test_case_info.hpp
/*
@ -2804,6 +2780,30 @@ namespace Catch
}
#ifdef __OBJC__
// #included from: internal/catch_objc.hpp
/*
* catch_objc.hpp
* Catch
*
* Created by Phil on 14/11/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)
*
*/
#define TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED
#import <objc/runtime.h>
#include <string>
// NB. Any general catch headers included here must be included
// in catch.hpp first to make sure they are included by the single
// header for non obj-usage
///////////////////////////////////////////////////////////////////////////////
// This protocol is really only here for (self) documenting purposes, since
// all its methods are optional.