diff --git a/include/internal/catch_evaluate.hpp b/include/internal/catch_evaluate.hpp index 7e9d57d0..5971022a 100644 --- a/include/internal/catch_evaluate.hpp +++ b/include/internal/catch_evaluate.hpp @@ -8,6 +8,11 @@ #ifndef TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED #define TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable:4389) // '==' : signed/unsigned mismatch +#endif + namespace Catch { namespace Internal { @@ -28,6 +33,7 @@ namespace Internal { template<> struct OperatorTraits { static const char* getName(){ return "<="; } }; template<> struct OperatorTraits{ static const char* getName(){ return ">="; } }; + // So the compare overloads can be operator agnostic we convey the operator as a template // enum, which is used to specialise an Evaluator for doing the comparison. template @@ -143,8 +149,12 @@ namespace Internal { template bool compare( T* lhs, int rhs ) { return Evaluator::evaluate( lhs, reinterpret_cast( rhs ) ); } - + } // end of namespace Internal } // end of namespace Catch +#ifdef _MSC_VER +#pragma warning(pop) +#endif + #endif // TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED diff --git a/include/internal/catch_running_test.hpp b/include/internal/catch_running_test.hpp index 88ac27d8..8787f8e8 100644 --- a/include/internal/catch_running_test.hpp +++ b/include/internal/catch_running_test.hpp @@ -102,6 +102,9 @@ namespace Catch { } private: + RunningTest( RunningTest const& ); + void operator=( RunningTest const& ); + const TestCase& m_info; RunStatus m_runStatus; RunningSection m_rootSection; diff --git a/include/internal/catch_test_spec.h b/include/internal/catch_test_spec.h index 4250637b..66839705 100644 --- a/include/internal/catch_test_spec.h +++ b/include/internal/catch_test_spec.h @@ -30,7 +30,7 @@ namespace Catch { WildcardAtEnd = 2, WildcardAtBothEnds = WildcardAtStart | WildcardAtEnd }; - + public: TestCaseFilter( const std::string& testSpec, IfFilterMatches::DoWhat matchBehaviour = IfFilterMatches::AutoDetectBehaviour ) : m_stringToMatch( toLower( testSpec ) ), diff --git a/include/internal/catch_version.h b/include/internal/catch_version.h index 75b6c8f0..fed5d6b6 100644 --- a/include/internal/catch_version.h +++ b/include/internal/catch_version.h @@ -26,6 +26,9 @@ namespace Catch { const unsigned int minorVersion; const unsigned int buildNumber; const std::string branchName; + + private: + void operator=( Version const& ); }; extern Version libraryVersion; diff --git a/include/reporters/catch_reporter_console.hpp b/include/reporters/catch_reporter_console.hpp index ea3ea47a..042dbacc 100644 --- a/include/reporters/catch_reporter_console.hpp +++ b/include/reporters/catch_reporter_console.hpp @@ -97,6 +97,7 @@ namespace Catch { private: class AssertionPrinter { + void operator= ( AssertionPrinter const& ); public: AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats ) : stream( _stream ), diff --git a/projects/SelfTest/ConditionTests.cpp b/projects/SelfTest/ConditionTests.cpp index aebd123e..b298de1d 100644 --- a/projects/SelfTest/ConditionTests.cpp +++ b/projects/SelfTest/ConditionTests.cpp @@ -210,6 +210,9 @@ TEST_CASE( "./succeeding/conditions/int literals", #pragma GCC diagnostic ignored "-Wsign-compare" #pragma GCC diagnostic ignored "-Wsign-conversion" #endif +#ifdef _MSC_VER +#pragma warning(disable:4389) // '==' : signed/unsigned mismatch +#endif TEST_CASE( "./succeeding/conditions//long_to_unsigned_x", "comparisons between int variables" ) diff --git a/projects/SelfTest/ExceptionTests.cpp b/projects/SelfTest/ExceptionTests.cpp index 963af1e5..444328c3 100644 --- a/projects/SelfTest/ExceptionTests.cpp +++ b/projects/SelfTest/ExceptionTests.cpp @@ -107,6 +107,9 @@ TEST_CASE_NORETURN( "./failing/exceptions/custom", "Unexpected custom exceptions { throw CustomException( "custom exception" ); } +#ifdef _MSC_VER +#pragma warning(disable:4702) // unreachable code +#endif TEST_CASE( "./failing/exceptions/custom/nothrow", "Custom exceptions can be translated when testing for nothrow" ) { diff --git a/projects/SelfTest/MessageTests.cpp b/projects/SelfTest/MessageTests.cpp index c36b1060..c5647ff0 100644 --- a/projects/SelfTest/MessageTests.cpp +++ b/projects/SelfTest/MessageTests.cpp @@ -47,7 +47,7 @@ TEST_CASE( "./mixed/message/info/2", "INFO gets logged on failure" ) TEST_CASE( "./failing/message/fail", "FAIL aborts the test" ) { - if( true ) + if( Catch::isTrue( true ) ) FAIL( "This is a " << "failure" ); // This should output the message and abort }