diff --git a/include/internal/catch_option.hpp b/include/internal/catch_option.hpp index 53abfe60..81178233 100644 --- a/include/internal/catch_option.hpp +++ b/include/internal/catch_option.hpp @@ -34,12 +34,18 @@ namespace Catch { nullableValue = new( storage ) T( *_other ); return *this; } + Option& operator = ( T const& _value ) { + reset(); + nullableValue = new( storage ) T( _value ); + return *this; + } void reset() { if( nullableValue ) nullableValue->~T(); nullableValue = NULL; } + T& operator*() { return *nullableValue; } T const& operator*() const { return *nullableValue; } T* operator->() { return nullableValue; } diff --git a/include/internal/catch_runner_impl.hpp b/include/internal/catch_runner_impl.hpp index cf587e8f..78f6287d 100644 --- a/include/internal/catch_runner_impl.hpp +++ b/include/internal/catch_runner_impl.hpp @@ -18,6 +18,7 @@ #include "catch_totals.hpp" #include "catch_running_test.hpp" #include "catch_test_spec.h" +#include "catch_test_case_tracker.hpp" #include #include @@ -114,13 +115,15 @@ namespace Catch { m_reporter->testCaseStarting( testInfo ); - m_runningTest = new RunningTest( testCase ); + m_runningTest = new RunningTest( testCase ); // deprecated + m_testCaseTracker = TestCaseTracker( testInfo.name ); do { do { runCurrentTest( redirectedCout, redirectedCerr ); } - while( m_runningTest->hasUntestedSections() && !aborting() ); +// while( m_runningTest->hasUntestedSections() && !aborting() ); + while( !m_testCaseTracker->isCompleted() && !aborting() ); } while( getCurrentContext().advanceGeneratorsForCurrentTest() && !aborting() ); @@ -144,6 +147,7 @@ namespace Catch { delete m_runningTest; m_runningTest = NULL; + m_testCaseTracker.reset(); return deltaTotals; } @@ -182,10 +186,12 @@ namespace Catch { std::ostringstream oss; oss << sectionInfo.name << "@" << sectionInfo.lineInfo; - - if( !m_runningTest->addSection( oss.str() ) ) + if( !m_testCaseTracker->enterSection( oss.str() ) ) return false; +// if( !m_runningTest->addSection( oss.str() ) ) // deprecated +// return false; + m_lastAssertionInfo.lineInfo = sectionInfo.lineInfo; m_reporter->sectionStarting( sectionInfo ); @@ -205,13 +211,15 @@ namespace Catch { bool missingAssertions = false; if( assertions.total() == 0 && m_config->warnAboutMissingAssertions() && - !m_runningTest->isBranchSection() ) { + !m_testCaseTracker->currentSectionHasChildren() ) { +// m_runningTest->isBranchSection() ) { // deprecated m_totals.assertions.failed++; assertions.failed++; missingAssertions = true; } - m_runningTest->endSection( info.name, false ); +// m_runningTest->endSection( info.name, false ); // deprecated + m_testCaseTracker->leaveSection(); m_reporter->sectionEnded( SectionStats( info, assertions, missingAssertions ) ); m_messages.clear(); @@ -264,9 +272,13 @@ namespace Catch { } void runCurrentTest( std::string& redirectedCout, std::string& redirectedCerr ) { + TestCaseInfo const& testCaseInfo = m_runningTest->getTestCase().getTestCaseInfo(); + SectionInfo testCaseSection( testCaseInfo.name, testCaseInfo.description, testCaseInfo.lineInfo ); + m_reporter->sectionStarting( testCaseSection ); try { - m_lastAssertionInfo = AssertionInfo( "TEST_CASE", m_runningTest->getTestCase().getTestCaseInfo().lineInfo, "", ResultDisposition::Normal ); - m_runningTest->reset(); + m_lastAssertionInfo = AssertionInfo( "TEST_CASE", testCaseInfo.lineInfo, "", ResultDisposition::Normal ); + //m_runningTest->reset(); // deprecated + m_testCaseTracker->enter(); if( m_reporter->getPreferences().shouldRedirectStdOut ) { StreamRedirect coutRedir( std::cout, redirectedCout ); @@ -276,12 +288,15 @@ namespace Catch { else { m_runningTest->getTestCase().invoke(); } - m_runningTest->ranToCompletion(); + //m_runningTest->ranToCompletion(); // deprecated + m_testCaseTracker->leave(); } catch( TestFailureException& ) { // This just means the test was aborted due to failure + m_testCaseTracker->leave(); // !TBD: RAII } catch(...) { + m_testCaseTracker->leave(); ExpressionResultBuilder exResult( ResultWas::ThrewException ); exResult << translateActiveException(); actOnCurrentResult( exResult.buildResult( m_lastAssertionInfo ) ); @@ -295,6 +310,8 @@ namespace Catch { sectionEnded( it->info, it->prevAssertions ); m_unfinishedSections.clear(); m_messages.clear(); + SectionStats testCaseSectionStats( testCaseSection, Counts(), 0 ); // !TBD + m_reporter->sectionEnded( testCaseSectionStats ); } private: @@ -309,7 +326,8 @@ namespace Catch { TestRunInfo m_runInfo; IMutableContext& m_context; - RunningTest* m_runningTest; + RunningTest* m_runningTest; // deprecated + Option m_testCaseTracker; AssertionResult m_lastResult; Ptr m_config; diff --git a/include/internal/catch_test_case_tracker.hpp b/include/internal/catch_test_case_tracker.hpp index 4ca49950..e0298d4e 100644 --- a/include/internal/catch_test_case_tracker.hpp +++ b/include/internal/catch_test_case_tracker.hpp @@ -57,6 +57,9 @@ namespace SectionTracking { TrackedSection* getParent() { return m_parent; } + bool hasChildren() const { + return !m_children.empty(); + } private: std::string m_name; @@ -98,6 +101,9 @@ namespace SectionTracking { m_completedASectionThisRun = true; } + bool currentSectinHasChildren() const { + return m_currentSection->hasChildren(); + } private: TrackedSection* m_currentSection; @@ -109,11 +115,11 @@ namespace SectionTracking { TestCaseTracker( std::string const& testCaseName ) : m_testCase( testCaseName, NULL ), - sections( m_testCase ) + m_sections( m_testCase ) {} void enter() { - sections = SectionTracker( m_testCase ); + m_sections = SectionTracker( m_testCase ); m_testCase.enter(); } void leave() { @@ -121,19 +127,23 @@ namespace SectionTracking { } bool enterSection( std::string const& name ) { - return sections.enterSection( name ); + return m_sections.enterSection( name ); } void leaveSection() { - sections.leaveSection(); + m_sections.leaveSection(); } bool isCompleted() const { return m_testCase.runState() == TrackedSection::Completed; } + bool currentSectionHasChildren() const { + return m_sections.currentSectinHasChildren(); + } + private: TrackedSection m_testCase; - SectionTracker sections; + SectionTracker m_sections; }; } // namespace SectionTracking diff --git a/include/reporters/catch_reporter_console.hpp b/include/reporters/catch_reporter_console.hpp index 7d120780..87a32500 100644 --- a/include/reporters/catch_reporter_console.hpp +++ b/include/reporters/catch_reporter_console.hpp @@ -271,12 +271,10 @@ namespace Catch { sections.push_back( section ); // Sections - if( !sections.empty() ) { - typedef std::vector::const_reverse_iterator It; - for( It it = sections.rbegin(), itEnd = sections.rend(); it != itEnd; ++it ) - printHeaderString( (*it)->name, 2 ); - - } + std::vector::const_reverse_iterator + it = sections.rbegin(), itEnd = sections.rend(); + for( ++it; it != itEnd; ++it ) // Skip first section (test case) + printHeaderString( (*it)->name, 2 ); } SourceLineInfo lineInfo = currentSectionInfo ? currentSectionInfo->lineInfo diff --git a/include/reporters/catch_reporter_xml.hpp b/include/reporters/catch_reporter_xml.hpp index 4c7d2518..4c8095e0 100644 --- a/include/reporters/catch_reporter_xml.hpp +++ b/include/reporters/catch_reporter_xml.hpp @@ -16,7 +16,7 @@ namespace Catch { class XmlReporter : public SharedImpl { public: - XmlReporter( ReporterConfig const& config ) : m_config( config ) {} + XmlReporter( ReporterConfig const& config ) : m_config( config ), m_sectionDepth( 0 ) {} static std::string getDescription() { return "Reports test results as an XML document"; @@ -56,18 +56,22 @@ namespace Catch { } virtual void StartSection( const std::string& sectionName, const std::string& description ) { - m_xml.startElement( "Section" ) - .writeAttribute( "name", sectionName ) - .writeAttribute( "description", description ); + if( m_sectionDepth++ > 0 ) { + m_xml.startElement( "Section" ) + .writeAttribute( "name", sectionName ) + .writeAttribute( "description", description ); + } } virtual void NoAssertionsInSection( const std::string& ) {} virtual void NoAssertionsInTestCase( const std::string& ) {} virtual void EndSection( const std::string& /*sectionName*/, const Counts& assertions ) { - m_xml.scopedElement( "OverallResults" ) - .writeAttribute( "successes", assertions.passed ) - .writeAttribute( "failures", assertions.failed ); - m_xml.endElement(); + if( --m_sectionDepth > 0 ) { + m_xml.scopedElement( "OverallResults" ) + .writeAttribute( "successes", assertions.passed ) + .writeAttribute( "failures", assertions.failed ); + m_xml.endElement(); + } } virtual void StartTestCase( const Catch::TestCaseInfo& testInfo ) { @@ -138,6 +142,7 @@ namespace Catch { ReporterConfig m_config; bool m_currentTestSuccess; XmlWriter m_xml; + int m_sectionDepth; }; } // end namespace Catch diff --git a/projects/SelfTest/Baselines/approvedResults.txt b/projects/SelfTest/Baselines/approvedResults.txt index d780f310..ba3315d9 100644 --- a/projects/SelfTest/Baselines/approvedResults.txt +++ b/projects/SelfTest/Baselines/approvedResults.txt @@ -640,6 +640,36 @@ MiscTests.cpp: FAILED: with expansion: "this string contains 'abc' as a substring" equals: "something else" +------------------------------------------------------------------------------- +./failing/CatchSectionInfiniteLoop +------------------------------------------------------------------------------- +MiscTests.cpp +............................................................................... + +MiscTests.cpp: FAILED: +explicitly with message: + to infinity and beyond + +------------------------------------------------------------------------------- +./failing/CatchSectionInfiniteLoop +------------------------------------------------------------------------------- +MiscTests.cpp +............................................................................... + +MiscTests.cpp: FAILED: +explicitly with message: + to infinity and beyond + +------------------------------------------------------------------------------- +./failing/CatchSectionInfiniteLoop +------------------------------------------------------------------------------- +MiscTests.cpp +............................................................................... + +MiscTests.cpp: FAILED: +explicitly with message: + to infinity and beyond + Message from section one Message from section two Some information @@ -678,7 +708,7 @@ with expansion: "first" == "second" =============================================================================== -119 test cases - 34 failed (693 assertions - 87 failed) +121 test cases - 35 failed (737 assertions - 90 failed) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1866,6 +1896,12 @@ PASSED: with expansion: 200 == 200 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -1878,6 +1914,12 @@ PASSED: with expansion: 200 == 200 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -1890,6 +1932,12 @@ PASSED: with expansion: 200 == 200 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -1902,6 +1950,12 @@ PASSED: with expansion: 200 == 200 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -1914,6 +1968,12 @@ PASSED: with expansion: 200 == 200 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -1926,6 +1986,12 @@ PASSED: with expansion: 200 == 200 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -1938,6 +2004,12 @@ PASSED: with expansion: 200 == 200 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -1950,6 +2022,12 @@ PASSED: with expansion: 200 == 200 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -1962,6 +2040,12 @@ PASSED: with expansion: 200 == 200 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -1974,6 +2058,12 @@ PASSED: with expansion: 202 == 202 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -1986,6 +2076,12 @@ PASSED: with expansion: 202 == 202 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -1998,6 +2094,12 @@ PASSED: with expansion: 202 == 202 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2010,6 +2112,12 @@ PASSED: with expansion: 202 == 202 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2022,6 +2130,12 @@ PASSED: with expansion: 202 == 202 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2034,6 +2148,12 @@ PASSED: with expansion: 202 == 202 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2046,6 +2166,12 @@ PASSED: with expansion: 202 == 202 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2058,6 +2184,12 @@ PASSED: with expansion: 202 == 202 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2070,6 +2202,12 @@ PASSED: with expansion: 202 == 202 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2082,6 +2220,12 @@ PASSED: with expansion: 204 == 204 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2094,6 +2238,12 @@ PASSED: with expansion: 204 == 204 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2106,6 +2256,12 @@ PASSED: with expansion: 204 == 204 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2118,6 +2274,12 @@ PASSED: with expansion: 204 == 204 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2130,6 +2292,12 @@ PASSED: with expansion: 204 == 204 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2142,6 +2310,12 @@ PASSED: with expansion: 204 == 204 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2154,6 +2328,12 @@ PASSED: with expansion: 204 == 204 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2166,6 +2346,12 @@ PASSED: with expansion: 204 == 204 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2178,6 +2364,12 @@ PASSED: with expansion: 204 == 204 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2190,6 +2382,12 @@ PASSED: with expansion: 206 == 206 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2202,6 +2400,12 @@ PASSED: with expansion: 206 == 206 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2214,6 +2418,12 @@ PASSED: with expansion: 206 == 206 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2226,6 +2436,12 @@ PASSED: with expansion: 206 == 206 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2238,6 +2454,12 @@ PASSED: with expansion: 206 == 206 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2250,6 +2472,12 @@ PASSED: with expansion: 206 == 206 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2262,6 +2490,12 @@ PASSED: with expansion: 206 == 206 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2274,6 +2508,12 @@ PASSED: with expansion: 206 == 206 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2286,6 +2526,12 @@ PASSED: with expansion: 206 == 206 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2298,6 +2544,12 @@ PASSED: with expansion: 208 == 208 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2310,6 +2562,12 @@ PASSED: with expansion: 208 == 208 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2322,6 +2580,12 @@ PASSED: with expansion: 208 == 208 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2334,6 +2598,12 @@ PASSED: with expansion: 208 == 208 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2346,6 +2616,12 @@ PASSED: with expansion: 208 == 208 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2358,6 +2634,12 @@ PASSED: with expansion: 208 == 208 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2370,6 +2652,12 @@ PASSED: with expansion: 208 == 208 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2382,6 +2670,12 @@ PASSED: with expansion: 208 == 208 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2394,6 +2688,12 @@ PASSED: with expansion: 208 == 208 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2406,6 +2706,12 @@ PASSED: with expansion: 210 == 210 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2418,6 +2724,12 @@ PASSED: with expansion: 210 == 210 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2430,6 +2742,12 @@ PASSED: with expansion: 210 == 210 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2442,6 +2760,12 @@ PASSED: with expansion: 210 == 210 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2454,6 +2778,12 @@ PASSED: with expansion: 210 == 210 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2466,6 +2796,12 @@ PASSED: with expansion: 210 == 210 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2478,6 +2814,12 @@ PASSED: with expansion: 210 == 210 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2490,6 +2832,12 @@ PASSED: with expansion: 210 == 210 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2502,6 +2850,12 @@ PASSED: with expansion: 210 == 210 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2514,6 +2868,12 @@ PASSED: with expansion: 212 == 212 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2526,6 +2886,12 @@ PASSED: with expansion: 212 == 212 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2538,6 +2904,12 @@ PASSED: with expansion: 212 == 212 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2550,6 +2922,12 @@ PASSED: with expansion: 212 == 212 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2562,6 +2940,12 @@ PASSED: with expansion: 212 == 212 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2574,6 +2958,12 @@ PASSED: with expansion: 212 == 212 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2586,6 +2976,12 @@ PASSED: with expansion: 212 == 212 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2598,6 +2994,12 @@ PASSED: with expansion: 212 == 212 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2610,6 +3012,12 @@ PASSED: with expansion: 212 == 212 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2622,6 +3030,12 @@ PASSED: with expansion: 214 == 214 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2634,6 +3048,12 @@ PASSED: with expansion: 214 == 214 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2646,6 +3066,12 @@ PASSED: with expansion: 214 == 214 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2658,6 +3084,12 @@ PASSED: with expansion: 214 == 214 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2670,6 +3102,12 @@ PASSED: with expansion: 214 == 214 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2682,6 +3120,12 @@ PASSED: with expansion: 214 == 214 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2694,6 +3138,12 @@ PASSED: with expansion: 214 == 214 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2706,6 +3156,12 @@ PASSED: with expansion: 214 == 214 +------------------------------------------------------------------------------- +./succeeding/generators/1 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) @@ -2730,6 +3186,12 @@ PASSED: with expansion: 0 == 0 +------------------------------------------------------------------------------- +./succeeding/generators/2 +------------------------------------------------------------------------------- +GeneratorTests.cpp +............................................................................... + GeneratorTests.cpp: PASSED: CATCH_REQUIRE( i->first == i->second-1 ) @@ -2747,6 +3209,12 @@ warning: this is a message this is a warning +------------------------------------------------------------------------------- +./succeeding/message +------------------------------------------------------------------------------- +MessageTests.cpp +............................................................................... + No assertions in test case, './succeeding/message' @@ -2979,6 +3447,12 @@ MessageTests.cpp: FAILED - but was ok: CHECK_NOFAIL( 1 == 2 ) +------------------------------------------------------------------------------- +./succeeding/nofail +------------------------------------------------------------------------------- +MessageTests.cpp +............................................................................... + No assertions in test case, './succeeding/nofail' @@ -3040,6 +3514,25 @@ with expansion: MiscTests.cpp ............................................................................... +MiscTests.cpp: +PASSED: + REQUIRE( a != b ) +with expansion: + 1 != 2 + +MiscTests.cpp: +PASSED: + REQUIRE( b != a ) +with expansion: + 2 != 1 + +------------------------------------------------------------------------------- +./succeeding/Misc/Sections/nested + s1 +------------------------------------------------------------------------------- +MiscTests.cpp +............................................................................... + MiscTests.cpp: PASSED: REQUIRE( a != b ) @@ -3554,6 +4047,12 @@ MiscTests.cpp: warning: This one ran +------------------------------------------------------------------------------- +Nice descriptive name +------------------------------------------------------------------------------- +MiscTests.cpp +............................................................................... + No assertions in test case, 'Nice descriptive name' @@ -3581,6 +4080,24 @@ vectors can be sized and resized MiscTests.cpp ............................................................................... +MiscTests.cpp: +PASSED: + REQUIRE( v.size() == 5 ) +with expansion: + 5 == 5 + +MiscTests.cpp: +PASSED: + REQUIRE( v.capacity() >= 5 ) +with expansion: + 5 >= 5 + +------------------------------------------------------------------------------- +vectors can be sized and resized +------------------------------------------------------------------------------- +MiscTests.cpp +............................................................................... + MiscTests.cpp: PASSED: REQUIRE( v.size() == 5 ) @@ -3649,20 +4166,6 @@ PASSED: with expansion: 5 >= 5 -------------------------------------------------------------------------------- -vectors can be sized and resized - resizing smaller changes size but not capacity - We can use the 'swap trick' to reset the capacity -------------------------------------------------------------------------------- -MiscTests.cpp -............................................................................... - -MiscTests.cpp: -PASSED: - REQUIRE( v.capacity() == 0 ) -with expansion: - 0 == 0 - ------------------------------------------------------------------------------- vectors can be sized and resized ------------------------------------------------------------------------------- @@ -3700,6 +4203,20 @@ PASSED: with expansion: 5 >= 5 +------------------------------------------------------------------------------- +vectors can be sized and resized + resizing smaller changes size but not capacity + We can use the 'swap trick' to reset the capacity +------------------------------------------------------------------------------- +MiscTests.cpp +............................................................................... + +MiscTests.cpp: +PASSED: + REQUIRE( v.capacity() == 0 ) +with expansion: + 0 == 0 + ------------------------------------------------------------------------------- vectors can be sized and resized ------------------------------------------------------------------------------- @@ -3774,6 +4291,49 @@ PASSED: with expansion: 5 >= 5 +------------------------------------------------------------------------------- +./failing/CatchSectionInfiniteLoop +------------------------------------------------------------------------------- +MiscTests.cpp +............................................................................... + +MiscTests.cpp: FAILED: +explicitly with message: + to infinity and beyond + +------------------------------------------------------------------------------- +./failing/CatchSectionInfiniteLoop +------------------------------------------------------------------------------- +MiscTests.cpp +............................................................................... + +MiscTests.cpp: FAILED: +explicitly with message: + to infinity and beyond + +------------------------------------------------------------------------------- +./failing/CatchSectionInfiniteLoop + Outer + Inner +------------------------------------------------------------------------------- +MiscTests.cpp +............................................................................... + +MiscTests.cpp: +PASSED: +with message: + that's not flying - that's failing in style + +------------------------------------------------------------------------------- +./failing/CatchSectionInfiniteLoop +------------------------------------------------------------------------------- +MiscTests.cpp +............................................................................... + +MiscTests.cpp: FAILED: +explicitly with message: + to infinity and beyond + ------------------------------------------------------------------------------- selftest/main selftest/expected result @@ -3917,6 +4477,11 @@ PASSED: with message: Tests failed, as expected +catch_self_test.hpp: +PASSED: +with message: + Tests failed, as expected + ------------------------------------------------------------------------------- selftest/main selftest/expected result @@ -4173,9 +4738,9 @@ TestMain.cpp TestMain.cpp: PASSED: - CHECK( totals.assertions.passed == 296 ) + CHECK( totals.assertions.passed == 298 ) with expansion: - 296 == 296 + 298 == 298 TestMain.cpp: PASSED: @@ -4193,15 +4758,15 @@ TestMain.cpp TestMain.cpp: PASSED: - CHECK( totals.assertions.passed == 1 ) + CHECK( totals.assertions.passed == 2 ) with expansion: - 1 == 1 + 2 == 2 TestMain.cpp: PASSED: - CHECK( totals.assertions.failed == 74 ) + CHECK( totals.assertions.failed == 77 ) with expansion: - 74 == 74 + 77 == 77 ------------------------------------------------------------------------------- meta/Misc/Sections @@ -5484,6 +6049,12 @@ warning: Uncomment the code in this test to check that it gives a sensible compiler error +------------------------------------------------------------------------------- +./inprogress/failing/Tricky/trailing expression +------------------------------------------------------------------------------- +TrickyTests.cpp +............................................................................... + No assertions in test case, './inprogress/failing/Tricky/trailing expression' @@ -5498,6 +6069,12 @@ warning: Uncomment the code in this test to check that it gives a sensible compiler error +------------------------------------------------------------------------------- +./inprogress/failing/Tricky/compound lhs +------------------------------------------------------------------------------- +TrickyTests.cpp +............................................................................... + No assertions in test case, './inprogress/failing/Tricky/compound lhs' @@ -5707,6 +6284,43 @@ Assertions then sections TrickyTests.cpp ............................................................................... +TrickyTests.cpp: +PASSED: + REQUIRE( Catch::isTrue( true ) ) +with expansion: + true + +------------------------------------------------------------------------------- +Assertions then sections +------------------------------------------------------------------------------- +TrickyTests.cpp +............................................................................... + +TrickyTests.cpp: +PASSED: + REQUIRE( Catch::isTrue( true ) ) +with expansion: + true + +------------------------------------------------------------------------------- +Assertions then sections + A section +------------------------------------------------------------------------------- +TrickyTests.cpp +............................................................................... + +TrickyTests.cpp: +PASSED: + REQUIRE( Catch::isTrue( true ) ) +with expansion: + true + +------------------------------------------------------------------------------- +Assertions then sections +------------------------------------------------------------------------------- +TrickyTests.cpp +............................................................................... + TrickyTests.cpp: PASSED: REQUIRE( Catch::isTrue( true ) ) @@ -5900,6 +6514,21 @@ Scenario: Do that thing with the thing BDDTests.cpp ............................................................................... +BDDTests.cpp: +PASSED: + REQUIRE( itDoesThis() ) +with expansion: + true + +------------------------------------------------------------------------------- +Scenario: Do that thing with the thing + Given: This stuff exists + When: I do this + Then: it should do this +------------------------------------------------------------------------------- +BDDTests.cpp +............................................................................... + BDDTests.cpp: PASSED: REQUIRE( itDoesThis() ) @@ -5929,6 +6558,100 @@ Scenario: Vector resizing affects size and capacity BDDTests.cpp ............................................................................... +BDDTests.cpp: +PASSED: + REQUIRE( v.size() == 0 ) +with expansion: + 0 == 0 + +------------------------------------------------------------------------------- +Scenario: Vector resizing affects size and capacity + Given: an empty vector +------------------------------------------------------------------------------- +BDDTests.cpp +............................................................................... + +BDDTests.cpp: +PASSED: + REQUIRE( v.size() == 0 ) +with expansion: + 0 == 0 + +------------------------------------------------------------------------------- +Scenario: Vector resizing affects size and capacity + Given: an empty vector +------------------------------------------------------------------------------- +BDDTests.cpp +............................................................................... + +BDDTests.cpp: +PASSED: + REQUIRE( v.size() == 0 ) +with expansion: + 0 == 0 + +------------------------------------------------------------------------------- +Scenario: Vector resizing affects size and capacity + Given: an empty vector + When: it is made larger + Then: the size and capacity go up +------------------------------------------------------------------------------- +BDDTests.cpp +............................................................................... + +BDDTests.cpp: +PASSED: + REQUIRE( v.size() == 10 ) +with expansion: + 10 == 10 + +BDDTests.cpp: +PASSED: + REQUIRE( v.capacity() >= 10 ) +with expansion: + 10 >= 10 + +------------------------------------------------------------------------------- +Scenario: Vector resizing affects size and capacity + Given: an empty vector +------------------------------------------------------------------------------- +BDDTests.cpp +............................................................................... + +BDDTests.cpp: +PASSED: + REQUIRE( v.size() == 0 ) +with expansion: + 0 == 0 + +------------------------------------------------------------------------------- +Scenario: Vector resizing affects size and capacity + Given: an empty vector + When: it is made larger + Then: the size and capacity go up +------------------------------------------------------------------------------- +BDDTests.cpp +............................................................................... + +BDDTests.cpp: +PASSED: + REQUIRE( v.size() == 10 ) +with expansion: + 10 == 10 + +BDDTests.cpp: +PASSED: + REQUIRE( v.capacity() >= 10 ) +with expansion: + 10 >= 10 + +------------------------------------------------------------------------------- +Scenario: Vector resizing affects size and capacity + Given: an empty vector +------------------------------------------------------------------------------- +BDDTests.cpp +............................................................................... + BDDTests.cpp: PASSED: REQUIRE( v.size() == 0 ) @@ -5986,74 +6709,6 @@ Scenario: Vector resizing affects size and capacity BDDTests.cpp ............................................................................... -BDDTests.cpp: -PASSED: - REQUIRE( v.size() == 0 ) -with expansion: - 0 == 0 - -------------------------------------------------------------------------------- -Scenario: Vector resizing affects size and capacity - Given: an empty vector - When: it is made larger - Then: the size and capacity go up -------------------------------------------------------------------------------- -BDDTests.cpp -............................................................................... - -BDDTests.cpp: -PASSED: - REQUIRE( v.size() == 10 ) -with expansion: - 10 == 10 - -BDDTests.cpp: -PASSED: - REQUIRE( v.capacity() >= 10 ) -with expansion: - 10 >= 10 - -------------------------------------------------------------------------------- -Scenario: Vector resizing affects size and capacity - Given: an empty vector -------------------------------------------------------------------------------- -BDDTests.cpp -............................................................................... - -BDDTests.cpp: -PASSED: - REQUIRE( v.size() == 0 ) -with expansion: - 0 == 0 - -------------------------------------------------------------------------------- -Scenario: Vector resizing affects size and capacity - Given: an empty vector - When: it is made larger - Then: the size and capacity go up -------------------------------------------------------------------------------- -BDDTests.cpp -............................................................................... - -BDDTests.cpp: -PASSED: - REQUIRE( v.size() == 10 ) -with expansion: - 10 == 10 - -BDDTests.cpp: -PASSED: - REQUIRE( v.capacity() >= 10 ) -with expansion: - 10 >= 10 - -------------------------------------------------------------------------------- -Scenario: Vector resizing affects size and capacity - Given: an empty vector -------------------------------------------------------------------------------- -BDDTests.cpp -............................................................................... - BDDTests.cpp: PASSED: REQUIRE( v.size() == 0 ) @@ -6311,14 +6966,246 @@ PASSED: with expansion: "3rd" == "3rd" +------------------------------------------------------------------------------- +section tracking +------------------------------------------------------------------------------- +SectionTrackerTests.cpp +............................................................................... + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.isCompleted() ) +with expansion: + !false + +------------------------------------------------------------------------------- +section tracking +------------------------------------------------------------------------------- +SectionTrackerTests.cpp +............................................................................... + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.isCompleted() ) +with expansion: + !false + +------------------------------------------------------------------------------- +section tracking + test case with no sections +------------------------------------------------------------------------------- +SectionTrackerTests.cpp +............................................................................... + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.isCompleted() ) +with expansion: + !false + +SectionTrackerTests.cpp: +PASSED: + CHECK( testCaseTracker.isCompleted() ) +with expansion: + true + +------------------------------------------------------------------------------- +section tracking +------------------------------------------------------------------------------- +SectionTrackerTests.cpp +............................................................................... + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.isCompleted() ) +with expansion: + !false + +------------------------------------------------------------------------------- +section tracking + test case with one section +------------------------------------------------------------------------------- +SectionTrackerTests.cpp +............................................................................... + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.enterSection( section1Name ) ) +with expansion: + !false + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.isCompleted() ) +with expansion: + !false + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.isCompleted() ) +with expansion: + !false + +SectionTrackerTests.cpp: +PASSED: + CHECK( testCaseTracker.enterSection( section1Name ) ) +with expansion: + true + +SectionTrackerTests.cpp: +PASSED: + CHECK( testCaseTracker.isCompleted() ) +with expansion: + true + +------------------------------------------------------------------------------- +section tracking +------------------------------------------------------------------------------- +SectionTrackerTests.cpp +............................................................................... + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.isCompleted() ) +with expansion: + !false + +------------------------------------------------------------------------------- +section tracking + test case with two consecutive sections +------------------------------------------------------------------------------- +SectionTrackerTests.cpp +............................................................................... + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.enterSection( section1Name ) ) +with expansion: + !false + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.enterSection( section2Name ) ) +with expansion: + !false + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.isCompleted() ) +with expansion: + !false + +SectionTrackerTests.cpp: +PASSED: + CHECK( testCaseTracker.enterSection( section1Name ) ) +with expansion: + true + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.enterSection( section2Name ) ) +with expansion: + !false + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.isCompleted() ) +with expansion: + !false + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.enterSection( section1Name ) ) +with expansion: + !false + +SectionTrackerTests.cpp: +PASSED: + CHECK( testCaseTracker.enterSection( section2Name ) ) +with expansion: + true + +SectionTrackerTests.cpp: +PASSED: + CHECK( testCaseTracker.isCompleted() ) +with expansion: + true + +------------------------------------------------------------------------------- +section tracking +------------------------------------------------------------------------------- +SectionTrackerTests.cpp +............................................................................... + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.isCompleted() ) +with expansion: + !false + +------------------------------------------------------------------------------- +section tracking + test case with one section within another +------------------------------------------------------------------------------- +SectionTrackerTests.cpp +............................................................................... + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.enterSection( section1Name ) ) +with expansion: + !false + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.isCompleted() ) +with expansion: + !false + +SectionTrackerTests.cpp: +PASSED: + CHECK( testCaseTracker.enterSection( section1Name ) ) +with expansion: + true + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.enterSection( section2Name ) ) +with expansion: + !false + +SectionTrackerTests.cpp: +PASSED: + CHECK_FALSE( testCaseTracker.isCompleted() ) +with expansion: + !false + +SectionTrackerTests.cpp: +PASSED: + CHECK( testCaseTracker.enterSection( section1Name ) ) +with expansion: + true + +SectionTrackerTests.cpp: +PASSED: + CHECK( testCaseTracker.enterSection( section2Name ) ) +with expansion: + true + +SectionTrackerTests.cpp: +PASSED: + CHECK( testCaseTracker.isCompleted() ) +with expansion: + true + =============================================================================== -119 test cases - 49 failed (712 assertions - 106 failed) +121 test cases - 50 failed (756 assertions - 109 failed) No test cases matched '~dummy 4' No tests ran - + @@ -6756,6 +7643,17 @@ MiscTests.cpp + + +MiscTests.cpp + + +MiscTests.cpp + + +MiscTests.cpp + + Message from section one @@ -6831,6 +7729,7 @@ TrickyTests.cpp + Message from section one @@ -9762,6 +10661,25 @@ An error +
+ + + a != b + + + 1 != 2 + + + + + b != a + + + 2 != 1 + + + +
@@ -9795,6 +10713,9 @@ An error +
+ +
@@ -9840,6 +10761,9 @@ An error +
+ +
@@ -9852,9 +10776,6 @@ An error
-
- -
@@ -10298,6 +11219,22 @@ An error
+ + + v.size() == 5 + + + 5 == 5 + + + + + v.capacity() >= 5 + + + 5 >= 5 + + v.size() == 5 @@ -10366,18 +11303,7 @@ An error 5 >= 5 -
- - - v.capacity() == 0 - - - 0 == 0 - - - -
- +
@@ -10412,7 +11338,18 @@ An error 5 >= 5 - +
+ + + v.capacity() == 0 + + + 0 == 0 + + + +
+
@@ -10486,12 +11423,36 @@ An error
+ + + to infinity and beyond + +
+ +
+ + to infinity and beyond + +
+
+ +
+ +
+ + to infinity and beyond + + +
+
+ +
- +
- +
@@ -10499,17 +11460,17 @@ An error
-
+
- totals.assertions.passed == 296 + totals.assertions.passed == 298 - 296 == 296 + 298 == 298 @@ -10528,18 +11489,18 @@ An error
- totals.assertions.passed == 1 + totals.assertions.passed == 2 - 1 == 1 + 2 == 2 - totals.assertions.failed == 74 + totals.assertions.failed == 77 - 74 == 74 + 77 == 77 @@ -10611,6 +11572,9 @@ An error
+
+ +
@@ -10771,7 +11735,7 @@ An error
-
+
@@ -10840,7 +11804,7 @@ An error
-
+
@@ -10887,7 +11851,7 @@ An error
-
+
@@ -10962,7 +11926,7 @@ An error
-
+
@@ -11009,7 +11973,7 @@ An error
-
+
@@ -11056,7 +12020,7 @@ An error
-
+
@@ -11498,6 +12462,9 @@ An error +
+ +
@@ -11824,7 +12791,7 @@ ur"
-
+
@@ -11977,9 +12944,6 @@ four"
-
- -
@@ -12253,6 +13217,33 @@ there" + + + Catch::isTrue( true ) + + + true + + + + + Catch::isTrue( true ) + + + true + + +
+ + + Catch::isTrue( true ) + + + true + + + +
Catch::isTrue( true ) @@ -12381,6 +13372,32 @@ there"
+
+ +
+
+
+ +
+ +
+
+
+
+ + + itDoesThis() + + + true + + + +
+ +
+ +
@@ -12412,6 +13429,31 @@ there" +
+ + + v.size() == 0 + + + 0 == 0 + + + +
+
+ + + v.size() == 0 + + + 0 == 0 + + +
+ +
+ +
@@ -12439,33 +13481,11 @@ there" 10 >= 10 -
-
- - - v.size() == 5 - - - 5 == 5 - - - - - v.capacity() >= 10 - - - 10 >= 10 - - - -
- -
- +
- +
- +
@@ -12530,11 +13550,33 @@ there" 10 >= 10 - +
+
+ + + v.size() == 5 + + + 5 == 5 + + + + + v.capacity() >= 10 + + + 10 >= 10 + + + +
+ +
+
- +
- +
@@ -12545,7 +13587,7 @@ there" 0 == 0 -
+
@@ -12586,6 +13628,15 @@ there" +
+ +
+
+
+ +
+ +
@@ -12710,6 +13761,9 @@ there"
+
+ +
@@ -12738,7 +13792,7 @@ there"
-
+
@@ -12769,9 +13823,6 @@ there"
-
- -
@@ -12801,46 +13852,310 @@ there"
- + + + + !testCaseTracker.isCompleted() + + + !false + + + + + !testCaseTracker.isCompleted() + + + !false + + +
+ + + !testCaseTracker.isCompleted() + + + !false + + + + + testCaseTracker.isCompleted() + + + true + + + +
+ + + !testCaseTracker.isCompleted() + + + !false + + +
+ + + !testCaseTracker.enterSection( section1Name ) + + + !false + + + + + !testCaseTracker.isCompleted() + + + !false + + + + + !testCaseTracker.isCompleted() + + + !false + + + + + testCaseTracker.enterSection( section1Name ) + + + true + + + + + testCaseTracker.isCompleted() + + + true + + + +
+ + + !testCaseTracker.isCompleted() + + + !false + + +
+ + + !testCaseTracker.enterSection( section1Name ) + + + !false + + + + + !testCaseTracker.enterSection( section2Name ) + + + !false + + + + + !testCaseTracker.isCompleted() + + + !false + + + + + testCaseTracker.enterSection( section1Name ) + + + true + + + + + !testCaseTracker.enterSection( section2Name ) + + + !false + + + + + !testCaseTracker.isCompleted() + + + !false + + + + + !testCaseTracker.enterSection( section1Name ) + + + !false + + + + + testCaseTracker.enterSection( section2Name ) + + + true + + + + + testCaseTracker.isCompleted() + + + true + + + +
+ + + !testCaseTracker.isCompleted() + + + !false + + +
+ + + !testCaseTracker.enterSection( section1Name ) + + + !false + + + + + !testCaseTracker.isCompleted() + + + !false + + + + + testCaseTracker.enterSection( section1Name ) + + + true + + + + + !testCaseTracker.enterSection( section2Name ) + + + !false + + + + + !testCaseTracker.isCompleted() + + + !false + + + + + testCaseTracker.enterSection( section1Name ) + + + true + + + + + testCaseTracker.enterSection( section2Name ) + + + true + + + + + testCaseTracker.isCompleted() + + + true + + + +
+ +
+ - + [Started testing: CatchSelfTest] [Started group: '~dummy'] [Running: ./succeeding/Approx/simple] + +[Started section: './succeeding/Approx/simple'] ApproxTests.cpp: d == Approx( 1.23 ) succeeded for: 1.23 == Approx( 1.23 ) ApproxTests.cpp: d != Approx( 1.22 ) succeeded for: 1.23 != Approx( 1.22 ) ApproxTests.cpp: d != Approx( 1.24 ) succeeded for: 1.23 != Approx( 1.24 ) ApproxTests.cpp: Approx( d ) == 1.23 succeeded for: Approx( 1.23 ) == 1.23 ApproxTests.cpp: Approx( d ) != 1.22 succeeded for: Approx( 1.23 ) != 1.22 ApproxTests.cpp: Approx( d ) != 1.24 succeeded for: Approx( 1.23 ) != 1.24 +[End of section: './succeeding/Approx/simple' 0 assertions passed] + [Finished: './succeeding/Approx/simple' All tests passed (6 assertions in 1 test case)] [Running: ./succeeding/Approx/epsilon] +[Started section: './succeeding/Approx/epsilon'] ApproxTests.cpp: d != Approx( 1.231 ) succeeded for: 1.23 != Approx( 1.231 ) ApproxTests.cpp: d == Approx( 1.231 ).epsilon( 0.1 ) succeeded for: 1.23 == Approx( 1.231 ) +[End of section: './succeeding/Approx/epsilon' 0 assertions passed] + [Finished: './succeeding/Approx/epsilon' All tests passed (2 assertions in 1 test case)] [Running: ./succeeding/Approx/float] +[Started section: './succeeding/Approx/float'] ApproxTests.cpp: 1.23f == Approx( 1.23f ) succeeded for: 1.23 == Approx( 1.23 ) ApproxTests.cpp: 0.0f == Approx( 0.0f ) succeeded for: 0 == Approx( 0 ) +[End of section: './succeeding/Approx/float' 0 assertions passed] + [Finished: './succeeding/Approx/float' All tests passed (2 assertions in 1 test case)] [Running: ./succeeding/Approx/int] +[Started section: './succeeding/Approx/int'] ApproxTests.cpp: 1 == Approx( 1 ) succeeded ApproxTests.cpp: 0 == Approx( 0 ) succeeded +[End of section: './succeeding/Approx/int' 0 assertions passed] + [Finished: './succeeding/Approx/int' All tests passed (2 assertions in 1 test case)] [Running: ./succeeding/Approx/mixed] +[Started section: './succeeding/Approx/mixed'] ApproxTests.cpp: 1.0f == Approx( 1 ) succeeded for: 1 == Approx( 1 ) ApproxTests.cpp: 0 == Approx( dZero) succeeded for: 0 == Approx( 0 ) ApproxTests.cpp: 0 == Approx( dSmall ).epsilon( 0.001 ) succeeded for: 0 == Approx( 1e-05 ) ApproxTests.cpp: 1.234f == Approx( dMedium ) succeeded for: 1.234 == Approx( 1.234 ) ApproxTests.cpp: dMedium == Approx( 1.234f ) succeeded for: 1.234 == Approx( 1.234 ) +[End of section: './succeeding/Approx/mixed' 0 assertions passed] + [Finished: './succeeding/Approx/mixed' All tests passed (5 assertions in 1 test case)] [Running: ./succeeding/Approx/custom] +[Started section: './succeeding/Approx/custom'] ApproxTests.cpp: d == approx( 1.23 ) succeeded for: 1.23 == Approx( 1.23 ) ApproxTests.cpp: d == approx( 1.22 ) succeeded for: 1.23 == Approx( 1.22 ) ApproxTests.cpp: d == approx( 1.24 ) succeeded for: 1.23 == Approx( 1.24 ) @@ -12849,30 +14164,48 @@ ApproxTests.cpp: approx( d ) == 1.23 succeeded for: Approx( 1.23 ) == 1.23 ApproxTests.cpp: approx( d ) == 1.22 succeeded for: Approx( 1.23 ) == 1.22 ApproxTests.cpp: approx( d ) == 1.24 succeeded for: Approx( 1.23 ) == 1.24 ApproxTests.cpp: approx( d ) != 1.25 succeeded for: Approx( 1.23 ) != 1.25 +[End of section: './succeeding/Approx/custom' 0 assertions passed] + [Finished: './succeeding/Approx/custom' All tests passed (8 assertions in 1 test case)] [Running: Approximate PI] +[Started section: 'Approximate PI'] ApproxTests.cpp: divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) succeeded for: 3.142857142857143 == Approx( 3.141 ) ApproxTests.cpp: divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 ) succeeded for: 3.142857142857143 != Approx( 3.141 ) +[End of section: 'Approximate PI' 0 assertions passed] + [Finished: 'Approximate PI' All tests passed (2 assertions in 1 test case)] [Running: ./succeeding/TestClass/succeedingCase] +[Started section: './succeeding/TestClass/succeedingCase'] ClassTests.cpp: s == "hello" succeeded for: "hello" == "hello" +[End of section: './succeeding/TestClass/succeedingCase' 0 assertions passed] + [Finished: './succeeding/TestClass/succeedingCase' All tests passed (1 assertion in 1 test case)] [Running: ./failing/TestClass/failingCase] +[Started section: './failing/TestClass/failingCase'] ClassTests.cpp: s == "world" failed for: "hello" == "world" +[End of section: './failing/TestClass/failingCase' 0 assertions passed] + [Finished: './failing/TestClass/failingCase' 1 test case failed (1 assertion failed)] [Running: ./succeeding/Fixture/succeedingCase] +[Started section: './succeeding/Fixture/succeedingCase'] ClassTests.cpp: m_a == 1 succeeded for: 1 == 1 +[End of section: './succeeding/Fixture/succeedingCase' 0 assertions passed] + [Finished: './succeeding/Fixture/succeedingCase' All tests passed (1 assertion in 1 test case)] [Running: ./failing/Fixture/failingCase] +[Started section: './failing/Fixture/failingCase'] ClassTests.cpp: m_a == 2 failed for: 1 == 2 +[End of section: './failing/Fixture/failingCase' 0 assertions passed] + [Finished: './failing/Fixture/failingCase' 1 test case failed (1 assertion failed)] [Running: ./succeeding/conditions/equality] +[Started section: './succeeding/conditions/equality'] ConditionTests.cpp: data.int_seven == 7 succeeded for: 7 == 7 ConditionTests.cpp: data.float_nine_point_one == Approx( 9.1f ) succeeded for: 9.1 == Approx( 9.1 ) ConditionTests.cpp: data.double_pi == Approx( 3.1415926535 ) succeeded for: 3.1415926535 == Approx( 3.14159 ) @@ -12880,9 +14213,12 @@ ConditionTests.cpp: data.str_hello == "hello" succeeded for: "hello" == "hello" ConditionTests.cpp: "hello" == data.str_hello succeeded for: "hello" == "hello" ConditionTests.cpp: data.str_hello.size() == 5 succeeded for: 5 == 5 ConditionTests.cpp: x == Approx( 1.3 ) succeeded for: 1.3 == Approx( 1.3 ) +[End of section: './succeeding/conditions/equality' 0 assertions passed] + [Finished: './succeeding/conditions/equality' All tests passed (7 assertions in 1 test case)] [Running: ./failing/conditions/equality] +[Started section: './failing/conditions/equality'] ConditionTests.cpp: data.int_seven == 6 failed for: 7 == 6 ConditionTests.cpp: data.int_seven == 8 failed for: 7 == 8 ConditionTests.cpp: data.int_seven == 0 failed for: 7 == 0 @@ -12896,9 +14232,12 @@ ConditionTests.cpp: data.str_hello == "hell" failed for: "hello" == "hell" ConditionTests.cpp: data.str_hello == "hello1" failed for: "hello" == "hello1" ConditionTests.cpp: data.str_hello.size() == 6 failed for: 5 == 6 ConditionTests.cpp: x == Approx( 1.301 ) failed for: 1.3 == Approx( 1.301 ) +[End of section: './failing/conditions/equality' 0 assertions passed] + [Finished: './failing/conditions/equality' 1 test case failed (All 13 assertions failed)] [Running: ./succeeding/conditions/inequality] +[Started section: './succeeding/conditions/inequality'] ConditionTests.cpp: data.int_seven != 6 succeeded for: 7 != 6 ConditionTests.cpp: data.int_seven != 8 succeeded for: 7 != 8 ConditionTests.cpp: data.float_nine_point_one != Approx( 9.11f ) succeeded for: 9.1 != Approx( 9.11 ) @@ -12910,17 +14249,23 @@ ConditionTests.cpp: data.str_hello != "goodbye" succeeded for: "hello" != "goodb ConditionTests.cpp: data.str_hello != "hell" succeeded for: "hello" != "hell" ConditionTests.cpp: data.str_hello != "hello1" succeeded for: "hello" != "hello1" ConditionTests.cpp: data.str_hello.size() != 6 succeeded for: 5 != 6 +[End of section: './succeeding/conditions/inequality' 0 assertions passed] + [Finished: './succeeding/conditions/inequality' All tests passed (11 assertions in 1 test case)] [Running: ./failing/conditions/inequality] +[Started section: './failing/conditions/inequality'] ConditionTests.cpp: data.int_seven != 7 failed for: 7 != 7 ConditionTests.cpp: data.float_nine_point_one != Approx( 9.1f ) failed for: 9.1 != Approx( 9.1 ) ConditionTests.cpp: data.double_pi != Approx( 3.1415926535 ) failed for: 3.1415926535 != Approx( 3.14159 ) ConditionTests.cpp: data.str_hello != "hello" failed for: "hello" != "hello" ConditionTests.cpp: data.str_hello.size() != 5 failed for: 5 != 5 +[End of section: './failing/conditions/inequality' 0 assertions passed] + [Finished: './failing/conditions/inequality' 1 test case failed (All 5 assertions failed)] [Running: ./succeeding/conditions/ordered] +[Started section: './succeeding/conditions/ordered'] ConditionTests.cpp: data.int_seven < 8 succeeded for: 7 < 8 ConditionTests.cpp: data.int_seven > 6 succeeded for: 7 > 6 ConditionTests.cpp: data.int_seven > 0 succeeded for: 7 > 0 @@ -12938,9 +14283,12 @@ ConditionTests.cpp: data.str_hello < "hellp" succeeded for: "hello" < "hellp" ConditionTests.cpp: data.str_hello < "zebra" succeeded for: "hello" < "zebra" ConditionTests.cpp: data.str_hello > "hellm" succeeded for: "hello" > "hellm" ConditionTests.cpp: data.str_hello > "a" succeeded for: "hello" > "a" +[End of section: './succeeding/conditions/ordered' 0 assertions passed] + [Finished: './succeeding/conditions/ordered' All tests passed (17 assertions in 1 test case)] [Running: ./failing/conditions/ordered] +[Started section: './failing/conditions/ordered'] ConditionTests.cpp: data.int_seven > 7 failed for: 7 > 7 ConditionTests.cpp: data.int_seven < 7 failed for: 7 < 7 ConditionTests.cpp: data.int_seven > 8 failed for: 7 > 8 @@ -12960,9 +14308,12 @@ ConditionTests.cpp: data.str_hello < "hellm" failed for: "hello" < "hellm" ConditionTests.cpp: data.str_hello < "a" failed for: "hello" < "a" ConditionTests.cpp: data.str_hello >= "z" failed for: "hello" >= "z" ConditionTests.cpp: data.str_hello <= "a" failed for: "hello" <= "a" +[End of section: './failing/conditions/ordered' 0 assertions passed] + [Finished: './failing/conditions/ordered' 1 test case failed (All 19 assertions failed)] [Running: ./succeeding/conditions/int literals] +[Started section: './succeeding/conditions/int literals'] ConditionTests.cpp: i == 1 succeeded for: 1 == 1 ConditionTests.cpp: ui == 2 succeeded for: 2 == 2 ConditionTests.cpp: l == 3 succeeded for: 3 == 3 @@ -12976,36 +14327,51 @@ ConditionTests.cpp: 4 == ul succeeded for: 4 == 4 ConditionTests.cpp: 5 == c succeeded for: 5 == 5 ConditionTests.cpp: 6 == uc succeeded for: 6 == 6 ConditionTests.cpp: (std::numeric_limits::max)() > ul succeeded for: 0x > 4 +[End of section: './succeeding/conditions/int literals' 0 assertions passed] + [Finished: './succeeding/conditions/int literals' All tests passed (13 assertions in 1 test case)] [Running: ./succeeding/conditions//long_to_unsigned_x] +[Started section: './succeeding/conditions//long_to_unsigned_x'] ConditionTests.cpp: long_var == unsigned_char_var succeeded for: 1 == 1 ConditionTests.cpp: long_var == unsigned_short_var succeeded for: 1 == 1 ConditionTests.cpp: long_var == unsigned_int_var succeeded for: 1 == 1 ConditionTests.cpp: long_var == unsigned_long_var succeeded for: 1 == 1 +[End of section: './succeeding/conditions//long_to_unsigned_x' 0 assertions passed] + [Finished: './succeeding/conditions//long_to_unsigned_x' All tests passed (4 assertions in 1 test case)] [Running: ./succeeding/conditions/const ints to int literal] +[Started section: './succeeding/conditions/const ints to int literal'] ConditionTests.cpp: unsigned_char_var == 1 succeeded for: 1 == 1 ConditionTests.cpp: unsigned_short_var == 1 succeeded for: 1 == 1 ConditionTests.cpp: unsigned_int_var == 1 succeeded for: 1 == 1 ConditionTests.cpp: unsigned_long_var == 1 succeeded for: 1 == 1 +[End of section: './succeeding/conditions/const ints to int literal' 0 assertions passed] + [Finished: './succeeding/conditions/const ints to int literal' All tests passed (4 assertions in 1 test case)] [Running: ./succeeding/conditions/negative ints] +[Started section: './succeeding/conditions/negative ints'] ConditionTests.cpp: ( -1 > 2u ) succeeded for: true ConditionTests.cpp: -1 > 2u succeeded for: -1 > 2 ConditionTests.cpp: ( 2u < -1 ) succeeded for: true ConditionTests.cpp: 2u < -1 succeeded for: 2 < -1 ConditionTests.cpp: ( minInt > 2u ) succeeded for: true ConditionTests.cpp: minInt > 2u succeeded for: -2147483648 > 2 +[End of section: './succeeding/conditions/negative ints' 0 assertions passed] + [Finished: './succeeding/conditions/negative ints' All tests passed (6 assertions in 1 test case)] [Running: ./succeeding/conditions/computed ints] +[Started section: './succeeding/conditions/computed ints'] ConditionTests.cpp: 54 == 6*9 succeeded for: 54 == 54 +[End of section: './succeeding/conditions/computed ints' 0 assertions passed] + [Finished: './succeeding/conditions/computed ints' All tests passed (1 assertion in 1 test case)] [Running: ./succeeding/conditions/ptr] +[Started section: './succeeding/conditions/ptr'] ConditionTests.cpp: p == __null succeeded for: __null == 0 ConditionTests.cpp: p == pNULL succeeded for: __null == __null ConditionTests.cpp: p != __null succeeded for: 0x != 0 @@ -13014,9 +14380,12 @@ ConditionTests.cpp: cpc != __null succeeded for: 0x != 0 ConditionTests.cpp: returnsNull() == __null succeeded for: {null string} == 0 ConditionTests.cpp: returnsConstNull() == __null succeeded for: {null string} == 0 ConditionTests.cpp: __null != p succeeded for: 0 != 0x +[End of section: './succeeding/conditions/ptr' 0 assertions passed] + [Finished: './succeeding/conditions/ptr' All tests passed (8 assertions in 1 test case)] [Running: ./succeeding/conditions/not] +[Started section: './succeeding/conditions/not'] ConditionTests.cpp: false == false succeeded ConditionTests.cpp: true == true succeeded ConditionTests.cpp: !false succeeded for: true @@ -13025,9 +14394,12 @@ ConditionTests.cpp: !falseValue succeeded for: true ConditionTests.cpp: !falseValue succeeded for: !false ConditionTests.cpp: !(1 == 2) succeeded for: true ConditionTests.cpp: !1 == 2 succeeded for: !(1 == 2) +[End of section: './succeeding/conditions/not' 0 assertions passed] + [Finished: './succeeding/conditions/not' All tests passed (8 assertions in 1 test case)] [Running: ./failing/conditions/not] +[Started section: './failing/conditions/not'] ConditionTests.cpp: false != false failed ConditionTests.cpp: true != true failed ConditionTests.cpp: !true failed for: false @@ -13036,39 +14408,58 @@ ConditionTests.cpp: !trueValue failed for: false ConditionTests.cpp: !trueValue failed for: !true ConditionTests.cpp: !(1 == 1) failed for: false ConditionTests.cpp: !1 == 1 failed for: !(1 == 1) +[End of section: './failing/conditions/not' 0 assertions passed] + [Finished: './failing/conditions/not' 1 test case failed (All 8 assertions failed)] [Running: ./succeeding/exceptions/explicit] +[Started section: './succeeding/exceptions/explicit'] ExceptionTests.cpp: thisThrows() succeeded ExceptionTests.cpp: thisDoesntThrow() succeeded ExceptionTests.cpp: thisThrows() succeeded +[End of section: './succeeding/exceptions/explicit' 0 assertions passed] + [Finished: './succeeding/exceptions/explicit' All tests passed (3 assertions in 1 test case)] [Running: ./failing/exceptions/explicit] +[Started section: './failing/exceptions/explicit'] ExceptionTests.cpp: thisThrows() failed with unexpected exception with message: 'expected exception' ExceptionTests.cpp: thisDoesntThrow() failed because no exception was thrown where one was expected ExceptionTests.cpp: thisThrows() failed with unexpected exception with message: 'expected exception' +[End of section: './failing/exceptions/explicit' 0 assertions passed] + [Finished: './failing/exceptions/explicit' 1 test case failed (All 3 assertions failed)] [Running: ./failing/exceptions/implicit] +[Started section: './failing/exceptions/implicit'] ExceptionTests.cpp: Unexpected exception with message: 'unexpected exception' +[End of section: './failing/exceptions/implicit' 0 assertions passed] + [Finished: './failing/exceptions/implicit' 1 test case failed (1 assertion failed)] [Running: ./failing/exceptions/implicit/2] +[Started section: './failing/exceptions/implicit/2'] ExceptionTests.cpp: 1 == 1 succeeded ExceptionTests.cpp: {Unknown expression after the reported line} failed with unexpected exception with message: 'unexpected exception' +[End of section: './failing/exceptions/implicit/2' 0 assertions passed] + [Finished: './failing/exceptions/implicit/2' 1 test case failed (1 of 2 assertions failed)] [Running: ./failing/exceptions/implicit/3] - +[Started section: './failing/exceptions/implicit/3'] [Started section: 'section name'] ExceptionTests.cpp: Unexpected exception with message: 'unexpected exception' [End of section: 'section name' 1 assertion failed] +[End of section: './failing/exceptions/implicit/3' 0 assertions passed] + [Finished: './failing/exceptions/implicit/3' 1 test case failed (1 assertion failed)] [Running: ./failing/exceptions/implicit/4] +[Started section: './failing/exceptions/implicit/4'] ExceptionTests.cpp: thisThrows() == 0 failed with unexpected exception with message: 'expected exception' +[End of section: './failing/exceptions/implicit/4' 0 assertions passed] + [Finished: './failing/exceptions/implicit/4' 1 test case failed (1 assertion failed)] [Running: ./succeeding/exceptions/implicit] @@ -13078,238 +14469,503 @@ No assertions in test case, './succeeding/exceptions/implicit' [Finished: './succeeding/exceptions/implicit' 1 test case failed (1 assertion failed)] [Running: ./failing/exceptions/custom] +[Started section: './failing/exceptions/custom'] ExceptionTests.cpp: Unexpected exception with message: 'custom exception' +[End of section: './failing/exceptions/custom' 0 assertions passed] + [Finished: './failing/exceptions/custom' 1 test case failed (1 assertion failed)] [Running: ./failing/exceptions/custom/nothrow] +[Started section: './failing/exceptions/custom/nothrow'] ExceptionTests.cpp: throwCustom() failed with unexpected exception with message: 'custom exception - not std' +[End of section: './failing/exceptions/custom/nothrow' 0 assertions passed] + [Finished: './failing/exceptions/custom/nothrow' 1 test case failed (1 assertion failed)] [Running: ./failing/exceptions/custom/throw] +[Started section: './failing/exceptions/custom/throw'] ExceptionTests.cpp: throwCustom() failed with unexpected exception with message: 'custom exception - not std' +[End of section: './failing/exceptions/custom/throw' 0 assertions passed] + [Finished: './failing/exceptions/custom/throw' 1 test case failed (1 assertion failed)] [Running: ./failing/exceptions/custom/double] +[Started section: './failing/exceptions/custom/double'] ExceptionTests.cpp: Unexpected exception with message: '3.14' +[End of section: './failing/exceptions/custom/double' 0 assertions passed] + [Finished: './failing/exceptions/custom/double' 1 test case failed (1 assertion failed)] [Running: ./succeeding/exceptions/notimplemented] +[Started section: './succeeding/exceptions/notimplemented'] ExceptionTests.cpp: thisFunctionNotImplemented( 7 ) succeeded +[End of section: './succeeding/exceptions/notimplemented' 0 assertions passed] + [Finished: './succeeding/exceptions/notimplemented' All tests passed (1 assertion in 1 test case)] [Running: ./succeeding/generators/1] +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 2 == 2 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 200 == 200 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 4 == 4 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 200 == 200 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 6 == 6 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 200 == 200 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 8 == 8 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 200 == 200 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 10 == 10 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 200 == 200 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 30 == 30 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 200 == 200 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 40 == 40 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 200 == 200 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 42 == 42 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 200 == 200 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 72 == 72 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 200 == 200 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 2 == 2 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 202 == 202 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 4 == 4 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 202 == 202 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 6 == 6 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 202 == 202 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 8 == 8 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 202 == 202 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 10 == 10 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 202 == 202 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 30 == 30 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 202 == 202 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 40 == 40 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 202 == 202 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 42 == 42 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 202 == 202 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 72 == 72 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 202 == 202 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 2 == 2 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 204 == 204 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 4 == 4 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 204 == 204 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 6 == 6 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 204 == 204 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 8 == 8 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 204 == 204 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 10 == 10 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 204 == 204 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 30 == 30 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 204 == 204 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 40 == 40 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 204 == 204 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 42 == 42 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 204 == 204 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 72 == 72 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 204 == 204 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 2 == 2 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 206 == 206 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 4 == 4 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 206 == 206 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 6 == 6 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 206 == 206 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 8 == 8 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 206 == 206 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 10 == 10 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 206 == 206 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 30 == 30 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 206 == 206 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 40 == 40 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 206 == 206 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 42 == 42 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 206 == 206 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 72 == 72 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 206 == 206 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 2 == 2 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 208 == 208 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 4 == 4 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 208 == 208 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 6 == 6 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 208 == 208 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 8 == 8 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 208 == 208 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 10 == 10 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 208 == 208 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 30 == 30 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 208 == 208 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 40 == 40 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 208 == 208 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 42 == 42 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 208 == 208 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 72 == 72 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 208 == 208 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 2 == 2 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 210 == 210 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 4 == 4 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 210 == 210 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 6 == 6 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 210 == 210 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 8 == 8 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 210 == 210 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 10 == 10 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 210 == 210 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 30 == 30 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 210 == 210 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 40 == 40 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 210 == 210 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 42 == 42 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 210 == 210 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 72 == 72 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 210 == 210 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 2 == 2 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 212 == 212 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 4 == 4 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 212 == 212 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 6 == 6 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 212 == 212 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 8 == 8 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 212 == 212 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 10 == 10 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 212 == 212 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 30 == 30 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 212 == 212 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 40 == 40 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 212 == 212 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 42 == 42 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 212 == 212 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 72 == 72 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 212 == 212 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 2 == 2 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 214 == 214 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 4 == 4 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 214 == 214 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 6 == 6 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 214 == 214 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 8 == 8 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 214 == 214 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 10 == 10 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 214 == 214 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 30 == 30 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 214 == 214 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 40 == 40 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 214 == 214 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 42 == 42 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 214 == 214 +[End of section: './succeeding/generators/1' 0 assertions passed] + +[Started section: './succeeding/generators/1'] GeneratorTests.cpp: multiply( i, 2 ) == i*2 succeeded for: 72 == 72 GeneratorTests.cpp: multiply( j, 2 ) == j*2 succeeded for: 214 == 214 +[End of section: './succeeding/generators/1' 0 assertions passed] + [Finished: './succeeding/generators/1' All tests passed (144 assertions in 1 test case)] [Running: ./succeeding/generators/2] +[Started section: './succeeding/generators/2'] GeneratorTests.cpp: i->first == i->second-1 succeeded for: 0 == 0 +[End of section: './succeeding/generators/2' 0 assertions passed] + +[Started section: './succeeding/generators/2'] GeneratorTests.cpp: i->first == i->second-1 succeeded for: 2 == 2 +[End of section: './succeeding/generators/2' 0 assertions passed] + [Finished: './succeeding/generators/2' All tests passed (2 assertions in 1 test case)] [Running: ./succeeding/message] +[Started section: './succeeding/message'] MessageTests.cpp: [info: this is a message] MessageTests.cpp: [warning: this is a warning] +[End of section: './succeeding/message' 0 assertions passed] + No assertions in test case, './succeeding/message' [Finished: './succeeding/message' 1 test case failed (1 assertion failed)] [Running: ./succeeding/succeed] +[Started section: './succeeding/succeed'] MessageTests.cpp: succeeded [with message: this is a success] +[End of section: './succeeding/succeed' 0 assertions passed] + [Finished: './succeeding/succeed' All tests passed (1 assertion in 1 test case)] [Running: ./failing/message/info/1] +[Started section: './failing/message/info/1'] MessageTests.cpp: [info: this message should be logged] MessageTests.cpp: [info: so should this] MessageTests.cpp: a == 1 failed for: 2 == 1 +[End of section: './failing/message/info/1' 0 assertions passed] + [Finished: './failing/message/info/1' 1 test case failed (1 assertion failed)] [Running: ./mixed/message/info/2] +[Started section: './mixed/message/info/2'] MessageTests.cpp: a == 2 succeeded for: 2 == 2 MessageTests.cpp: [info: this message should be logged] MessageTests.cpp: a == 1 failed for: 2 == 1 MessageTests.cpp: [info: and this, but later] MessageTests.cpp: a == 0 failed for: 2 == 0 MessageTests.cpp: a == 2 succeeded for: 2 == 2 +[End of section: './mixed/message/info/2' 0 assertions passed] + [Finished: './mixed/message/info/2' 1 test case failed (2 of 4 assertions failed)] [Running: ./failing/message/fail] +[Started section: './failing/message/fail'] MessageTests.cpp: failed with message: 'This is a failure' +[End of section: './failing/message/fail' 0 assertions passed] + [Finished: './failing/message/fail' 1 test case failed (1 assertion failed)] [Running: ./failing/message/sections] +[Started section: './failing/message/sections'] [Started section: 'one'] MessageTests.cpp: failed with message: 'Message from section one' [End of section: 'one' 1 assertion failed] +[End of section: './failing/message/sections' 0 assertions passed] + +[Started section: './failing/message/sections'] [Started section: 'two'] MessageTests.cpp: failed with message: 'Message from section two' [End of section: 'two' 1 assertion failed] +[End of section: './failing/message/sections' 0 assertions passed] + [Finished: './failing/message/sections' 1 test case failed (All 2 assertions failed)] Message from section one [Running: ./succeeding/message/sections/stdout] +[Started section: './succeeding/message/sections/stdout'] [Started section: 'one'] No assertions in section, 'one' [End of section: 'one' 1 assertion failed] +[End of section: './succeeding/message/sections/stdout' 0 assertions passed] + Message from section two +[Started section: './succeeding/message/sections/stdout'] [Started section: 'two'] No assertions in section, 'two' [End of section: 'two' 1 assertion failed] +[End of section: './succeeding/message/sections/stdout' 0 assertions passed] + [Finished: './succeeding/message/sections/stdout' 1 test case failed (All 2 assertions failed)] [Running: ./mixed/message/scoped] +[Started section: './mixed/message/scoped'] MessageTests.cpp: i < 10 succeeded for: 0 < 10 MessageTests.cpp: i < 10 succeeded for: 1 < 10 MessageTests.cpp: i < 10 succeeded for: 2 < 10 @@ -13323,10 +14979,15 @@ MessageTests.cpp: i < 10 succeeded for: 9 < 10 MessageTests.cpp: [info: current counter 10] MessageTests.cpp: [info: i := 10] MessageTests.cpp: i < 10 failed for: 10 < 10 +[End of section: './mixed/message/scoped' 0 assertions passed] + [Finished: './mixed/message/scoped' 1 test case failed (1 of 11 assertions failed)] [Running: ./succeeding/nofail] +[Started section: './succeeding/nofail'] MessageTests.cpp: 1 == 2 failed - but was ok +[End of section: './succeeding/nofail' 0 assertions passed] + No assertions in test case, './succeeding/nofail' @@ -13339,22 +15000,40 @@ No assertions in test case, 'just info' [Finished: 'just info' 1 test case failed (1 assertion failed)] [Running: just failure] +[Started section: 'just failure'] MessageTests.cpp: failed with message: 'Previous info should not be seen' +[End of section: 'just failure' 0 assertions passed] + [Finished: 'just failure' 1 test case failed (1 assertion failed)] [Running: ./succeeding/Misc/Sections] +[Started section: './succeeding/Misc/Sections'] [Started section: 's1'] MiscTests.cpp: a != b succeeded for: 1 != 2 MiscTests.cpp: b != a succeeded for: 2 != 1 [End of section: 's1' All 2 assertions passed] +[End of section: './succeeding/Misc/Sections' 0 assertions passed] + +[Started section: './succeeding/Misc/Sections'] [Started section: 's2'] MiscTests.cpp: a != b succeeded for: 1 != 2 [End of section: 's2' 1 assertion passed] +[End of section: './succeeding/Misc/Sections' 0 assertions passed] + [Finished: './succeeding/Misc/Sections' All tests passed (3 assertions in 1 test case)] [Running: ./succeeding/Misc/Sections/nested] +[Started section: './succeeding/Misc/Sections/nested'] +[Started section: 's1'] +MiscTests.cpp: a != b succeeded for: 1 != 2 +MiscTests.cpp: b != a succeeded for: 2 != 1 +[End of section: 's1' All 2 assertions passed] + +[End of section: './succeeding/Misc/Sections/nested' 0 assertions passed] + +[Started section: './succeeding/Misc/Sections/nested'] [Started section: 's1'] MiscTests.cpp: a != b succeeded for: 1 != 2 MiscTests.cpp: b != a succeeded for: 2 != 1 @@ -13364,9 +15043,12 @@ MiscTests.cpp: a != b succeeded for: 1 != 2 [End of section: 's1' All 3 assertions passed] -[Finished: './succeeding/Misc/Sections/nested' All tests passed (3 assertions in 1 test case)] +[End of section: './succeeding/Misc/Sections/nested' 0 assertions passed] + +[Finished: './succeeding/Misc/Sections/nested' All tests passed (5 assertions in 1 test case)] [Running: ./mixed/Misc/Sections/nested2] +[Started section: './mixed/Misc/Sections/nested2'] [Started section: 's1'] [Started section: 's2'] MiscTests.cpp: a == b failed for: 1 == 2 @@ -13374,6 +15056,9 @@ MiscTests.cpp: a == b failed for: 1 == 2 [End of section: 's1' 1 assertion failed] +[End of section: './mixed/Misc/Sections/nested2' 0 assertions passed] + +[Started section: './mixed/Misc/Sections/nested2'] [Started section: 's1'] [Started section: 's3'] MiscTests.cpp: a != b succeeded for: 1 != 2 @@ -13381,6 +15066,9 @@ MiscTests.cpp: a != b succeeded for: 1 != 2 [End of section: 's1' 1 assertion passed] +[End of section: './mixed/Misc/Sections/nested2' 0 assertions passed] + +[Started section: './mixed/Misc/Sections/nested2'] [Started section: 's1'] [Started section: 's4'] MiscTests.cpp: a < b succeeded for: 1 < 2 @@ -13388,9 +15076,12 @@ MiscTests.cpp: a < b succeeded for: 1 < 2 [End of section: 's1' 1 assertion passed] +[End of section: './mixed/Misc/Sections/nested2' 0 assertions passed] + [Finished: './mixed/Misc/Sections/nested2' 1 test case failed (1 of 3 assertions failed)] [Running: ./Sections/nested/a/b] +[Started section: './Sections/nested/a/b'] [Started section: 'c'] [Started section: 'd (leaf)'] @@ -13400,6 +15091,9 @@ No assertions in section, 'd (leaf)' [End of section: 'c' 1 assertion failed] +[End of section: './Sections/nested/a/b' 0 assertions passed] + +[Started section: './Sections/nested/a/b'] [Started section: 'c'] [Started section: 'e (leaf)'] @@ -13409,22 +15103,31 @@ No assertions in section, 'e (leaf)' [End of section: 'c' 1 assertion failed] +[End of section: './Sections/nested/a/b' 0 assertions passed] + +[Started section: './Sections/nested/a/b'] [Started section: 'f (leaf)'] No assertions in section, 'f (leaf)' [End of section: 'f (leaf)' 1 assertion failed] +[End of section: './Sections/nested/a/b' 0 assertions passed] + [Finished: './Sections/nested/a/b' 1 test case failed (All 3 assertions failed)] [Running: ./mixed/Misc/Sections/loops] +[Started section: './mixed/Misc/Sections/loops'] [Started section: 's1'] MiscTests.cpp: b > a failed for: 0 > 1 [End of section: 's1' 1 assertion failed] +[End of section: './mixed/Misc/Sections/loops' 0 assertions passed] + [Finished: './mixed/Misc/Sections/loops' 1 test case failed (1 assertion failed)] [Running: ./mixed/Misc/loops] +[Started section: './mixed/Misc/loops'] MiscTests.cpp: [info: Testing if fib[0] (1) is even] MiscTests.cpp: ( fib[i] % 2 ) == 0 failed for: 1 == 0 MiscTests.cpp: [info: Testing if fib[1] (1) is even] @@ -13439,6 +15142,8 @@ MiscTests.cpp: [info: Testing if fib[6] (13) is even] MiscTests.cpp: ( fib[i] % 2 ) == 0 failed for: 1 == 0 MiscTests.cpp: [info: Testing if fib[7] (21) is even] MiscTests.cpp: ( fib[i] % 2 ) == 0 failed for: 1 == 0 +[End of section: './mixed/Misc/loops' 0 assertions passed] + [Finished: './mixed/Misc/loops' 1 test case failed (6 of 8 assertions failed)] Some information An error @@ -13450,61 +15155,92 @@ No assertions in test case, './succeeding/Misc/stdout,stderr' [Finished: './succeeding/Misc/stdout,stderr' 1 test case failed (1 assertion failed)] [Running: ./succeeding/Misc/null strings] +[Started section: './succeeding/Misc/null strings'] MiscTests.cpp: makeString( false ) != static_cast(__null) succeeded for: "valid string" != {null string} MiscTests.cpp: makeString( true ) == static_cast(__null) succeeded for: {null string} == {null string} +[End of section: './succeeding/Misc/null strings' 0 assertions passed] + [Finished: './succeeding/Misc/null strings' All tests passed (2 assertions in 1 test case)] [Running: ./failing/info] +[Started section: './failing/info'] MiscTests.cpp: [info: hi] MiscTests.cpp: [info: i := 7] MiscTests.cpp: false failed +[End of section: './failing/info' 0 assertions passed] + [Finished: './failing/info' 1 test case failed (1 assertion failed)] [Running: ./succeeding/checkedif] +[Started section: './succeeding/checkedif'] MiscTests.cpp: flag succeeded for: true MiscTests.cpp: testCheckedIf( true ) succeeded for: true +[End of section: './succeeding/checkedif' 0 assertions passed] + [Finished: './succeeding/checkedif' All tests passed (2 assertions in 1 test case)] [Running: ./failing/checkedif] +[Started section: './failing/checkedif'] MiscTests.cpp: flag failed for: false MiscTests.cpp: testCheckedIf( false ) failed for: false +[End of section: './failing/checkedif' 0 assertions passed] + [Finished: './failing/checkedif' 1 test case failed (All 2 assertions failed)] [Running: ./succeeding/checkedelse] +[Started section: './succeeding/checkedelse'] MiscTests.cpp: flag succeeded for: true MiscTests.cpp: testCheckedElse( true ) succeeded for: true +[End of section: './succeeding/checkedelse' 0 assertions passed] + [Finished: './succeeding/checkedelse' All tests passed (2 assertions in 1 test case)] [Running: ./failing/checkedelse] +[Started section: './failing/checkedelse'] MiscTests.cpp: flag failed for: false MiscTests.cpp: testCheckedElse( false ) failed for: false +[End of section: './failing/checkedelse' 0 assertions passed] + [Finished: './failing/checkedelse' 1 test case failed (All 2 assertions failed)] [Running: ./misc/xmlentitycheck] +[Started section: './misc/xmlentitycheck'] [Started section: 'embedded xml'] No assertions in section, 'embedded xml' [End of section: 'embedded xml' 1 assertion failed] +[End of section: './misc/xmlentitycheck' 0 assertions passed] + +[Started section: './misc/xmlentitycheck'] [Started section: 'encoded chars'] No assertions in section, 'encoded chars' [End of section: 'encoded chars' 1 assertion failed] +[End of section: './misc/xmlentitycheck' 0 assertions passed] + [Finished: './misc/xmlentitycheck' 1 test case failed (All 2 assertions failed)] [Running: ./manual/onechar] +[Started section: './manual/onechar'] MiscTests.cpp: [info: 3] MiscTests.cpp: false failed +[End of section: './manual/onechar' 0 assertions passed] + [Finished: './manual/onechar' 1 test case failed (1 assertion failed)] [Running: ./succeeding/atomic if] +[Started section: './succeeding/atomic if'] MiscTests.cpp: x == 0 succeeded for: 0 == 0 +[End of section: './succeeding/atomic if' 0 assertions passed] + [Finished: './succeeding/atomic if' All tests passed (1 assertion in 1 test case)] [Running: ./succeeding/matchers] +[Started section: './succeeding/matchers'] MiscTests.cpp: testStringForMatching() Contains( "string" ) succeeded for: "this string contains 'abc' as a substring" contains: "string" MiscTests.cpp: testStringForMatching() Contains( "abc" ) succeeded for: @@ -13513,55 +15249,84 @@ MiscTests.cpp: testStringForMatching() StartsWith( "this" ) succeeded for: "this string contains 'abc' as a substring" starts with: "this" MiscTests.cpp: testStringForMatching() EndsWith( "substring" ) succeeded for: "this string contains 'abc' as a substring" ends with: "substring" +[End of section: './succeeding/matchers' 0 assertions passed] + [Finished: './succeeding/matchers' All tests passed (4 assertions in 1 test case)] [Running: ./failing/matchers/Contains] +[Started section: './failing/matchers/Contains'] MiscTests.cpp: testStringForMatching() Contains( "not there" ) failed for: "this string contains 'abc' as a substring" contains: "not there" +[End of section: './failing/matchers/Contains' 0 assertions passed] + [Finished: './failing/matchers/Contains' 1 test case failed (1 assertion failed)] [Running: ./failing/matchers/StartsWith] +[Started section: './failing/matchers/StartsWith'] MiscTests.cpp: testStringForMatching() StartsWith( "string" ) failed for: "this string contains 'abc' as a substring" starts with: "string" +[End of section: './failing/matchers/StartsWith' 0 assertions passed] + [Finished: './failing/matchers/StartsWith' 1 test case failed (1 assertion failed)] [Running: ./failing/matchers/EndsWith] +[Started section: './failing/matchers/EndsWith'] MiscTests.cpp: testStringForMatching() EndsWith( "this" ) failed for: "this string contains 'abc' as a substring" ends with: "this" +[End of section: './failing/matchers/EndsWith' 0 assertions passed] + [Finished: './failing/matchers/EndsWith' 1 test case failed (1 assertion failed)] [Running: ./failing/matchers/Equals] +[Started section: './failing/matchers/Equals'] MiscTests.cpp: testStringForMatching() Equals( "something else" ) failed for: "this string contains 'abc' as a substring" equals: "something else" +[End of section: './failing/matchers/Equals' 0 assertions passed] + [Finished: './failing/matchers/Equals' 1 test case failed (1 assertion failed)] [Running: string] +[Started section: 'string'] MiscTests.cpp: "" Equals(__null) succeeded for: "" equals: "" +[End of section: 'string' 0 assertions passed] + [Finished: 'string' All tests passed (1 assertion in 1 test case)] [Running: ./succeeding/matchers/AllOf] +[Started section: './succeeding/matchers/AllOf'] MiscTests.cpp: testStringForMatching() AllOf( Catch::Contains( "string" ), Catch::Contains( "abc" ) ) succeeded for: "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" ) +[End of section: './succeeding/matchers/AllOf' 0 assertions passed] + [Finished: './succeeding/matchers/AllOf' All tests passed (1 assertion in 1 test case)] [Running: ./succeeding/matchers/AnyOf] +[Started section: './succeeding/matchers/AnyOf'] MiscTests.cpp: testStringForMatching() AnyOf( Catch::Contains( "string" ), Catch::Contains( "not there" ) ) succeeded for: "this string contains 'abc' as a substring" ( contains: "string" or contains: "not there" ) MiscTests.cpp: testStringForMatching() AnyOf( Catch::Contains( "not there" ), Catch::Contains( "string" ) ) succeeded for: "this string contains 'abc' as a substring" ( contains: "not there" or contains: "string" ) +[End of section: './succeeding/matchers/AnyOf' 0 assertions passed] + [Finished: './succeeding/matchers/AnyOf' All tests passed (2 assertions in 1 test case)] [Running: ./succeeding/matchers/Equals] +[Started section: './succeeding/matchers/Equals'] MiscTests.cpp: testStringForMatching() Equals( "this string contains 'abc' as a substring" ) succeeded for: "this string contains 'abc' as a substring" equals: "this string contains 'abc' as a substring" +[End of section: './succeeding/matchers/Equals' 0 assertions passed] + [Finished: './succeeding/matchers/Equals' All tests passed (1 assertion in 1 test case)] [Running: Factorials are computed] +[Started section: 'Factorials are computed'] MiscTests.cpp: Factorial(0) == 1 succeeded for: 1 == 1 MiscTests.cpp: Factorial(1) == 1 succeeded for: 1 == 1 MiscTests.cpp: Factorial(2) == 2 succeeded for: 2 == 2 MiscTests.cpp: Factorial(3) == 6 succeeded for: 6 == 6 MiscTests.cpp: Factorial(10) == 3628800 succeeded for: 0x == 3628800 +[End of section: 'Factorials are computed' 0 assertions passed] + [Finished: 'Factorials are computed' All tests passed (5 assertions in 1 test case)] [Running: empty] @@ -13571,7 +15336,10 @@ No assertions in test case, 'empty' [Finished: 'empty' 1 test case failed (1 assertion failed)] [Running: Nice descriptive name] +[Started section: 'Nice descriptive name'] MiscTests.cpp: [warning: This one ran] +[End of section: 'Nice descriptive name' 0 assertions passed] + No assertions in test case, 'Nice descriptive name' @@ -13590,6 +15358,12 @@ No assertions in test case, 'second tag' [Finished: 'second tag' 1 test case failed (1 assertion failed)] [Running: vectors can be sized and resized] +[Started section: 'vectors can be sized and resized'] +MiscTests.cpp: v.size() == 5 succeeded for: 5 == 5 +MiscTests.cpp: v.capacity() >= 5 succeeded for: 5 >= 5 +[End of section: 'vectors can be sized and resized' 0 assertions passed] + +[Started section: 'vectors can be sized and resized'] MiscTests.cpp: v.size() == 5 succeeded for: 5 == 5 MiscTests.cpp: v.capacity() >= 5 succeeded for: 5 >= 5 [Started section: 'resizing bigger changes size and capacity'] @@ -13597,6 +15371,19 @@ MiscTests.cpp: v.size() == 10 succeeded for: 10 == 10 MiscTests.cpp: v.capacity() >= 10 succeeded for: 10 >= 10 [End of section: 'resizing bigger changes size and capacity' All 2 assertions passed] +[End of section: 'vectors can be sized and resized' 0 assertions passed] + +[Started section: 'vectors can be sized and resized'] +MiscTests.cpp: v.size() == 5 succeeded for: 5 == 5 +MiscTests.cpp: v.capacity() >= 5 succeeded for: 5 >= 5 +[Started section: 'resizing smaller changes size but not capacity'] +MiscTests.cpp: v.size() == 0 succeeded for: 0 == 0 +MiscTests.cpp: v.capacity() >= 5 succeeded for: 5 >= 5 +[End of section: 'resizing smaller changes size but not capacity' All 2 assertions passed] + +[End of section: 'vectors can be sized and resized' 0 assertions passed] + +[Started section: 'vectors can be sized and resized'] MiscTests.cpp: v.size() == 5 succeeded for: 5 == 5 MiscTests.cpp: v.capacity() >= 5 succeeded for: 5 >= 5 [Started section: 'resizing smaller changes size but not capacity'] @@ -13608,13 +15395,9 @@ MiscTests.cpp: v.capacity() == 0 succeeded for: 0 == 0 [End of section: 'resizing smaller changes size but not capacity' All 3 assertions passed] -MiscTests.cpp: v.size() == 5 succeeded for: 5 == 5 -MiscTests.cpp: v.capacity() >= 5 succeeded for: 5 >= 5 -[Started section: 'resizing smaller changes size but not capacity'] -MiscTests.cpp: v.size() == 0 succeeded for: 0 == 0 -MiscTests.cpp: v.capacity() >= 5 succeeded for: 5 >= 5 -[End of section: 'resizing smaller changes size but not capacity' All 2 assertions passed] +[End of section: 'vectors can be sized and resized' 0 assertions passed] +[Started section: 'vectors can be sized and resized'] MiscTests.cpp: v.size() == 5 succeeded for: 5 == 5 MiscTests.cpp: v.capacity() >= 5 succeeded for: 5 >= 5 [Started section: 'reserving bigger changes capacity but not size'] @@ -13622,6 +15405,9 @@ MiscTests.cpp: v.size() == 5 succeeded for: 5 == 5 MiscTests.cpp: v.capacity() >= 10 succeeded for: 10 >= 10 [End of section: 'reserving bigger changes capacity but not size' All 2 assertions passed] +[End of section: 'vectors can be sized and resized' 0 assertions passed] + +[Started section: 'vectors can be sized and resized'] MiscTests.cpp: v.size() == 5 succeeded for: 5 == 5 MiscTests.cpp: v.capacity() >= 5 succeeded for: 5 >= 5 [Started section: 'reserving smaller does not change size or capacity'] @@ -13629,9 +15415,35 @@ MiscTests.cpp: v.size() == 5 succeeded for: 5 == 5 MiscTests.cpp: v.capacity() >= 5 succeeded for: 5 >= 5 [End of section: 'reserving smaller does not change size or capacity' All 2 assertions passed] -[Finished: 'vectors can be sized and resized' All tests passed (21 assertions in 1 test case)] +[End of section: 'vectors can be sized and resized' 0 assertions passed] + +[Finished: 'vectors can be sized and resized' All tests passed (23 assertions in 1 test case)] + +[Running: ./failing/CatchSectionInfiniteLoop] +[Started section: './failing/CatchSectionInfiniteLoop'] +MiscTests.cpp: failed with message: 'to infinity and beyond' +[End of section: './failing/CatchSectionInfiniteLoop' 0 assertions passed] + +[Started section: './failing/CatchSectionInfiniteLoop'] +MiscTests.cpp: failed with message: 'to infinity and beyond' +[End of section: './failing/CatchSectionInfiniteLoop' 0 assertions passed] + +[Started section: './failing/CatchSectionInfiniteLoop'] +[Started section: 'Outer'] +[Started section: 'Inner'] +MiscTests.cpp: succeeded +[with message: that's not flying - that's failing in style] +[End of section: 'Inner' 1 assertion passed] + +[End of section: 'Outer' 1 assertion passed] + +MiscTests.cpp: failed with message: 'to infinity and beyond' +[End of section: './failing/CatchSectionInfiniteLoop' 0 assertions passed] + +[Finished: './failing/CatchSectionInfiniteLoop' 1 test case failed (3 of 4 assertions failed)] [Running: selftest/main] +[Started section: 'selftest/main'] [Started section: 'selftest/expected result'] [Started section: 'selftest/expected result/failing tests'] catch_self_test.hpp: succeeded @@ -13688,10 +15500,15 @@ catch_self_test.hpp: succeeded [with message: Tests failed, as expected] catch_self_test.hpp: succeeded [with message: Tests failed, as expected] -[End of section: 'selftest/expected result/failing tests' All 27 assertions passed] +catch_self_test.hpp: succeeded +[with message: Tests failed, as expected] +[End of section: 'selftest/expected result/failing tests' All 28 assertions passed] -[End of section: 'selftest/expected result' All 27 assertions passed] +[End of section: 'selftest/expected result' All 28 assertions passed] +[End of section: 'selftest/main' 0 assertions passed] + +[Started section: 'selftest/main'] [Started section: 'selftest/expected result'] [Started section: 'selftest/expected result/succeeding tests'] catch_self_test.hpp: succeeded @@ -13794,34 +15611,46 @@ catch_self_test.hpp: succeeded [End of section: 'selftest/expected result' All 46 assertions passed] +[End of section: 'selftest/main' 0 assertions passed] + Message from section one Message from section two Some information An error +[Started section: 'selftest/main'] [Started section: 'selftest/test counts'] [Started section: 'selftest/test counts/succeeding tests'] -TestMain.cpp: totals.assertions.passed == 296 succeeded for: 296 == 296 +TestMain.cpp: totals.assertions.passed == 298 succeeded for: 298 == 298 TestMain.cpp: totals.assertions.failed == 0 succeeded for: 0 == 0 [End of section: 'selftest/test counts/succeeding tests' All 2 assertions passed] [End of section: 'selftest/test counts' All 2 assertions passed] +[End of section: 'selftest/main' 0 assertions passed] + +[Started section: 'selftest/main'] [Started section: 'selftest/test counts'] [Started section: 'selftest/test counts/failing tests'] -TestMain.cpp: totals.assertions.passed == 1 succeeded for: 1 == 1 -TestMain.cpp: totals.assertions.failed == 74 succeeded for: 74 == 74 +TestMain.cpp: totals.assertions.passed == 2 succeeded for: 2 == 2 +TestMain.cpp: totals.assertions.failed == 77 succeeded for: 77 == 77 [End of section: 'selftest/test counts/failing tests' All 2 assertions passed] [End of section: 'selftest/test counts' All 2 assertions passed] -[Finished: 'selftest/main' All tests passed (77 assertions in 1 test case)] +[End of section: 'selftest/main' 0 assertions passed] + +[Finished: 'selftest/main' All tests passed (78 assertions in 1 test case)] [Running: meta/Misc/Sections] +[Started section: 'meta/Misc/Sections'] TestMain.cpp: totals.assertions.passed == 2 succeeded for: 2 == 2 TestMain.cpp: totals.assertions.failed == 1 succeeded for: 1 == 1 +[End of section: 'meta/Misc/Sections' 0 assertions passed] + [Finished: 'meta/Misc/Sections' All tests passed (2 assertions in 1 test case)] [Running: Process can be configured on command line] +[Started section: 'Process can be configured on command line'] [Started section: 'default - no arguments'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded TestMain.cpp: config.shouldDebugBreak == false succeeded for: false == false @@ -13830,6 +15659,9 @@ TestMain.cpp: config.noThrow == false succeeded for: false == false TestMain.cpp: config.reporterName.empty() succeeded for: true [End of section: 'default - no arguments' All 5 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'test lists'] [Started section: '1 test'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded @@ -13840,6 +15672,9 @@ TestMain.cpp: cfg.filters()[0].shouldInclude( fakeTestCase( "test1" ) ) succeede [End of section: 'test lists' All 4 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'test lists'] [Started section: 'Specify one test case exclusion using exclude:'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded @@ -13850,6 +15685,9 @@ TestMain.cpp: cfg.filters()[0].shouldInclude( fakeTestCase( "alwaysIncluded" ) ) [End of section: 'test lists' All 4 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'test lists'] [Started section: 'Specify one test case exclusion using ~'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded @@ -13860,6 +15698,9 @@ TestMain.cpp: cfg.filters()[0].shouldInclude( fakeTestCase( "alwaysIncluded" ) ) [End of section: 'test lists' All 4 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'test lists'] [Started section: 'Specify two test cases using -t'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded @@ -13871,6 +15712,9 @@ TestMain.cpp: cfg.filters()[0].shouldInclude( fakeTestCase( "test2" ) ) succeede [End of section: 'test lists' All 5 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'reporter'] [Started section: '-r/console'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded @@ -13879,6 +15723,9 @@ TestMain.cpp: config.reporterName == "console" succeeded for: "console" == "cons [End of section: 'reporter' All 2 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'reporter'] [Started section: '-r/xml'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded @@ -13887,6 +15734,9 @@ TestMain.cpp: config.reporterName == "xml" succeeded for: "xml" == "xml" [End of section: 'reporter' All 2 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'reporter'] [Started section: '--reporter/junit'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded @@ -13895,6 +15745,9 @@ TestMain.cpp: config.reporterName == "junit" succeeded for: "junit" == "junit" [End of section: 'reporter' All 2 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'debugger'] [Started section: '-b'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded @@ -13903,6 +15756,9 @@ TestMain.cpp: config.shouldDebugBreak == true succeeded for: true == true [End of section: 'debugger' All 2 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'debugger'] [Started section: '--break'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded @@ -13911,6 +15767,9 @@ TestMain.cpp: config.shouldDebugBreak succeeded for: true [End of section: 'debugger' All 2 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'abort'] [Started section: '-a aborts after first failure'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded @@ -13919,6 +15778,9 @@ TestMain.cpp: config.abortAfter == 1 succeeded for: 1 == 1 [End of section: 'abort' All 2 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'abort'] [Started section: '-x 2 aborts after two failures'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded @@ -13927,6 +15789,9 @@ TestMain.cpp: config.abortAfter == 2 succeeded for: 2 == 2 [End of section: 'abort' All 2 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'abort'] [Started section: '-x must be greater than zero'] TestMain.cpp: parseIntoConfigAndReturnError( argv, config ) Contains( "greater than zero" ) succeeded for: @@ -13935,6 +15800,9 @@ TestMain.cpp: parseIntoConfigAndReturnError( argv, config ) Contains( "greater t [End of section: 'abort' 1 assertion passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'abort'] [Started section: '-x must be numeric'] TestMain.cpp: parseIntoConfigAndReturnError( argv, config ) Contains( "-x" ) succeeded for: @@ -13943,6 +15811,9 @@ TestMain.cpp: parseIntoConfigAndReturnError( argv, config ) Contains( "-x" ) suc [End of section: 'abort' 1 assertion passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'nothrow'] [Started section: '-e'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded @@ -13951,6 +15822,9 @@ TestMain.cpp: config.noThrow == true succeeded for: true == true [End of section: 'nothrow' All 2 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'nothrow'] [Started section: '--nothrow'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded @@ -13959,6 +15833,9 @@ TestMain.cpp: config.noThrow == true succeeded for: true == true [End of section: 'nothrow' All 2 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'output filename'] [Started section: '-o filename'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded @@ -13967,6 +15844,9 @@ TestMain.cpp: config.outputFilename == "filename.ext" succeeded for: "filename.e [End of section: 'output filename' All 2 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'output filename'] [Started section: '--out'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded @@ -13975,6 +15855,9 @@ TestMain.cpp: config.outputFilename == "filename.ext" succeeded for: "filename.e [End of section: 'output filename' All 2 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + +[Started section: 'Process can be configured on command line'] [Started section: 'combinations'] [Started section: 'Single character flags can be combined'] TestMain.cpp: parseIntoConfig( argv, config ) succeeded @@ -13985,37 +15868,52 @@ TestMain.cpp: config.noThrow == true succeeded for: true == true [End of section: 'combinations' All 4 assertions passed] +[End of section: 'Process can be configured on command line' 0 assertions passed] + [Finished: 'Process can be configured on command line' All tests passed (50 assertions in 1 test case)] [Running: selftest/test filter] +[Started section: 'selftest/test filter'] TestMain.cpp: matchAny.shouldInclude( fakeTestCase( "any" ) ) succeeded for: true TestMain.cpp: matchNone.shouldInclude( fakeTestCase( "any" ) ) == false succeeded for: false == false TestMain.cpp: matchHidden.shouldInclude( fakeTestCase( "any" ) ) == false succeeded for: false == false TestMain.cpp: matchNonHidden.shouldInclude( fakeTestCase( "any" ) ) succeeded for: true TestMain.cpp: matchHidden.shouldInclude( fakeTestCase( "./any" ) ) succeeded for: true TestMain.cpp: matchNonHidden.shouldInclude( fakeTestCase( "./any" ) ) == false succeeded for: false == false +[End of section: 'selftest/test filter' 0 assertions passed] + [Finished: 'selftest/test filter' All tests passed (6 assertions in 1 test case)] [Running: selftest/test filters] +[Started section: 'selftest/test filters'] TestMain.cpp: matchHidden.shouldInclude( fakeTestCase( "./something" ) ) succeeded for: true TestMain.cpp: filters.shouldInclude( fakeTestCase( "any" ) ) == false succeeded for: false == false TestMain.cpp: filters.shouldInclude( fakeTestCase( "./something" ) ) succeeded for: true TestMain.cpp: filters.shouldInclude( fakeTestCase( "./anything" ) ) == false succeeded for: false == false +[End of section: 'selftest/test filters' 0 assertions passed] + [Finished: 'selftest/test filters' All tests passed (4 assertions in 1 test case)] [Running: selftest/filter/prefix wildcard] +[Started section: 'selftest/filter/prefix wildcard'] TestMain.cpp: matchBadgers.shouldInclude( fakeTestCase( "big badger" ) ) succeeded for: true TestMain.cpp: matchBadgers.shouldInclude( fakeTestCase( "little badgers" ) ) == false succeeded for: false == false +[End of section: 'selftest/filter/prefix wildcard' 0 assertions passed] + [Finished: 'selftest/filter/prefix wildcard' All tests passed (2 assertions in 1 test case)] [Running: selftest/filter/wildcard at both ends] +[Started section: 'selftest/filter/wildcard at both ends'] TestMain.cpp: matchBadgers.shouldInclude( fakeTestCase( "big badger" ) ) succeeded for: true TestMain.cpp: matchBadgers.shouldInclude( fakeTestCase( "little badgers" ) ) succeeded for: true TestMain.cpp: matchBadgers.shouldInclude( fakeTestCase( "badgers are big" ) ) succeeded for: true TestMain.cpp: matchBadgers.shouldInclude( fakeTestCase( "hedgehogs" ) ) == false succeeded for: false == false +[End of section: 'selftest/filter/wildcard at both ends' 0 assertions passed] + [Finished: 'selftest/filter/wildcard at both ends' All tests passed (4 assertions in 1 test case)] [Running: selftest/tags] +[Started section: 'selftest/tags'] [Started section: 'one tag'] TestMain.cpp: oneTag.getTestCaseInfo().description == "" succeeded for: "" == "" TestMain.cpp: oneTag.hasTag( "one" ) succeeded for: true @@ -14027,6 +15925,9 @@ TestMain.cpp: oneTag.matchesTags( p4 ) == false succeeded for: false == false TestMain.cpp: oneTag.matchesTags( p5 ) == false succeeded for: false == false [End of section: 'one tag' All 8 assertions passed] +[End of section: 'selftest/tags' 0 assertions passed] + +[Started section: 'selftest/tags'] [Started section: 'two tags'] TestMain.cpp: twoTags.getTestCaseInfo().description == "" succeeded for: "" == "" TestMain.cpp: twoTags.hasTag( "one" ) succeeded for: true @@ -14041,6 +15942,9 @@ TestMain.cpp: twoTags.matchesTags( p4 ) == true succeeded for: true == true TestMain.cpp: twoTags.matchesTags( p5 ) == true succeeded for: true == true [End of section: 'two tags' All 11 assertions passed] +[End of section: 'selftest/tags' 0 assertions passed] + +[Started section: 'selftest/tags'] [Started section: 'one tag with characters either side'] TestMain.cpp: oneTagWithExtras.getTestCaseInfo().description == "1234" succeeded for: "1234" == "1234" TestMain.cpp: oneTagWithExtras.hasTag( "one" ) succeeded for: true @@ -14048,12 +15952,18 @@ TestMain.cpp: oneTagWithExtras.hasTag( "two" ) == false succeeded for: false == TestMain.cpp: oneTagWithExtras.getTags().size() == 1 succeeded for: 1 == 1 [End of section: 'one tag with characters either side' All 4 assertions passed] +[End of section: 'selftest/tags' 0 assertions passed] + +[Started section: 'selftest/tags'] [Started section: 'start of a tag, but not closed'] TestMain.cpp: oneTagOpen.getTestCaseInfo().description == "[one" succeeded for: "[one" == "[one" TestMain.cpp: oneTagOpen.hasTag( "one" ) == false succeeded for: false == false TestMain.cpp: oneTagOpen.getTags().size() == 0 succeeded for: 0 == 0 [End of section: 'start of a tag, but not closed' All 3 assertions passed] +[End of section: 'selftest/tags' 0 assertions passed] + +[Started section: 'selftest/tags'] [Started section: 'hidden'] TestMain.cpp: oneTag.getTestCaseInfo().description == "" succeeded for: "" == "" TestMain.cpp: oneTag.hasTag( "." ) succeeded for: true @@ -14061,9 +15971,12 @@ TestMain.cpp: oneTag.isHidden() succeeded for: true TestMain.cpp: oneTag.matchesTags( "~[.]" ) == false succeeded for: false == false [End of section: 'hidden' All 4 assertions passed] +[End of section: 'selftest/tags' 0 assertions passed] + [Finished: 'selftest/tags' All tests passed (30 assertions in 1 test case)] [Running: Long strings can be wrapped] +[Started section: 'Long strings can be wrapped'] [Started section: 'plain string'] [Started section: 'No wrapping'] TestMain.cpp: Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString succeeded for: @@ -14078,6 +15991,9 @@ TestMain.cpp: Text( testString, TextAttributes().setWidth( 18 ) ).toString() == [End of section: 'plain string' All 2 assertions passed] +[End of section: 'Long strings can be wrapped' 0 assertions passed] + +[Started section: 'Long strings can be wrapped'] [Started section: 'plain string'] [Started section: 'Wrapped once'] TestMain.cpp: Text( testString, TextAttributes().setWidth( 17 ) ).toString() == "one two three\nfour" succeeded for: @@ -14114,6 +16030,9 @@ three four" [End of section: 'plain string' All 5 assertions passed] +[End of section: 'Long strings can be wrapped' 0 assertions passed] + +[Started section: 'Long strings can be wrapped'] [Started section: 'plain string'] [Started section: 'Wrapped twice'] TestMain.cpp: Text( testString, TextAttributes().setWidth( 9 ) ).toString() == "one two\nthree\nfour" succeeded for: @@ -14144,6 +16063,9 @@ four" [End of section: 'plain string' All 3 assertions passed] +[End of section: 'Long strings can be wrapped' 0 assertions passed] + +[Started section: 'Long strings can be wrapped'] [Started section: 'plain string'] [Started section: 'Wrapped three times'] TestMain.cpp: Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one\ntwo\nthree\nfour" succeeded for: @@ -14170,6 +16092,9 @@ four" [End of section: 'plain string' All 2 assertions passed] +[End of section: 'Long strings can be wrapped' 0 assertions passed] + +[Started section: 'Long strings can be wrapped'] [Started section: 'plain string'] [Started section: 'Short wrap'] TestMain.cpp: Text( "abcdef", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndef" succeeded for: "abc- @@ -14219,6 +16144,9 @@ ur" [End of section: 'plain string' All 5 assertions passed] +[End of section: 'Long strings can be wrapped' 0 assertions passed] + +[Started section: 'Long strings can be wrapped'] [Started section: 'plain string'] [Started section: 'As container'] TestMain.cpp: text.size() == 4 succeeded for: 4 == 4 @@ -14230,6 +16158,9 @@ TestMain.cpp: text[3] == "four" succeeded for: "four" == "four" [End of section: 'plain string' All 5 assertions passed] +[End of section: 'Long strings can be wrapped' 0 assertions passed] + +[Started section: 'Long strings can be wrapped'] [Started section: 'plain string'] [Started section: 'Indent first line differently'] TestMain.cpp: text.toString() == " one two\n three\n four" succeeded for: @@ -14244,6 +16175,9 @@ TestMain.cpp: text.toString() == " one two\n three\n four" succeeded for: [End of section: 'plain string' 1 assertion passed] +[End of section: 'Long strings can be wrapped' 0 assertions passed] + +[Started section: 'Long strings can be wrapped'] [Started section: 'With newlines'] [Started section: 'No wrapping'] TestMain.cpp: Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString succeeded for: @@ -14268,6 +16202,9 @@ three four" [End of section: 'With newlines' All 3 assertions passed] +[End of section: 'Long strings can be wrapped' 0 assertions passed] + +[Started section: 'Long strings can be wrapped'] [Started section: 'With newlines'] [Started section: 'Trailing newline'] TestMain.cpp: Text( "abcdef\n", TextAttributes().setWidth( 10 ) ).toString() == "abcdef\n" succeeded for: "abcdef @@ -14285,6 +16222,9 @@ TestMain.cpp: Text( "abcdef\n", TextAttributes().setWidth( 6 ) ).toString() == " [End of section: 'With newlines' All 3 assertions passed] +[End of section: 'Long strings can be wrapped' 0 assertions passed] + +[Started section: 'Long strings can be wrapped'] [Started section: 'With newlines'] [Started section: 'Wrapped once'] TestMain.cpp: Text( testString, TextAttributes().setWidth( 9 ) ).toString() == "one two\nthree\nfour" succeeded for: @@ -14315,6 +16255,9 @@ four" [End of section: 'With newlines' All 3 assertions passed] +[End of section: 'Long strings can be wrapped' 0 assertions passed] + +[Started section: 'Long strings can be wrapped'] [Started section: 'With newlines'] [Started section: 'Wrapped twice'] TestMain.cpp: Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one\ntwo\nthree\nfour" succeeded for: @@ -14331,6 +16274,9 @@ four" [End of section: 'With newlines' 1 assertion passed] +[End of section: 'Long strings can be wrapped' 0 assertions passed] + +[Started section: 'Long strings can be wrapped'] [Started section: 'With tabs'] TestMain.cpp: Text( testString, TextAttributes().setWidth( 15 ) ).toString() == "one two three\n four\n five\n six" succeeded for: "one two three @@ -14344,6 +16290,8 @@ TestMain.cpp: Text( testString, TextAttributes().setWidth( 15 ) ).toString() == six" [End of section: 'With tabs' 1 assertion passed] +[End of section: 'Long strings can be wrapped' 0 assertions passed] + [Finished: 'Long strings can be wrapped' All tests passed (34 assertions in 1 test case)] hello hello @@ -14355,95 +16303,159 @@ No assertions in test case, 'Strings can be rendered with colour' [Finished: 'Strings can be rendered with colour' 1 test case failed (1 assertion failed)] [Running: Text can be formatted using the Text class] +[Started section: 'Text can be formatted using the Text class'] TestMain.cpp: Text( "hi there" ).toString() == "hi there" succeeded for: "hi there" == "hi there" TestMain.cpp: Text( "hi there", narrow ).toString() == "hi\nthere" succeeded for: "hi there" == "hi there" +[End of section: 'Text can be formatted using the Text class' 0 assertions passed] + [Finished: 'Text can be formatted using the Text class' All tests passed (2 assertions in 1 test case)] [Running: ./succeeding/Tricky/std::pair] +[Started section: './succeeding/Tricky/std::pair'] TrickyTests.cpp: (std::pair( 1, 2 )) == aNicePair succeeded for: std::pair( 1, 2 ) == std::pair( 1, 2 ) +[End of section: './succeeding/Tricky/std::pair' 0 assertions passed] + [Finished: './succeeding/Tricky/std::pair' All tests passed (1 assertion in 1 test case)] [Running: ./inprogress/failing/Tricky/trailing expression] +[Started section: './inprogress/failing/Tricky/trailing expression'] TrickyTests.cpp: [warning: Uncomment the code in this test to check that it gives a sensible compiler error] +[End of section: './inprogress/failing/Tricky/trailing expression' 0 assertions passed] + No assertions in test case, './inprogress/failing/Tricky/trailing expression' [Finished: './inprogress/failing/Tricky/trailing expression' 1 test case failed (1 assertion failed)] [Running: ./inprogress/failing/Tricky/compound lhs] +[Started section: './inprogress/failing/Tricky/compound lhs'] TrickyTests.cpp: [warning: Uncomment the code in this test to check that it gives a sensible compiler error] +[End of section: './inprogress/failing/Tricky/compound lhs' 0 assertions passed] + No assertions in test case, './inprogress/failing/Tricky/compound lhs' [Finished: './inprogress/failing/Tricky/compound lhs' 1 test case failed (1 assertion failed)] [Running: ./failing/Tricky/non streamable type] +[Started section: './failing/Tricky/non streamable type'] TrickyTests.cpp: &o1 == &o2 failed for: 0x == 0x TrickyTests.cpp: o1 == o2 failed for: {?} == {?} +[End of section: './failing/Tricky/non streamable type' 0 assertions passed] + [Finished: './failing/Tricky/non streamable type' 1 test case failed (All 2 assertions failed)] [Running: ./failing/string literals] +[Started section: './failing/string literals'] TrickyTests.cpp: std::string( "first" ) == "second" failed for: "first" == "second" +[End of section: './failing/string literals' 0 assertions passed] + [Finished: './failing/string literals' 1 test case failed (1 assertion failed)] [Running: ./succeeding/side-effects] +[Started section: './succeeding/side-effects'] TrickyTests.cpp: i++ == 7 succeeded for: 7 == 7 TrickyTests.cpp: i++ == 8 succeeded for: 8 == 8 +[End of section: './succeeding/side-effects' 0 assertions passed] + [Finished: './succeeding/side-effects' All tests passed (2 assertions in 1 test case)] [Running: ./succeeding/koenig] +[Started section: './succeeding/koenig'] TrickyTests.cpp: 0x == o succeeded for: 0x == {?} +[End of section: './succeeding/koenig' 0 assertions passed] + [Finished: './succeeding/koenig' All tests passed (1 assertion in 1 test case)] [Running: ./succeeding/non-const==] +[Started section: './succeeding/non-const=='] TrickyTests.cpp: t == 1u succeeded for: {?} == 1 +[End of section: './succeeding/non-const==' 0 assertions passed] + [Finished: './succeeding/non-const==' All tests passed (1 assertion in 1 test case)] [Running: ./succeeding/enum/bits] +[Started section: './succeeding/enum/bits'] TrickyTests.cpp: 0x == bit30and31 succeeded for: 0x == 3221225472 +[End of section: './succeeding/enum/bits' 0 assertions passed] + [Finished: './succeeding/enum/bits' All tests passed (1 assertion in 1 test case)] [Running: ./succeeding/boolean member] +[Started section: './succeeding/boolean member'] TrickyTests.cpp: obj.prop != __null succeeded for: 0x != 0 +[End of section: './succeeding/boolean member' 0 assertions passed] + [Finished: './succeeding/boolean member' All tests passed (1 assertion in 1 test case)] [Running: ./succeeding/unimplemented static bool] +[Started section: './succeeding/unimplemented static bool'] [Started section: 'compare to true'] TrickyTests.cpp: is_true::value == true succeeded for: true == true TrickyTests.cpp: true == is_true::value succeeded for: true == true [End of section: 'compare to true' All 2 assertions passed] +[End of section: './succeeding/unimplemented static bool' 0 assertions passed] + +[Started section: './succeeding/unimplemented static bool'] [Started section: 'compare to false'] TrickyTests.cpp: is_true::value == false succeeded for: false == false TrickyTests.cpp: false == is_true::value succeeded for: false == false [End of section: 'compare to false' All 2 assertions passed] +[End of section: './succeeding/unimplemented static bool' 0 assertions passed] + +[Started section: './succeeding/unimplemented static bool'] [Started section: 'negation'] TrickyTests.cpp: !is_true::value succeeded for: true [End of section: 'negation' 1 assertion passed] +[End of section: './succeeding/unimplemented static bool' 0 assertions passed] + +[Started section: './succeeding/unimplemented static bool'] [Started section: 'double negation'] TrickyTests.cpp: !!is_true::value succeeded for: true [End of section: 'double negation' 1 assertion passed] +[End of section: './succeeding/unimplemented static bool' 0 assertions passed] + +[Started section: './succeeding/unimplemented static bool'] [Started section: 'direct'] TrickyTests.cpp: is_true::value succeeded for: true TrickyTests.cpp: !is_true::value succeeded for: !false [End of section: 'direct' All 2 assertions passed] +[End of section: './succeeding/unimplemented static bool' 0 assertions passed] + [Finished: './succeeding/unimplemented static bool' All tests passed (8 assertions in 1 test case)] [Running: ./succeeding/SafeBool] +[Started section: './succeeding/SafeBool'] TrickyTests.cpp: True succeeded for: true TrickyTests.cpp: !False succeeded for: true TrickyTests.cpp: !False succeeded for: !false +[End of section: './succeeding/SafeBool' 0 assertions passed] + [Finished: './succeeding/SafeBool' All tests passed (3 assertions in 1 test case)] [Running: Assertions then sections] +[Started section: 'Assertions then sections'] +TrickyTests.cpp: Catch::isTrue( true ) succeeded for: true +[End of section: 'Assertions then sections' 0 assertions passed] + +[Started section: 'Assertions then sections'] +TrickyTests.cpp: Catch::isTrue( true ) succeeded for: true +[Started section: 'A section'] +TrickyTests.cpp: Catch::isTrue( true ) succeeded for: true +[End of section: 'A section' 1 assertion passed] + +[End of section: 'Assertions then sections' 0 assertions passed] + +[Started section: 'Assertions then sections'] TrickyTests.cpp: Catch::isTrue( true ) succeeded for: true [Started section: 'A section'] TrickyTests.cpp: Catch::isTrue( true ) succeeded for: true @@ -14453,6 +16465,9 @@ TrickyTests.cpp: Catch::isTrue( true ) succeeded for: true [End of section: 'A section' All 2 assertions passed] +[End of section: 'Assertions then sections' 0 assertions passed] + +[Started section: 'Assertions then sections'] TrickyTests.cpp: Catch::isTrue( true ) succeeded for: true [Started section: 'A section'] TrickyTests.cpp: Catch::isTrue( true ) succeeded for: true @@ -14462,56 +16477,102 @@ TrickyTests.cpp: Catch::isTrue( true ) succeeded for: true [End of section: 'A section' All 2 assertions passed] -[Finished: 'Assertions then sections' All tests passed (6 assertions in 1 test case)] +[End of section: 'Assertions then sections' 0 assertions passed] + +[Finished: 'Assertions then sections' All tests passed (9 assertions in 1 test case)] [Running: non streamable - with conv. op] +[Started section: 'non streamable - with conv. op'] TrickyTests.cpp: s == "7" succeeded for: "7" == "7" +[End of section: 'non streamable - with conv. op' 0 assertions passed] + [Finished: 'non streamable - with conv. op' All tests passed (1 assertion in 1 test case)] [Running: Comparing function pointers] +[Started section: 'Comparing function pointers'] TrickyTests.cpp: a succeeded for: true TrickyTests.cpp: a == &foo succeeded for: 1 == 1 +[End of section: 'Comparing function pointers' 0 assertions passed] + [Finished: 'Comparing function pointers' All tests passed (2 assertions in 1 test case)] [Running: pointer to class] +[Started section: 'pointer to class'] TrickyTests.cpp: p == 0 succeeded for: __null == 0 +[End of section: 'pointer to class' 0 assertions passed] + [Finished: 'pointer to class' All tests passed (1 assertion in 1 test case)] [Running: X/level/0/a] +[Started section: 'X/level/0/a'] TrickyTests.cpp: succeeded +[End of section: 'X/level/0/a' 0 assertions passed] + [Finished: 'X/level/0/a' All tests passed (1 assertion in 1 test case)] [Running: X/level/0/b] +[Started section: 'X/level/0/b'] TrickyTests.cpp: succeeded +[End of section: 'X/level/0/b' 0 assertions passed] + [Finished: 'X/level/0/b' All tests passed (1 assertion in 1 test case)] [Running: X/level/1/a] +[Started section: 'X/level/1/a'] TrickyTests.cpp: succeeded +[End of section: 'X/level/1/a' 0 assertions passed] + [Finished: 'X/level/1/a' All tests passed (1 assertion in 1 test case)] [Running: X/level/1/b] +[Started section: 'X/level/1/b'] TrickyTests.cpp: succeeded +[End of section: 'X/level/1/b' 0 assertions passed] + [Finished: 'X/level/1/b' All tests passed (1 assertion in 1 test case)] [Running: Anonymous test case 1] +[Started section: 'Anonymous test case 1'] VariadicMacrosTests.cpp: succeeded [with message: anonymous test case] +[End of section: 'Anonymous test case 1' 0 assertions passed] + [Finished: 'Anonymous test case 1' All tests passed (1 assertion in 1 test case)] [Running: Test case with one argument] +[Started section: 'Test case with one argument'] VariadicMacrosTests.cpp: succeeded [with message: no assertions] +[End of section: 'Test case with one argument' 0 assertions passed] + [Finished: 'Test case with one argument' All tests passed (1 assertion in 1 test case)] [Running: Variadic macros] +[Started section: 'Variadic macros'] [Started section: 'Section with one argument'] VariadicMacrosTests.cpp: succeeded [with message: no assertions] [End of section: 'Section with one argument' 1 assertion passed] +[End of section: 'Variadic macros' 0 assertions passed] + [Finished: 'Variadic macros' All tests passed (1 assertion in 1 test case)] [Running: Scenario: Do that thing with the thing] +[Started section: 'Scenario: Do that thing with the thing'] +[Started section: ' Given: This stuff exists'] +[Started section: ' When: I do this'] +[Started section: ' Then: it should do this'] +BDDTests.cpp: itDoesThis() succeeded for: true +[End of section: ' Then: it should do this' 1 assertion passed] + +[End of section: ' When: I do this' 1 assertion passed] + +[End of section: ' Given: This stuff exists' 1 assertion passed] + +[End of section: 'Scenario: Do that thing with the thing' 0 assertions passed] + +[Started section: 'Scenario: Do that thing with the thing'] [Started section: ' Given: This stuff exists'] [Started section: ' When: I do this'] [Started section: ' Then: it should do this'] @@ -14526,9 +16587,56 @@ BDDTests.cpp: itDoesThat() succeeded for: true [End of section: ' Given: This stuff exists' All 2 assertions passed] -[Finished: 'Scenario: Do that thing with the thing' All tests passed (2 assertions in 1 test case)] +[End of section: 'Scenario: Do that thing with the thing' 0 assertions passed] + +[Finished: 'Scenario: Do that thing with the thing' All tests passed (3 assertions in 1 test case)] [Running: Scenario: Vector resizing affects size and capacity] +[Started section: 'Scenario: Vector resizing affects size and capacity'] +[Started section: ' Given: an empty vector'] +BDDTests.cpp: v.size() == 0 succeeded for: 0 == 0 +[End of section: ' Given: an empty vector' 1 assertion passed] + +[End of section: 'Scenario: Vector resizing affects size and capacity' 0 assertions passed] + +[Started section: 'Scenario: Vector resizing affects size and capacity'] +[Started section: ' Given: an empty vector'] +BDDTests.cpp: v.size() == 0 succeeded for: 0 == 0 +[End of section: ' Given: an empty vector' 1 assertion passed] + +[End of section: 'Scenario: Vector resizing affects size and capacity' 0 assertions passed] + +[Started section: 'Scenario: Vector resizing affects size and capacity'] +[Started section: ' Given: an empty vector'] +BDDTests.cpp: v.size() == 0 succeeded for: 0 == 0 +[Started section: ' When: it is made larger'] +[Started section: ' Then: the size and capacity go up'] +BDDTests.cpp: v.size() == 10 succeeded for: 10 == 10 +BDDTests.cpp: v.capacity() >= 10 succeeded for: 10 >= 10 +[End of section: ' Then: the size and capacity go up' All 2 assertions passed] + +[End of section: ' When: it is made larger' All 2 assertions passed] + +[End of section: ' Given: an empty vector' All 3 assertions passed] + +[End of section: 'Scenario: Vector resizing affects size and capacity' 0 assertions passed] + +[Started section: 'Scenario: Vector resizing affects size and capacity'] +[Started section: ' Given: an empty vector'] +BDDTests.cpp: v.size() == 0 succeeded for: 0 == 0 +[Started section: ' When: it is made larger'] +[Started section: ' Then: the size and capacity go up'] +BDDTests.cpp: v.size() == 10 succeeded for: 10 == 10 +BDDTests.cpp: v.capacity() >= 10 succeeded for: 10 >= 10 +[End of section: ' Then: the size and capacity go up' All 2 assertions passed] + +[End of section: ' When: it is made larger' All 2 assertions passed] + +[End of section: ' Given: an empty vector' All 3 assertions passed] + +[End of section: 'Scenario: Vector resizing affects size and capacity' 0 assertions passed] + +[Started section: 'Scenario: Vector resizing affects size and capacity'] [Started section: ' Given: an empty vector'] BDDTests.cpp: v.size() == 0 succeeded for: 0 == 0 [Started section: ' When: it is made larger'] @@ -14549,34 +16657,16 @@ BDDTests.cpp: v.capacity() >= 10 succeeded for: 10 >= 10 [End of section: ' Given: an empty vector' All 5 assertions passed] -[Started section: ' Given: an empty vector'] -BDDTests.cpp: v.size() == 0 succeeded for: 0 == 0 -[Started section: ' When: it is made larger'] -[Started section: ' Then: the size and capacity go up'] -BDDTests.cpp: v.size() == 10 succeeded for: 10 == 10 -BDDTests.cpp: v.capacity() >= 10 succeeded for: 10 >= 10 -[End of section: ' Then: the size and capacity go up' All 2 assertions passed] - -[End of section: ' When: it is made larger' All 2 assertions passed] - -[End of section: ' Given: an empty vector' All 3 assertions passed] - -[Started section: ' Given: an empty vector'] -BDDTests.cpp: v.size() == 0 succeeded for: 0 == 0 -[Started section: ' When: it is made larger'] -[Started section: ' Then: the size and capacity go up'] -BDDTests.cpp: v.size() == 10 succeeded for: 10 == 10 -BDDTests.cpp: v.capacity() >= 10 succeeded for: 10 >= 10 -[End of section: ' Then: the size and capacity go up' All 2 assertions passed] - -[End of section: ' When: it is made larger' All 2 assertions passed] - -[End of section: ' Given: an empty vector' All 3 assertions passed] +[End of section: 'Scenario: Vector resizing affects size and capacity' 0 assertions passed] +[Started section: 'Scenario: Vector resizing affects size and capacity'] [Started section: ' Given: an empty vector'] BDDTests.cpp: v.size() == 0 succeeded for: 0 == 0 [End of section: ' Given: an empty vector' 1 assertion passed] +[End of section: 'Scenario: Vector resizing affects size and capacity' 0 assertions passed] + +[Started section: 'Scenario: Vector resizing affects size and capacity'] [Started section: ' Given: an empty vector'] BDDTests.cpp: v.size() == 0 succeeded for: 0 == 0 [Started section: ' When: we reserve more space'] @@ -14589,9 +16679,12 @@ BDDTests.cpp: v.size() == 0 succeeded for: 0 == 0 [End of section: ' Given: an empty vector' All 3 assertions passed] -[Finished: 'Scenario: Vector resizing affects size and capacity' All tests passed (15 assertions in 1 test case)] +[End of section: 'Scenario: Vector resizing affects size and capacity' 0 assertions passed] + +[Finished: 'Scenario: Vector resizing affects size and capacity' All tests passed (17 assertions in 1 test case)] [Running: Scenario: This is a really long scenario name to see how the list command deals with wrapping] +[Started section: 'Scenario: This is a really long scenario name to see how the list command deals with wrapping'] [Started section: ' Given: A section name that is so long that it cannot fit in a single console width'] [Started section: ' When: The test headers are printed as part of the normal running of the scenario'] [Started section: ' Then: The, deliberately very long and overly verbose (you see what I did there?) section names must wrap, along with an indent'] @@ -14603,44 +16696,71 @@ BDDTests.cpp: succeeded [End of section: ' Given: A section name that is so long that it cannot fit in a single console width' 1 assertion passed] +[End of section: 'Scenario: This is a really long scenario name to see how the list command deals with wrapping' 0 assertions passed] + [Finished: 'Scenario: This is a really long scenario name to see how the list command deals with wrapping' All tests passed (1 assertion in 1 test case)] [Running: cmdline] +[Started section: 'cmdline'] [Started section: 'process name'] CmdLineTests.cpp: config.processName == "test" succeeded for: "test" == "test" [End of section: 'process name' 1 assertion passed] +[End of section: 'cmdline' 0 assertions passed] + +[Started section: 'cmdline'] [Started section: 'arg separated by spaces'] CmdLineTests.cpp: config.fileName == "filename.ext" succeeded for: "filename.ext" == "filename.ext" [End of section: 'arg separated by spaces' 1 assertion passed] +[End of section: 'cmdline' 0 assertions passed] + +[Started section: 'cmdline'] [Started section: 'arg separated by colon'] CmdLineTests.cpp: config.fileName == "filename.ext" succeeded for: "filename.ext" == "filename.ext" [End of section: 'arg separated by colon' 1 assertion passed] +[End of section: 'cmdline' 0 assertions passed] + +[Started section: 'cmdline'] [Started section: 'arg separated by ='] CmdLineTests.cpp: config.fileName == "filename.ext" succeeded for: "filename.ext" == "filename.ext" [End of section: 'arg separated by =' 1 assertion passed] +[End of section: 'cmdline' 0 assertions passed] + +[Started section: 'cmdline'] [Started section: 'long opt'] CmdLineTests.cpp: config.fileName == "%stdout" succeeded for: "%stdout" == "%stdout" [End of section: 'long opt' 1 assertion passed] +[End of section: 'cmdline' 0 assertions passed] + +[Started section: 'cmdline'] [Started section: 'a number'] CmdLineTests.cpp: config.number == 42 succeeded for: 42 == 42 [End of section: 'a number' 1 assertion passed] +[End of section: 'cmdline' 0 assertions passed] + +[Started section: 'cmdline'] [Started section: 'not a number'] CmdLineTests.cpp: parseInto( cli, argv, config ) succeeded CmdLineTests.cpp: config.number == 0 succeeded for: 0 == 0 [End of section: 'not a number' All 2 assertions passed] +[End of section: 'cmdline' 0 assertions passed] + +[Started section: 'cmdline'] [Started section: 'two parsers'] CmdLineTests.cpp: config1.number == 42 succeeded for: 42 == 42 CmdLineTests.cpp: !unusedTokens.empty() succeeded for: !false CmdLineTests.cpp: config2.description == "some text" succeeded for: "some text" == "some text" [End of section: 'two parsers' All 3 assertions passed] +[End of section: 'cmdline' 0 assertions passed] + +[Started section: 'cmdline'] [Started section: 'methods'] [Started section: 'in range'] CmdLineTests.cpp: config.index == 3 succeeded for: 3 == 3 @@ -14648,6 +16768,9 @@ CmdLineTests.cpp: config.index == 3 succeeded for: 3 == 3 [End of section: 'methods' 1 assertion passed] +[End of section: 'cmdline' 0 assertions passed] + +[Started section: 'cmdline'] [Started section: 'methods'] [Started section: 'out of range'] CmdLineTests.cpp: parseInto( cli, argv, config ) succeeded @@ -14655,6 +16778,9 @@ CmdLineTests.cpp: parseInto( cli, argv, config ) succeeded [End of section: 'methods' 1 assertion passed] +[End of section: 'cmdline' 0 assertions passed] + +[Started section: 'cmdline'] [Started section: 'flags'] [Started section: 'set'] CmdLineTests.cpp: config.flag succeeded for: true @@ -14662,6 +16788,9 @@ CmdLineTests.cpp: config.flag succeeded for: true [End of section: 'flags' 1 assertion passed] +[End of section: 'cmdline' 0 assertions passed] + +[Started section: 'cmdline'] [Started section: 'flags'] [Started section: 'not set'] CmdLineTests.cpp: config.flag == false succeeded for: false == false @@ -14669,17 +16798,81 @@ CmdLineTests.cpp: config.flag == false succeeded for: false == false [End of section: 'flags' 1 assertion passed] +[End of section: 'cmdline' 0 assertions passed] + +[Started section: 'cmdline'] [Started section: 'positional'] CmdLineTests.cpp: config.firstPos == "1st" succeeded for: "1st" == "1st" CmdLineTests.cpp: config.secondPos == "2nd" succeeded for: "2nd" == "2nd" CmdLineTests.cpp: config.unpositional == "3rd" succeeded for: "3rd" == "3rd" [End of section: 'positional' All 3 assertions passed] +[End of section: 'cmdline' 0 assertions passed] + [Finished: 'cmdline' All tests passed (18 assertions in 1 test case)] -[End of group: '~dummy'. 49 of 119 test cases failed (106 of 712 assertions failed)] + +[Running: section tracking] +[Started section: 'section tracking'] +SectionTrackerTests.cpp: !testCaseTracker.isCompleted() succeeded for: !false +[End of section: 'section tracking' 0 assertions passed] + +[Started section: 'section tracking'] +SectionTrackerTests.cpp: !testCaseTracker.isCompleted() succeeded for: !false +[Started section: 'test case with no sections'] +SectionTrackerTests.cpp: !testCaseTracker.isCompleted() succeeded for: !false +SectionTrackerTests.cpp: testCaseTracker.isCompleted() succeeded for: true +[End of section: 'test case with no sections' All 2 assertions passed] + +[End of section: 'section tracking' 0 assertions passed] + +[Started section: 'section tracking'] +SectionTrackerTests.cpp: !testCaseTracker.isCompleted() succeeded for: !false +[Started section: 'test case with one section'] +SectionTrackerTests.cpp: !testCaseTracker.enterSection( section1Name ) succeeded for: !false +SectionTrackerTests.cpp: !testCaseTracker.isCompleted() succeeded for: !false +SectionTrackerTests.cpp: !testCaseTracker.isCompleted() succeeded for: !false +SectionTrackerTests.cpp: testCaseTracker.enterSection( section1Name ) succeeded for: true +SectionTrackerTests.cpp: testCaseTracker.isCompleted() succeeded for: true +[End of section: 'test case with one section' All 5 assertions passed] + +[End of section: 'section tracking' 0 assertions passed] + +[Started section: 'section tracking'] +SectionTrackerTests.cpp: !testCaseTracker.isCompleted() succeeded for: !false +[Started section: 'test case with two consecutive sections'] +SectionTrackerTests.cpp: !testCaseTracker.enterSection( section1Name ) succeeded for: !false +SectionTrackerTests.cpp: !testCaseTracker.enterSection( section2Name ) succeeded for: !false +SectionTrackerTests.cpp: !testCaseTracker.isCompleted() succeeded for: !false +SectionTrackerTests.cpp: testCaseTracker.enterSection( section1Name ) succeeded for: true +SectionTrackerTests.cpp: !testCaseTracker.enterSection( section2Name ) succeeded for: !false +SectionTrackerTests.cpp: !testCaseTracker.isCompleted() succeeded for: !false +SectionTrackerTests.cpp: !testCaseTracker.enterSection( section1Name ) succeeded for: !false +SectionTrackerTests.cpp: testCaseTracker.enterSection( section2Name ) succeeded for: true +SectionTrackerTests.cpp: testCaseTracker.isCompleted() succeeded for: true +[End of section: 'test case with two consecutive sections' All 9 assertions passed] + +[End of section: 'section tracking' 0 assertions passed] + +[Started section: 'section tracking'] +SectionTrackerTests.cpp: !testCaseTracker.isCompleted() succeeded for: !false +[Started section: 'test case with one section within another'] +SectionTrackerTests.cpp: !testCaseTracker.enterSection( section1Name ) succeeded for: !false +SectionTrackerTests.cpp: !testCaseTracker.isCompleted() succeeded for: !false +SectionTrackerTests.cpp: testCaseTracker.enterSection( section1Name ) succeeded for: true +SectionTrackerTests.cpp: !testCaseTracker.enterSection( section2Name ) succeeded for: !false +SectionTrackerTests.cpp: !testCaseTracker.isCompleted() succeeded for: !false +SectionTrackerTests.cpp: testCaseTracker.enterSection( section1Name ) succeeded for: true +SectionTrackerTests.cpp: testCaseTracker.enterSection( section2Name ) succeeded for: true +SectionTrackerTests.cpp: testCaseTracker.isCompleted() succeeded for: true +[End of section: 'test case with one section within another' All 8 assertions passed] + +[End of section: 'section tracking' 0 assertions passed] + +[Finished: 'section tracking' All tests passed (29 assertions in 1 test case)] +[End of group: '~dummy'. 50 of 121 test cases failed (109 of 756 assertions failed)] -[Testing completed. 49 of 119 test cases failed (106 of 712 assertions failed)] +[Testing completed. 50 of 121 test cases failed (109 of 756 assertions failed)] [Testing completed. No tests ran] diff --git a/projects/SelfTest/MiscTests.cpp b/projects/SelfTest/MiscTests.cpp index f937e06c..8b134f2e 100644 --- a/projects/SelfTest/MiscTests.cpp +++ b/projects/SelfTest/MiscTests.cpp @@ -333,11 +333,11 @@ TEST_CASE( "vectors can be sized and resized", "[vector]" ) { } // https://github.com/philsquared/Catch/issues/166 -//TEST_CASE("CatchSectionInfiniteLoop", "") -//{ -// SECTION("Outer", "") -// SECTION("Inner", "") -// SUCCEED("that's not flying - that's failing in style"); -// -// FAIL("to infinity and beyond"); -//} +TEST_CASE("./failing/CatchSectionInfiniteLoop", "") +{ + SECTION("Outer", "") + SECTION("Inner", "") + SUCCEED("that's not flying - that's failing in style"); + + FAIL("to infinity and beyond"); +} diff --git a/projects/SelfTest/TestMain.cpp b/projects/SelfTest/TestMain.cpp index 00052465..51bc5e95 100644 --- a/projects/SelfTest/TestMain.cpp +++ b/projects/SelfTest/TestMain.cpp @@ -38,15 +38,15 @@ TEST_CASE( "selftest/main", "Runs all Catch self tests and checks their results" SECTION( "selftest/test counts/succeeding tests", "Number of 'succeeding' tests is fixed" ) { Totals totals = runner.runMatching( "./succeeding/*", 0, 2 ); - CHECK( totals.assertions.passed == 296 ); + CHECK( totals.assertions.passed == 298 ); CHECK( totals.assertions.failed == 0 ); } SECTION( "selftest/test counts/failing tests", "Number of 'failing' tests is fixed" ) { Totals totals = runner.runMatching( "./failing/*", 1, 2 ); - CHECK( totals.assertions.passed == 1 ); - CHECK( totals.assertions.failed == 74 ); + CHECK( totals.assertions.passed == 2 ); + CHECK( totals.assertions.failed == 77 ); } } }