mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-04 05:59:32 +01:00 
			
		
		
		
	dev build 9
This commit is contained in:
		@@ -1,6 +1,6 @@
 | 
				
			|||||||

 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*v1.2.1-develop.8*
 | 
					*v1.2.1-develop.9*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Build status (on Travis CI) [](https://travis-ci.org/philsquared/Catch)
 | 
					Build status (on Travis CI) [](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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user