| |
| |
| |
| |
| |
| |
| |
| #ifndef TWOBLUECUBES_CATCH_COMMON_H_INCLUDED |
| #define TWOBLUECUBES_CATCH_COMMON_H_INCLUDED |
|
|
| #include "catch_compiler_capabilities.h" |
|
|
| #define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line |
| #define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) |
| #ifdef CATCH_CONFIG_COUNTER |
| # define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ ) |
| #else |
| # define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ ) |
| #endif |
|
|
| #include <iosfwd> |
| #include <string> |
| #include <cstdint> |
|
|
| |
| struct Catch_global_namespace_dummy {}; |
| std::ostream& operator<<(std::ostream&, Catch_global_namespace_dummy); |
|
|
| namespace Catch { |
|
|
| struct CaseSensitive { enum Choice { |
| Yes, |
| No |
| }; }; |
|
|
| class NonCopyable { |
| NonCopyable( NonCopyable const& ) = delete; |
| NonCopyable( NonCopyable && ) = delete; |
| NonCopyable& operator = ( NonCopyable const& ) = delete; |
| NonCopyable& operator = ( NonCopyable && ) = delete; |
|
|
| protected: |
| NonCopyable(); |
| virtual ~NonCopyable(); |
| }; |
|
|
| struct SourceLineInfo { |
|
|
| SourceLineInfo() = delete; |
| SourceLineInfo( char const* _file, std::size_t _line ) noexcept |
| : file( _file ), |
| line( _line ) |
| {} |
|
|
| SourceLineInfo( SourceLineInfo const& other ) = default; |
| SourceLineInfo& operator = ( SourceLineInfo const& ) = default; |
| SourceLineInfo( SourceLineInfo&& ) noexcept = default; |
| SourceLineInfo& operator = ( SourceLineInfo&& ) noexcept = default; |
|
|
| bool empty() const noexcept { return file[0] == '\0'; } |
| bool operator == ( SourceLineInfo const& other ) const noexcept; |
| bool operator < ( SourceLineInfo const& other ) const noexcept; |
|
|
| char const* file; |
| std::size_t line; |
| }; |
|
|
| std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ); |
|
|
| |
| |
| |
| using ::operator<<; |
|
|
| |
| |
| |
| |
| struct StreamEndStop { |
| std::string operator+() const; |
| }; |
| template<typename T> |
| T const& operator + ( T const& value, StreamEndStop ) { |
| return value; |
| } |
| } |
|
|
| #define CATCH_INTERNAL_LINEINFO \ |
| ::Catch::SourceLineInfo( __FILE__, static_cast<std::size_t>( __LINE__ ) ) |
|
|
| #endif |
|
|
|
|