| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | #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 |
| |
|
| |
|