From 9c1f9a8f9a42cad6635e2811fa57dd0cf9de2ce9 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Thu, 3 Jul 2014 08:09:57 +0100 Subject: [PATCH] Added [!mayfail] tag to indicate test case that can fail without failing the suite. Overhauled the summary report (including the expected failure count) --- include/internal/catch_console_colour.hpp | 4 + include/internal/catch_list.hpp | 2 +- include/internal/catch_runner_impl.hpp | 6 + include/internal/catch_test_case_info.h | 20 +- include/internal/catch_test_case_info.hpp | 59 ++-- include/internal/catch_test_spec_parser.hpp | 6 +- include/internal/catch_totals.hpp | 10 +- include/reporters/catch_reporter_console.hpp | 110 ++++--- include/reporters/catch_reporter_xml.hpp | 9 +- .../Baselines/console.std.approved.txt | 4 +- .../Baselines/console.sw.approved.txt | 4 +- .../Baselines/console.swa4.approved.txt | 94 +++++- .../SelfTest/Baselines/junit.sw.approved.txt | 2 +- .../SelfTest/Baselines/xml.sw.approved.txt | 296 +++++++++--------- projects/SelfTest/ConditionTests.cpp | 2 +- 15 files changed, 390 insertions(+), 238 deletions(-) diff --git a/include/internal/catch_console_colour.hpp b/include/internal/catch_console_colour.hpp index b884df43..2505f7bc 100644 --- a/include/internal/catch_console_colour.hpp +++ b/include/internal/catch_console_colour.hpp @@ -37,8 +37,10 @@ namespace Catch { // By intention FileName = LightGrey, + Warning = Yellow, ResultError = BrightRed, ResultSuccess = BrightGreen, + ResultExpectedFailure = Warning, Error = BrightRed, Success = Green, @@ -62,6 +64,8 @@ namespace Catch { static Detail::IColourImpl* impl(); }; + inline std::ostream& operator << ( std::ostream& os, Colour const& ) { return os; } + } // end namespace Catch #endif // TWOBLUECUBES_CATCH_CONSOLE_COLOUR_HPP_INCLUDED diff --git a/include/internal/catch_list.hpp b/include/internal/catch_list.hpp index 6a75b7de..53cd37d6 100644 --- a/include/internal/catch_list.hpp +++ b/include/internal/catch_list.hpp @@ -41,7 +41,7 @@ namespace Catch { ++it ) { matchedTests++; TestCaseInfo const& testCaseInfo = it->getTestCaseInfo(); - Colour::Code colour = testCaseInfo.isHidden + Colour::Code colour = testCaseInfo.isHidden() ? Colour::SecondaryText : Colour::None; Colour colourGuard( colour ); diff --git a/include/internal/catch_runner_impl.hpp b/include/internal/catch_runner_impl.hpp index 06cca6fe..79288a08 100644 --- a/include/internal/catch_runner_impl.hpp +++ b/include/internal/catch_runner_impl.hpp @@ -262,6 +262,12 @@ namespace Catch { Counts assertions = m_totals.assertions - prevAssertions; bool missingAssertions = testForMissingAssertions( assertions ); + if( testCaseInfo.okToFail() ) { + std::swap( assertions.failedButOk, assertions.failed ); + m_totals.assertions.failed -= assertions.failedButOk; + m_totals.assertions.failedButOk += assertions.failedButOk; + } + SectionStats testCaseSectionStats( testCaseSection, assertions, duration, missingAssertions ); m_reporter->sectionEnded( testCaseSectionStats ); } diff --git a/include/internal/catch_test_case_info.h b/include/internal/catch_test_case_info.h index 284aceee..7520fd1c 100644 --- a/include/internal/catch_test_case_info.h +++ b/include/internal/catch_test_case_info.h @@ -24,15 +24,27 @@ namespace Catch { struct ITestCase; struct TestCaseInfo { + enum SpecialProperties{ + None = 0, + IsHidden = 1 << 1, + ShouldFail = 1 << 2, + MayFail = 1 << 3, + Throws = 1 << 4 + }; + TestCaseInfo( std::string const& _name, std::string const& _className, std::string const& _description, std::set const& _tags, - bool _isHidden, SourceLineInfo const& _lineInfo ); TestCaseInfo( TestCaseInfo const& other ); + bool isHidden() const; + bool throws() const; + bool okToFail() const; + bool expectedToFail() const; + std::string name; std::string className; std::string description; @@ -40,8 +52,7 @@ namespace Catch { std::set lcaseTags; std::string tagsAsString; SourceLineInfo lineInfo; - bool isHidden; - bool throws; + SpecialProperties properties; }; class TestCase : public TestCaseInfo { @@ -56,9 +67,6 @@ namespace Catch { TestCaseInfo const& getTestCaseInfo() const; - bool isHidden() const; - bool throws() const; - void swap( TestCase& other ); bool operator == ( TestCase const& other ) const; bool operator < ( TestCase const& other ) const; diff --git a/include/internal/catch_test_case_info.hpp b/include/internal/catch_test_case_info.hpp index 97af27a9..b277ef1e 100644 --- a/include/internal/catch_test_case_info.hpp +++ b/include/internal/catch_test_case_info.hpp @@ -15,14 +15,22 @@ namespace Catch { - inline bool isSpecialTag( std::string const& tag ) { - return tag == "." || - tag == "hide" || - tag == "!hide" || - tag == "!throws"; + inline TestCaseInfo::SpecialProperties parseSpecialTag( std::string const& tag ) { + if( tag == "." || + tag == "hide" || + tag == "!hide" ) + return TestCaseInfo::IsHidden; + else if( tag == "!throws" ) + return TestCaseInfo::Throws; + else if( tag == "!shouldfail" ) + return TestCaseInfo::ShouldFail; + else if( tag == "!mayfail" ) + return TestCaseInfo::MayFail; + else + return TestCaseInfo::None; } inline bool isReservedTag( std::string const& tag ) { - return !isSpecialTag( tag ) && tag.size() > 0 && !isalnum( tag[0] ); + return parseSpecialTag( tag ) == TestCaseInfo::None && tag.size() > 0 && !isalnum( tag[0] ); } inline void enforceNotReservedTag( std::string const& tag, SourceLineInfo const& _lineInfo ) { if( isReservedTag( tag ) ) { @@ -80,7 +88,7 @@ namespace Catch { tags.insert( "." ); } - TestCaseInfo info( _name, _className, desc, tags, isHidden, _lineInfo ); + TestCaseInfo info( _name, _className, desc, tags, _lineInfo ); return TestCase( _testCase, info ); } @@ -88,22 +96,20 @@ namespace Catch { std::string const& _className, std::string const& _description, std::set const& _tags, - bool _isHidden, SourceLineInfo const& _lineInfo ) : name( _name ), className( _className ), description( _description ), tags( _tags ), lineInfo( _lineInfo ), - isHidden( _isHidden ), - throws( false ) + properties( None ) { std::ostringstream oss; for( std::set::const_iterator it = _tags.begin(), itEnd = _tags.end(); it != itEnd; ++it ) { oss << "[" << *it << "]"; - if( *it == "!throws" ) - throws = true; - lcaseTags.insert( toLower( *it ) ); + std::string lcaseTag = toLower( *it ); + properties = (SpecialProperties)( properties | parseSpecialTag( lcaseTag ) ); + lcaseTags.insert( lcaseTag ); } tagsAsString = oss.str(); } @@ -116,10 +122,23 @@ namespace Catch { lcaseTags( other.lcaseTags ), tagsAsString( other.tagsAsString ), lineInfo( other.lineInfo ), - isHidden( other.isHidden ), - throws( other.throws ) + properties( other.properties ) {} + bool TestCaseInfo::isHidden() const { + return ( properties & IsHidden ) != 0; + } + bool TestCaseInfo::throws() const { + return ( properties & Throws ) != 0; + } + bool TestCaseInfo::okToFail() const { + return ( properties & (ShouldFail | MayFail ) ) != 0; + } + bool TestCaseInfo::expectedToFail() const { + return ( properties & (ShouldFail ) ) != 0; + } + + TestCase::TestCase( ITestCase* testCase, TestCaseInfo const& info ) : TestCaseInfo( info ), test( testCase ) {} TestCase::TestCase( TestCase const& other ) @@ -141,8 +160,7 @@ namespace Catch { tags.swap( other.tags ); lcaseTags.swap( other.lcaseTags ); tagsAsString.swap( other.tagsAsString ); - std::swap( TestCaseInfo::isHidden, static_cast( other ).isHidden ); - std::swap( TestCaseInfo::throws, static_cast( other ).throws ); + std::swap( TestCaseInfo::properties, static_cast( other ).properties ); std::swap( lineInfo, other.lineInfo ); } @@ -150,13 +168,6 @@ namespace Catch { test->invoke(); } - bool TestCase::isHidden() const { - return TestCaseInfo::isHidden; - } - bool TestCase::throws() const { - return TestCaseInfo::throws; - } - bool TestCase::operator == ( TestCase const& other ) const { return test.get() == other.test.get() && name == other.name && diff --git a/include/internal/catch_test_spec_parser.hpp b/include/internal/catch_test_spec_parser.hpp index 157893f5..3f794c6b 100644 --- a/include/internal/catch_test_spec_parser.hpp +++ b/include/internal/catch_test_spec_parser.hpp @@ -26,16 +26,16 @@ namespace Catch { std::string m_arg; TestSpec::Filter m_currentFilter; TestSpec m_testSpec; - ITagAliasRegistry const& m_tagAliases; + ITagAliasRegistry const* m_tagAliases; public: - TestSpecParser( ITagAliasRegistry const& tagAliases ) : m_tagAliases( tagAliases ) {} + TestSpecParser( ITagAliasRegistry const& tagAliases ) : m_tagAliases( &tagAliases ) {} TestSpecParser& parse( std::string const& arg ) { m_mode = None; m_exclusion = false; m_start = std::string::npos; - m_arg = m_tagAliases.expandAliases( arg ); + m_arg = m_tagAliases->expandAliases( arg ); for( m_pos = 0; m_pos < m_arg.size(); ++m_pos ) visitChar( m_arg[m_pos] ); if( m_mode == Name ) diff --git a/include/internal/catch_totals.hpp b/include/internal/catch_totals.hpp index 5fed14cf..ea5d3c74 100644 --- a/include/internal/catch_totals.hpp +++ b/include/internal/catch_totals.hpp @@ -9,30 +9,34 @@ #define TWOBLUECUBES_CATCH_TOTALS_HPP_INCLUDED #include +#include // !TBD namespace Catch { struct Counts { - Counts() : passed( 0 ), failed( 0 ) {} + Counts() : passed( 0 ), failed( 0 ), failedButOk( 0 ) {} Counts operator - ( Counts const& other ) const { Counts diff; diff.passed = passed - other.passed; diff.failed = failed - other.failed; + diff.failedButOk = failedButOk - other.failedButOk; return diff; } Counts& operator += ( Counts const& other ) { passed += other.passed; failed += other.failed; + failedButOk += other.failedButOk; return *this; } std::size_t total() const { - return passed + failed; + return passed + failed + failedButOk; } std::size_t passed; std::size_t failed; + std::size_t failedButOk; }; struct Totals { @@ -48,6 +52,8 @@ namespace Catch { Totals diff = *this - prevTotals; if( diff.assertions.failed > 0 ) ++diff.testCases.failed; + else if( diff.assertions.failedButOk > 0 ) + ++diff.testCases.failedButOk; else ++diff.testCases.passed; return diff; diff --git a/include/reporters/catch_reporter_console.hpp b/include/reporters/catch_reporter_console.hpp index 29d84bf1..c4081b54 100644 --- a/include/reporters/catch_reporter_console.hpp +++ b/include/reporters/catch_reporter_console.hpp @@ -101,10 +101,12 @@ namespace Catch { StreamingReporterBase::testGroupEnded( _testGroupStats ); } virtual void testRunEnded( TestRunStats const& _testRunStats ) { - if( m_atLeastOneTestCasePrinted ) - printTotalsDivider(); + printTotalsDivider( _testRunStats.totals ); printTotals( _testRunStats.totals ); - stream << "\n" << std::endl; + if( m_atLeastOneTestCasePrinted || + ( _testRunStats.totals.assertions.total() == 0 && _testRunStats.totals.testCases.total() > 0 ) ) + printTotalsDivider( _testRunStats.totals ); + stream << std::endl; StreamingReporterBase::testRunEnded( _testRunStats ); } @@ -326,60 +328,78 @@ namespace Catch { .setInitialIndent( indent ) ) << "\n"; } - void printTotals( const Totals& totals ) { + void printTotals( Totals const& totals ) { + int cols = 1+(int)log10( (float)std::max( totals.testCases.total(), totals.assertions.total() ) ); if( totals.testCases.total() == 0 ) { - stream << "No tests ran"; + stream << Colour( Colour::Warning ) << "No tests ran\n"; } else if( totals.assertions.total() == 0 ) { - Colour colour( Colour::Yellow ); - printCounts( "test case", totals.testCases ); - stream << " (no assertions)"; + printCounts( "test case", totals.testCases, cols ); + stream << "assertions: "; + stream << Colour( Colour::Warning ) << "- none -\n"; } - else if( totals.assertions.failed ) { - Colour colour( Colour::ResultError ); - printCounts( "test case", totals.testCases ); - if( totals.testCases.failed > 0 ) { - stream << " ("; - printCounts( "assertion", totals.assertions ); - stream << ")"; - } + else if( totals.assertions.failed + totals.assertions.failedButOk ) { + printCounts( "test case", totals.testCases, cols ); + printCounts( "assertion", totals.assertions, cols ); } else { - Colour colour( Colour::ResultSuccess ); - stream << "All tests passed (" + stream << Colour( Colour::ResultSuccess ) << "All tests passed"; + stream << " (" << pluralise( totals.assertions.passed, "assertion" ) << " in " - << pluralise( totals.testCases.passed, "test case" ) << ")"; + << pluralise( totals.testCases.passed, "test case" ) << ")" + << "\n"; } } - void printCounts( std::string const& label, Counts const& counts ) { - if( counts.total() == 1 ) { - stream << "1 " << label << " - "; - if( counts.failed ) - stream << "failed"; - else - stream << "passed"; - } - else { - stream << counts.total() << " " << label << "s "; - if( counts.passed ) { - if( counts.failed ) - stream << "- " << counts.failed << " failed"; - else if( counts.passed == 2 ) - stream << "- both passed"; - else - stream << "- all passed"; - } - else { - if( counts.failed == 2 ) - stream << "- both failed"; - else - stream << "- all failed"; - } + void printCounts( std::string const& label, Counts const& counts, int cols ) { + stream << label << "s: "; + + stream << Colour( counts.passed > 0 ? Colour::ResultSuccess : Colour::LightGrey ) + << std::setw( cols ) << counts.passed << " passed"; + + stream << Colour( Colour::LightGrey ) << " | "; + + stream << Colour( counts.failed > 0 ? Colour::ResultError : Colour::LightGrey ) + << std::setw( cols ) << counts.failed << " failed"; + if( counts.failedButOk > 0 ) { + stream << Colour( Colour::LightGrey ) << " | "; + stream << Colour( counts.failedButOk > 0 ? Colour::ResultExpectedFailure : Colour::LightGrey ) + << std::setw( cols ) << counts.failedButOk << " failed as expected"; } + stream << Colour( Colour::LightGrey ) << " | "; + stream << "total: " << counts.total() << "\n"; } - void printTotalsDivider() { - stream << getLineOfChars<'='>() << "\n"; + static std::size_t makeRatio( std::size_t number, std::size_t total ) { + std::size_t ratio = total > 0 ? CATCH_CONFIG_CONSOLE_WIDTH * number/ total : 0; + return ( ratio == 0 && number > 0 ) ? 1 : ratio; + } + static std::size_t& findMax( std::size_t& i, std::size_t& j, std::size_t& k ) { + if( i > j && i > k ) + return i; + else if( j > k ) + return j; + else + return k; + } + + void printTotalsDivider( Totals const& totals ) { + if( totals.testCases.total() > 0 ) { + std::size_t failedRatio = makeRatio( totals.testCases.failed, totals.testCases.total() ); + std::size_t failedButOkRatio = makeRatio( totals.testCases.failedButOk, totals.testCases.total() ); + std::size_t passedRatio = makeRatio( totals.testCases.passed, totals.testCases.total() ); + while( failedRatio + failedButOkRatio + passedRatio < CATCH_CONFIG_CONSOLE_WIDTH-1 ) + findMax( failedRatio, failedButOkRatio, passedRatio )++; + while( failedRatio + failedButOkRatio + passedRatio > CATCH_CONFIG_CONSOLE_WIDTH-1 ) + findMax( failedRatio, failedButOkRatio, passedRatio )--; + + stream << Colour( Colour::ResultSuccess ) << std::string( passedRatio, '=' ); + stream << Colour( Colour::Error ) << std::string( failedRatio, '=' ); + stream << Colour( Colour::ResultExpectedFailure ) << std::string( failedButOkRatio, '=' ); + } + else { + stream << Colour( Colour::Warning ) << std::string( CATCH_CONFIG_CONSOLE_WIDTH-1, '=' ); + } + stream << "\n"; } void printSummaryDivider() { stream << getLineOfChars<'-'>() << "\n"; diff --git a/include/reporters/catch_reporter_xml.hpp b/include/reporters/catch_reporter_xml.hpp index 0894238e..aa2cfeda 100644 --- a/include/reporters/catch_reporter_xml.hpp +++ b/include/reporters/catch_reporter_xml.hpp @@ -40,7 +40,8 @@ namespace Catch { virtual void EndTesting( const Totals& totals ) { m_xml.scopedElement( "OverallResults" ) .writeAttribute( "successes", totals.assertions.passed ) - .writeAttribute( "failures", totals.assertions.failed ); + .writeAttribute( "failures", totals.assertions.failed ) + .writeAttribute( "expectedFailures", totals.assertions.failedButOk ); m_xml.endElement(); } @@ -52,7 +53,8 @@ namespace Catch { virtual void EndGroup( const std::string&, const Totals& totals ) { m_xml.scopedElement( "OverallResults" ) .writeAttribute( "successes", totals.assertions.passed ) - .writeAttribute( "failures", totals.assertions.failed ); + .writeAttribute( "failures", totals.assertions.failed ) + .writeAttribute( "expectedFailures", totals.assertions.failedButOk ); m_xml.endElement(); } @@ -70,7 +72,8 @@ namespace Catch { if( --m_sectionDepth > 0 ) { m_xml.scopedElement( "OverallResults" ) .writeAttribute( "successes", assertions.passed ) - .writeAttribute( "failures", assertions.failed ); + .writeAttribute( "failures", assertions.failed ) + .writeAttribute( "expectedFailures", assertions.failedButOk ); m_xml.endElement(); } } diff --git a/projects/SelfTest/Baselines/console.std.approved.txt b/projects/SelfTest/Baselines/console.std.approved.txt index 113b7fc5..5c12227d 100644 --- a/projects/SelfTest/Baselines/console.std.approved.txt +++ b/projects/SelfTest/Baselines/console.std.approved.txt @@ -786,5 +786,7 @@ with expansion: "first" == "second" =============================================================================== -125 test cases - 39 failed (703 assertions - 92 failed) +test cases: 86 passed | 38 failed | 1 failed as expected | total: 125 +assertions: 611 passed | 79 failed | 13 failed as expected | total: 703 +=============================================================================== diff --git a/projects/SelfTest/Baselines/console.sw.approved.txt b/projects/SelfTest/Baselines/console.sw.approved.txt index 9732c99d..fadee6b3 100644 --- a/projects/SelfTest/Baselines/console.sw.approved.txt +++ b/projects/SelfTest/Baselines/console.sw.approved.txt @@ -7297,5 +7297,7 @@ with expansion: true =============================================================================== -125 test cases - 55 failed (723 assertions - 112 failed) +test cases: 70 passed | 54 failed | 1 failed as expected | total: 125 +assertions: 611 passed | 99 failed | 13 failed as expected | total: 723 +=============================================================================== diff --git a/projects/SelfTest/Baselines/console.swa4.approved.txt b/projects/SelfTest/Baselines/console.swa4.approved.txt index c5828f26..5ffb071f 100644 --- a/projects/SelfTest/Baselines/console.swa4.approved.txt +++ b/projects/SelfTest/Baselines/console.swa4.approved.txt @@ -317,6 +317,96 @@ ConditionTests.cpp:: FAILED: with expansion: 7 == 8 -=============================================================================== -13 test cases - 3 failed (40 assertions - 4 failed) +------------------------------------------------------------------------------- +Inequality checks that should succeed +------------------------------------------------------------------------------- +ConditionTests.cpp: +............................................................................... + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.int_seven != 6 ) +with expansion: + 7 != 6 + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.int_seven != 8 ) +with expansion: + 7 != 8 + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.float_nine_point_one != Approx( 9.11f ) ) +with expansion: + 9.1 != Approx( 9.1099996567 ) + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.float_nine_point_one != Approx( 9.0f ) ) +with expansion: + 9.1 != Approx( 9.0 ) + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.float_nine_point_one != Approx( 1 ) ) +with expansion: + 9.1 != Approx( 1.0 ) + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.float_nine_point_one != Approx( 0 ) ) +with expansion: + 9.1 != Approx( 0.0 ) + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.double_pi != Approx( 3.1415 ) ) +with expansion: + 3.1415926535 != Approx( 3.1415 ) + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.str_hello != "goodbye" ) +with expansion: + "hello" != "goodbye" + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.str_hello != "hell" ) +with expansion: + "hello" != "hell" + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.str_hello != "hello1" ) +with expansion: + "hello" != "hello1" + +ConditionTests.cpp:: +PASSED: + REQUIRE( data.str_hello.size() != 6 ) +with expansion: + 5 != 6 + +------------------------------------------------------------------------------- +Inequality checks that should fail +------------------------------------------------------------------------------- +ConditionTests.cpp: +............................................................................... + +ConditionTests.cpp:: FAILED: + CHECK( data.int_seven != 7 ) +with expansion: + 7 != 7 + +ConditionTests.cpp:: FAILED: + CHECK( data.float_nine_point_one != Approx( 9.1f ) ) +with expansion: + 9.1 != Approx( 9.1000003815 ) + +=============================================================================== +test cases: 11 passed | 3 failed | 1 failed as expected | total: 15 +assertions: 47 passed | 4 failed | 2 failed as expected | total: 53 +=============================================================================== diff --git a/projects/SelfTest/Baselines/junit.sw.approved.txt b/projects/SelfTest/Baselines/junit.sw.approved.txt index 35ad75f5..5ccdb502 100644 --- a/projects/SelfTest/Baselines/junit.sw.approved.txt +++ b/projects/SelfTest/Baselines/junit.sw.approved.txt @@ -1,5 +1,5 @@ - + diff --git a/projects/SelfTest/Baselines/xml.sw.approved.txt b/projects/SelfTest/Baselines/xml.sw.approved.txt index 4b1e9269..8c84d912 100644 --- a/projects/SelfTest/Baselines/xml.sw.approved.txt +++ b/projects/SelfTest/Baselines/xml.sw.approved.txt @@ -1408,7 +1408,7 @@ unexpected exception - + @@ -2770,22 +2770,22 @@ Message from section one - +
Message from section two - +
- +
- +
@@ -2950,7 +2950,7 @@ 2 != 1 - +
@@ -2961,7 +2961,7 @@ 1 != 2 - +
@@ -2992,9 +2992,9 @@ 1 != 2 - + - + @@ -3009,27 +3009,27 @@ 1 == 2 - + - +
- +
- +
- +
- +
- +
@@ -3043,7 +3043,7 @@ 0 > 1 - + @@ -3232,10 +3232,10 @@
- +
- +
@@ -3487,7 +3487,7 @@ 10 >= 10 - + @@ -3531,9 +3531,9 @@ 0 == 0 - + - + @@ -3568,7 +3568,7 @@ 10 >= 10 - + @@ -3603,16 +3603,16 @@ 5 >= 5 - +
- +
- +
to infinity and beyond @@ -3682,7 +3682,7 @@ true - +
@@ -3710,9 +3710,9 @@ true - +
- +
@@ -3740,9 +3740,9 @@ true - +
- +
@@ -3770,9 +3770,9 @@ true - +
- +
@@ -3792,9 +3792,9 @@ "console" == "console" - +
- +
@@ -3814,9 +3814,9 @@ "xml" == "xml" - +
- +
@@ -3836,9 +3836,9 @@ "junit" == "junit" - +
- +
@@ -3858,9 +3858,9 @@ true == true - +
- +
@@ -3880,9 +3880,9 @@ true - +
- +
@@ -3902,9 +3902,9 @@ 1 == 1 - +
- +
@@ -3924,9 +3924,9 @@ 2 == 2 - +
- +
@@ -3939,9 +3939,9 @@ - while parsing: (-x, --abortx <no. failures>)" contains: "greater than zero" - +
- +
@@ -3954,9 +3954,9 @@ - while parsing: (-x, --abortx <no. failures>)" contains: "-x" - +
- +
@@ -3976,9 +3976,9 @@ true == true - +
- +
@@ -3998,9 +3998,9 @@ true == true - +
- +
@@ -4020,9 +4020,9 @@ "filename.ext" == "filename.ext" - +
- +
@@ -4042,9 +4042,9 @@ "filename.ext" == "filename.ext" - +
- +
@@ -4080,9 +4080,9 @@ true == true - +
- +
@@ -4109,9 +4109,9 @@ "one two three four" - + - +
@@ -4175,9 +4175,9 @@ three four" three four" - +
- +
@@ -4223,9 +4223,9 @@ three four" - +
- +
@@ -4261,9 +4261,9 @@ three four" - +
- +
@@ -4343,9 +4343,9 @@ fo- ur" - +
- +
@@ -4389,9 +4389,9 @@ ur" "four" == "four" - +
- +
@@ -4409,9 +4409,9 @@ ur" four" - +
- +
@@ -4451,9 +4451,9 @@ three four" three four" - +
- +
@@ -4489,9 +4489,9 @@ three four" " - +
- +
@@ -4537,9 +4537,9 @@ three four" - +
- +
@@ -4559,9 +4559,9 @@ three four" - +
- +
@@ -4580,7 +4580,7 @@ four" six" - +
@@ -5755,7 +5755,7 @@ there" true == true - +
@@ -5774,7 +5774,7 @@ there" false == false - +
@@ -5785,7 +5785,7 @@ there" true - +
@@ -5796,7 +5796,7 @@ there" true - +
@@ -5815,7 +5815,7 @@ there" !false - +
@@ -5873,9 +5873,9 @@ there" true - + - + @@ -5903,9 +5903,9 @@ there" true - + - + @@ -6012,7 +6012,7 @@ there" false == false - +
@@ -6039,7 +6039,7 @@ there" false == false - +
@@ -6066,7 +6066,7 @@ there" false == false - +
@@ -6093,7 +6093,7 @@ there" true == true - +
@@ -6120,7 +6120,7 @@ there" true == true - +
@@ -6155,7 +6155,7 @@ there" false == false - +
@@ -6206,7 +6206,7 @@ there" true == true - +
@@ -6257,7 +6257,7 @@ there" true == true - +
@@ -6308,7 +6308,7 @@ there" true == true - +
@@ -6335,7 +6335,7 @@ there" false == false - +
@@ -6362,7 +6362,7 @@ there" false == false - +
@@ -6389,7 +6389,7 @@ there" false == false - +
@@ -6432,7 +6432,7 @@ there" true == true - +
@@ -6475,7 +6475,7 @@ there" true == true - +
@@ -6510,7 +6510,7 @@ there" false == false - +
@@ -6545,7 +6545,7 @@ there" true == true - +
@@ -6580,7 +6580,7 @@ there" true == true - +
@@ -6615,7 +6615,7 @@ there" true == true - +
@@ -6658,7 +6658,7 @@ there" false == false - +
@@ -6693,7 +6693,7 @@ there" true == true - +
@@ -6728,7 +6728,7 @@ there" false == false - +
@@ -6771,7 +6771,7 @@ there" true == true - +
@@ -6814,7 +6814,7 @@ there" true == true - +
@@ -6857,7 +6857,7 @@ there" true == true - +
@@ -6900,7 +6900,7 @@ there" false == false - +
@@ -6943,7 +6943,7 @@ there" false == false - +
@@ -6986,7 +6986,7 @@ there" false == false - +
@@ -7029,7 +7029,7 @@ there" false == false - +
@@ -7072,7 +7072,7 @@ there" false == false - +
@@ -7115,7 +7115,7 @@ there" false == false - +
@@ -7158,7 +7158,7 @@ there" true == true - +
@@ -7204,7 +7204,7 @@ there" Redefined at file:10" contains: "10" - +
@@ -7239,7 +7239,7 @@ there" registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) - +
@@ -7251,7 +7251,7 @@ there"
- +
@@ -7276,13 +7276,13 @@ there" true - + - + - + - + @@ -7332,15 +7332,15 @@ there" 10 >= 10 - + - + - + - + - +
@@ -7369,11 +7369,11 @@ there" 0 == 0 - +
- + - + @@ -7381,11 +7381,11 @@ there"
- +
- +
- +
@@ -7415,7 +7415,7 @@ there" true - + @@ -7458,7 +7458,7 @@ there" !false - + @@ -7517,7 +7517,7 @@ there" true - + @@ -7560,11 +7560,11 @@ there" true - + - + - + diff --git a/projects/SelfTest/ConditionTests.cpp b/projects/SelfTest/ConditionTests.cpp index 24bc2ebd..097c3f33 100644 --- a/projects/SelfTest/ConditionTests.cpp +++ b/projects/SelfTest/ConditionTests.cpp @@ -62,7 +62,7 @@ TEST_CASE( "Equality checks that should succeed", "" ) REQUIRE( x == Approx( 1.3 ) ); } -TEST_CASE( "Equality checks that should fail", "[.][failing]" ) +TEST_CASE( "Equality checks that should fail", "[.][failing][!mayfail]" ) { TestData data;