mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-22 13:26:10 +01:00
dev build 9
This commit is contained in:
parent
70975517b3
commit
2f6371f2ec
@ -1,6 +1,6 @@
|
|||||||
![catch logo](catch-logo-small.png)
|
![catch logo](catch-logo-small.png)
|
||||||
|
|
||||||
*v1.2.1-develop.8*
|
*v1.2.1-develop.9*
|
||||||
|
|
||||||
Build status (on Travis CI) [![Build Status](https://travis-ci.org/philsquared/Catch.png)](https://travis-ci.org/philsquared/Catch)
|
Build status (on Travis CI) [![Build Status](https://travis-ci.org/philsquared/Catch.png)](https://travis-ci.org/philsquared/Catch)
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ namespace Catch {
|
|||||||
return os;
|
return os;
|
||||||
}
|
}
|
||||||
|
|
||||||
Version libraryVersion( 1, 2, 1, "develop", 8 );
|
Version libraryVersion( 1, 2, 1, "develop", 9 );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Catch v1.2.1-develop.8
|
* Catch v1.2.1-develop.9
|
||||||
* Generated: 2015-07-15 23:02:54.523106
|
* Generated: 2015-07-23 23:06:03.575257
|
||||||
* ----------------------------------------------------------
|
* ----------------------------------------------------------
|
||||||
* This file has been merged from multiple headers. Please don't edit it directly
|
* This file has been merged from multiple headers. Please don't edit it directly
|
||||||
* Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
|
* Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||||
@ -84,6 +84,7 @@
|
|||||||
// CATCH_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods
|
// CATCH_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods
|
||||||
// CATCH_CONFIG_CPP11_IS_ENUM : std::is_enum is supported?
|
// CATCH_CONFIG_CPP11_IS_ENUM : std::is_enum is supported?
|
||||||
// CATCH_CONFIG_CPP11_TUPLE : std::tuple is supported
|
// CATCH_CONFIG_CPP11_TUPLE : std::tuple is supported
|
||||||
|
// CATCH_CONFIG_CPP11_LONG_LONG : is long long supported?
|
||||||
|
|
||||||
// CATCH_CONFIG_CPP11_OR_GREATER : Is C++11 supported?
|
// CATCH_CONFIG_CPP11_OR_GREATER : Is C++11 supported?
|
||||||
|
|
||||||
@ -193,6 +194,10 @@
|
|||||||
# define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
|
# define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# if !defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG)
|
||||||
|
# define CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG
|
||||||
|
# endif
|
||||||
|
|
||||||
#endif // __cplusplus >= 201103L
|
#endif // __cplusplus >= 201103L
|
||||||
|
|
||||||
// Now set the actual defines based on the above + anything the user has configured
|
// Now set the actual defines based on the above + anything the user has configured
|
||||||
@ -212,7 +217,10 @@
|
|||||||
# define CATCH_CONFIG_CPP11_TUPLE
|
# define CATCH_CONFIG_CPP11_TUPLE
|
||||||
#endif
|
#endif
|
||||||
#if defined(CATCH_INTERNAL_CONFIG_VARIADIC_MACROS) && !defined(CATCH_CONFIG_NO_VARIADIC_MACROS) && !defined(CATCH_CONFIG_VARIADIC_MACROS)
|
#if defined(CATCH_INTERNAL_CONFIG_VARIADIC_MACROS) && !defined(CATCH_CONFIG_NO_VARIADIC_MACROS) && !defined(CATCH_CONFIG_VARIADIC_MACROS)
|
||||||
#define CATCH_CONFIG_VARIADIC_MACROS
|
# define CATCH_CONFIG_VARIADIC_MACROS
|
||||||
|
#endif
|
||||||
|
#if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG)
|
||||||
|
# define CATCH_CONFIG_CPP11_LONG_LONG
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// noexcept support:
|
// noexcept support:
|
||||||
@ -1265,13 +1273,51 @@ namespace Internal {
|
|||||||
return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
|
return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CATCH_CONFIG_CPP11_LONG_LONG
|
||||||
|
// long long to unsigned X
|
||||||
|
template<Operator Op> bool compare( long long lhs, unsigned int rhs ) {
|
||||||
|
return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
|
||||||
|
}
|
||||||
|
template<Operator Op> bool compare( long long lhs, unsigned long rhs ) {
|
||||||
|
return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
|
||||||
|
}
|
||||||
|
template<Operator Op> bool compare( long long lhs, unsigned long long rhs ) {
|
||||||
|
return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
|
||||||
|
}
|
||||||
|
template<Operator Op> bool compare( long long lhs, unsigned char rhs ) {
|
||||||
|
return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
// unsigned long long to X
|
||||||
|
template<Operator Op> bool compare( unsigned long long lhs, int rhs ) {
|
||||||
|
return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
|
||||||
|
}
|
||||||
|
template<Operator Op> bool compare( unsigned long long lhs, long rhs ) {
|
||||||
|
return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
|
||||||
|
}
|
||||||
|
template<Operator Op> bool compare( unsigned long long lhs, long long rhs ) {
|
||||||
|
return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
|
||||||
|
}
|
||||||
|
template<Operator Op> bool compare( unsigned long long lhs, char rhs ) {
|
||||||
|
return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
// pointer to long long (when comparing against NULL)
|
||||||
|
template<Operator Op, typename T> bool compare( long long lhs, T* rhs ) {
|
||||||
|
return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
|
||||||
|
}
|
||||||
|
template<Operator Op, typename T> bool compare( T* lhs, long long rhs ) {
|
||||||
|
return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
|
||||||
|
}
|
||||||
|
#endif // CATCH_CONFIG_CPP11_LONG_LONG
|
||||||
|
|
||||||
#ifdef CATCH_CONFIG_CPP11_NULLPTR
|
#ifdef CATCH_CONFIG_CPP11_NULLPTR
|
||||||
// pointer to nullptr_t (when comparing against nullptr)
|
// pointer to nullptr_t (when comparing against nullptr)
|
||||||
template<Operator Op, typename T> bool compare( std::nullptr_t, T* rhs ) {
|
template<Operator Op, typename T> bool compare( std::nullptr_t, T* rhs ) {
|
||||||
return Evaluator<T*, T*, Op>::evaluate( CATCH_NULL, rhs );
|
return Evaluator<T*, T*, Op>::evaluate( nullptr, rhs );
|
||||||
}
|
}
|
||||||
template<Operator Op, typename T> bool compare( T* lhs, std::nullptr_t ) {
|
template<Operator Op, typename T> bool compare( T* lhs, std::nullptr_t ) {
|
||||||
return Evaluator<T*, T*, Op>::evaluate( lhs, CATCH_NULL );
|
return Evaluator<T*, T*, Op>::evaluate( lhs, nullptr );
|
||||||
}
|
}
|
||||||
#endif // CATCH_CONFIG_CPP11_NULLPTR
|
#endif // CATCH_CONFIG_CPP11_NULLPTR
|
||||||
|
|
||||||
@ -1369,6 +1415,11 @@ std::string toString( char value );
|
|||||||
std::string toString( signed char value );
|
std::string toString( signed char value );
|
||||||
std::string toString( unsigned char value );
|
std::string toString( unsigned char value );
|
||||||
|
|
||||||
|
#ifdef CATCH_CONFIG_CPP11_LONG_LONG
|
||||||
|
std::string toString( long long value );
|
||||||
|
std::string toString( unsigned long long value );
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CATCH_CONFIG_CPP11_NULLPTR
|
#ifdef CATCH_CONFIG_CPP11_NULLPTR
|
||||||
std::string toString( std::nullptr_t );
|
std::string toString( std::nullptr_t );
|
||||||
#endif
|
#endif
|
||||||
@ -1381,7 +1432,7 @@ std::string toString( std::nullptr_t );
|
|||||||
|
|
||||||
namespace Detail {
|
namespace Detail {
|
||||||
|
|
||||||
extern std::string unprintableString;
|
extern const std::string unprintableString;
|
||||||
|
|
||||||
struct BorgType {
|
struct BorgType {
|
||||||
template<typename T> BorgType( T const& );
|
template<typename T> BorgType( T const& );
|
||||||
@ -6891,7 +6942,7 @@ namespace Catch {
|
|||||||
return os;
|
return os;
|
||||||
}
|
}
|
||||||
|
|
||||||
Version libraryVersion( 1, 2, 1, "develop", 8 );
|
Version libraryVersion( 1, 2, 1, "develop", 9 );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7337,9 +7388,11 @@ namespace Catch {
|
|||||||
|
|
||||||
namespace Detail {
|
namespace Detail {
|
||||||
|
|
||||||
std::string unprintableString = "{?}";
|
const std::string unprintableString = "{?}";
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
const int hexThreshold = 255;
|
||||||
|
|
||||||
struct Endianness {
|
struct Endianness {
|
||||||
enum Arch { Big, Little };
|
enum Arch { Big, Little };
|
||||||
|
|
||||||
@ -7421,7 +7474,7 @@ std::string toString( wchar_t* const value )
|
|||||||
std::string toString( int value ) {
|
std::string toString( int value ) {
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
oss << value;
|
oss << value;
|
||||||
if( value >= 255 )
|
if( value > Detail::hexThreshold )
|
||||||
oss << " (0x" << std::hex << value << ")";
|
oss << " (0x" << std::hex << value << ")";
|
||||||
return oss.str();
|
return oss.str();
|
||||||
}
|
}
|
||||||
@ -7429,7 +7482,7 @@ std::string toString( int value ) {
|
|||||||
std::string toString( unsigned long value ) {
|
std::string toString( unsigned long value ) {
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
oss << value;
|
oss << value;
|
||||||
if( value >= 255 )
|
if( value > Detail::hexThreshold )
|
||||||
oss << " (0x" << std::hex << value << ")";
|
oss << " (0x" << std::hex << value << ")";
|
||||||
return oss.str();
|
return oss.str();
|
||||||
}
|
}
|
||||||
@ -7479,6 +7532,23 @@ std::string toString( unsigned char value ) {
|
|||||||
return toString( static_cast<char>( value ) );
|
return toString( static_cast<char>( value ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CATCH_CONFIG_CPP11_LONG_LONG
|
||||||
|
std::string toString( long long value ) {
|
||||||
|
std::ostringstream oss;
|
||||||
|
oss << value;
|
||||||
|
if( value > Detail::hexThreshold )
|
||||||
|
oss << " (0x" << std::hex << value << ")";
|
||||||
|
return oss.str();
|
||||||
|
}
|
||||||
|
std::string toString( unsigned long long value ) {
|
||||||
|
std::ostringstream oss;
|
||||||
|
oss << value;
|
||||||
|
if( value > Detail::hexThreshold )
|
||||||
|
oss << " (0x" << std::hex << value << ")";
|
||||||
|
return oss.str();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CATCH_CONFIG_CPP11_NULLPTR
|
#ifdef CATCH_CONFIG_CPP11_NULLPTR
|
||||||
std::string toString( std::nullptr_t ) {
|
std::string toString( std::nullptr_t ) {
|
||||||
return "nullptr";
|
return "nullptr";
|
||||||
@ -8022,9 +8092,65 @@ namespace Catch {
|
|||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <iomanip>
|
||||||
|
|
||||||
namespace Catch {
|
namespace Catch {
|
||||||
|
|
||||||
|
class XmlEncode {
|
||||||
|
public:
|
||||||
|
enum ForWhat { ForTextNodes, ForAttributes };
|
||||||
|
|
||||||
|
XmlEncode( std::string const& str, ForWhat forWhat = ForTextNodes )
|
||||||
|
: m_str( str ),
|
||||||
|
m_forWhat( forWhat )
|
||||||
|
{}
|
||||||
|
|
||||||
|
void encodeTo( std::ostream& os ) const {
|
||||||
|
|
||||||
|
// Apostrophe escaping not necessary if we always use " to write attributes
|
||||||
|
// (see: http://www.w3.org/TR/xml/#syntax)
|
||||||
|
|
||||||
|
for( std::size_t i = 0; i < m_str.size(); ++ i ) {
|
||||||
|
char c = m_str[i];
|
||||||
|
switch( c ) {
|
||||||
|
case '<': os << "<"; break;
|
||||||
|
case '&': os << "&"; break;
|
||||||
|
|
||||||
|
case '>':
|
||||||
|
// See: http://www.w3.org/TR/xml/#syntax
|
||||||
|
if( i > 2 && m_str[i-1] == ']' && m_str[i-2] == ']' )
|
||||||
|
os << ">";
|
||||||
|
else
|
||||||
|
os << c;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '\"':
|
||||||
|
if( m_forWhat == ForAttributes )
|
||||||
|
os << """;
|
||||||
|
else
|
||||||
|
os << c;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Escape control chars - based on contribution by @espenalb in PR #465
|
||||||
|
if ( ( c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' )
|
||||||
|
os << "&#x" << std::uppercase << std::hex << static_cast<int>( c );
|
||||||
|
else
|
||||||
|
os << c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
friend std::ostream& operator << ( std::ostream& os, XmlEncode const& xmlEncode ) {
|
||||||
|
xmlEncode.encodeTo( os );
|
||||||
|
return os;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::string m_str;
|
||||||
|
ForWhat m_forWhat;
|
||||||
|
};
|
||||||
|
|
||||||
class XmlWriter {
|
class XmlWriter {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -8107,11 +8233,8 @@ namespace Catch {
|
|||||||
}
|
}
|
||||||
|
|
||||||
XmlWriter& writeAttribute( std::string const& name, std::string const& attribute ) {
|
XmlWriter& writeAttribute( std::string const& name, std::string const& attribute ) {
|
||||||
if( !name.empty() && !attribute.empty() ) {
|
if( !name.empty() && !attribute.empty() )
|
||||||
stream() << " " << name << "=\"";
|
stream() << " " << name << "=\"" << XmlEncode( attribute, XmlEncode::ForAttributes ) << "\"";
|
||||||
writeEncodedText( attribute );
|
|
||||||
stream() << "\"";
|
|
||||||
}
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8122,9 +8245,9 @@ namespace Catch {
|
|||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
XmlWriter& writeAttribute( std::string const& name, T const& attribute ) {
|
XmlWriter& writeAttribute( std::string const& name, T const& attribute ) {
|
||||||
if( !name.empty() )
|
std::ostringstream oss;
|
||||||
stream() << " " << name << "=\"" << attribute << "\"";
|
oss << attribute;
|
||||||
return *this;
|
return writeAttribute( name, oss.str() );
|
||||||
}
|
}
|
||||||
|
|
||||||
XmlWriter& writeText( std::string const& text, bool indent = true ) {
|
XmlWriter& writeText( std::string const& text, bool indent = true ) {
|
||||||
@ -8133,7 +8256,7 @@ namespace Catch {
|
|||||||
ensureTagClosed();
|
ensureTagClosed();
|
||||||
if( tagWasOpen && indent )
|
if( tagWasOpen && indent )
|
||||||
stream() << m_indent;
|
stream() << m_indent;
|
||||||
writeEncodedText( text );
|
stream() << XmlEncode( text );
|
||||||
m_needsNewline = true;
|
m_needsNewline = true;
|
||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
@ -8178,30 +8301,6 @@ namespace Catch {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void writeEncodedText( std::string const& text ) {
|
|
||||||
static const char* charsToEncode = "<&\"";
|
|
||||||
std::string mtext = text;
|
|
||||||
std::string::size_type pos = mtext.find_first_of( charsToEncode );
|
|
||||||
while( pos != std::string::npos ) {
|
|
||||||
stream() << mtext.substr( 0, pos );
|
|
||||||
|
|
||||||
switch( mtext[pos] ) {
|
|
||||||
case '<':
|
|
||||||
stream() << "<";
|
|
||||||
break;
|
|
||||||
case '&':
|
|
||||||
stream() << "&";
|
|
||||||
break;
|
|
||||||
case '\"':
|
|
||||||
stream() << """;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
mtext = mtext.substr( pos+1 );
|
|
||||||
pos = mtext.find_first_of( charsToEncode );
|
|
||||||
}
|
|
||||||
stream() << mtext;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool m_tagIsOpen;
|
bool m_tagIsOpen;
|
||||||
bool m_needsNewline;
|
bool m_needsNewline;
|
||||||
std::vector<std::string> m_tags;
|
std::vector<std::string> m_tags;
|
||||||
@ -8210,6 +8309,21 @@ namespace Catch {
|
|||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
// #included from: catch_reenable_warnings.h
|
||||||
|
|
||||||
|
#define TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED
|
||||||
|
|
||||||
|
#ifdef __clang__
|
||||||
|
# ifdef __ICC // icpc defines the __clang__ macro
|
||||||
|
# pragma warning(pop)
|
||||||
|
# else
|
||||||
|
# pragma clang diagnostic pop
|
||||||
|
# endif
|
||||||
|
#elif defined __GNUC__
|
||||||
|
# pragma GCC diagnostic pop
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
namespace Catch {
|
namespace Catch {
|
||||||
class XmlReporter : public StreamingReporterBase {
|
class XmlReporter : public StreamingReporterBase {
|
||||||
public:
|
public:
|
||||||
@ -9488,11 +9602,11 @@ int main (int argc, char * const argv[]) {
|
|||||||
#define CATCH_SCENARIO( name, tags ) CATCH_TEST_CASE( "Scenario: " name, tags )
|
#define CATCH_SCENARIO( name, tags ) CATCH_TEST_CASE( "Scenario: " name, tags )
|
||||||
#define CATCH_SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
|
#define CATCH_SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
|
||||||
#endif
|
#endif
|
||||||
#define CATCH_GIVEN( desc ) CATCH_SECTION( "Given: " desc, "" )
|
#define CATCH_GIVEN( desc ) CATCH_SECTION( std::string( "Given: ") + desc, "" )
|
||||||
#define CATCH_WHEN( desc ) CATCH_SECTION( " When: " desc, "" )
|
#define CATCH_WHEN( desc ) CATCH_SECTION( std::string( " When: ") + desc, "" )
|
||||||
#define CATCH_AND_WHEN( desc ) CATCH_SECTION( " And: " desc, "" )
|
#define CATCH_AND_WHEN( desc ) CATCH_SECTION( std::string( " And: ") + desc, "" )
|
||||||
#define CATCH_THEN( desc ) CATCH_SECTION( " Then: " desc, "" )
|
#define CATCH_THEN( desc ) CATCH_SECTION( std::string( " Then: ") + desc, "" )
|
||||||
#define CATCH_AND_THEN( desc ) CATCH_SECTION( " And: " desc, "" )
|
#define CATCH_AND_THEN( desc ) CATCH_SECTION( std::string( " And: ") + desc, "" )
|
||||||
|
|
||||||
// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required
|
// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required
|
||||||
#else
|
#else
|
||||||
@ -9559,27 +9673,13 @@ int main (int argc, char * const argv[]) {
|
|||||||
#define SCENARIO( name, tags ) TEST_CASE( "Scenario: " name, tags )
|
#define SCENARIO( name, tags ) TEST_CASE( "Scenario: " name, tags )
|
||||||
#define SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
|
#define SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
|
||||||
#endif
|
#endif
|
||||||
#define GIVEN( desc ) SECTION( " Given: " desc, "" )
|
#define GIVEN( desc ) SECTION( std::string(" Given: ") + desc, "" )
|
||||||
#define WHEN( desc ) SECTION( " When: " desc, "" )
|
#define WHEN( desc ) SECTION( std::string(" When: ") + desc, "" )
|
||||||
#define AND_WHEN( desc ) SECTION( "And when: " desc, "" )
|
#define AND_WHEN( desc ) SECTION( std::string("And when: ") + desc, "" )
|
||||||
#define THEN( desc ) SECTION( " Then: " desc, "" )
|
#define THEN( desc ) SECTION( std::string(" Then: ") + desc, "" )
|
||||||
#define AND_THEN( desc ) SECTION( " And: " desc, "" )
|
#define AND_THEN( desc ) SECTION( std::string(" And: ") + desc, "" )
|
||||||
|
|
||||||
using Catch::Detail::Approx;
|
using Catch::Detail::Approx;
|
||||||
|
|
||||||
// #included from: internal/catch_reenable_warnings.h
|
|
||||||
|
|
||||||
#define TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED
|
|
||||||
|
|
||||||
#ifdef __clang__
|
|
||||||
# ifdef __ICC // icpc defines the __clang__ macro
|
|
||||||
# pragma warning(pop)
|
|
||||||
# else
|
|
||||||
# pragma clang diagnostic pop
|
|
||||||
# endif
|
|
||||||
#elif defined __GNUC__
|
|
||||||
# pragma GCC diagnostic pop
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
|
#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user