From 8baa06c63e2684abf46c3179754ce2dfae00c9e4 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Sun, 25 Nov 2012 11:19:55 +0000 Subject: [PATCH] Split TestCaseInfo into a data only component and the test case function and behaviour. Reporters only get to see the former --- include/internal/catch_interfaces_reporter.h | 4 +- include/internal/catch_list.hpp | 4 +- include/internal/catch_runner_impl.hpp | 12 +- include/internal/catch_test_case_info.h | 52 ++-- include/internal/catch_test_case_info.hpp | 123 +++++---- .../catch_test_case_registry_impl.hpp | 29 +-- include/internal/catch_test_spec.h | 2 +- include/reporters/catch_reporter_basic.hpp | 8 +- include/reporters/catch_reporter_junit.hpp | 6 +- include/reporters/catch_reporter_xml.hpp | 6 +- projects/SelfTest/Baselines/results.txt | 236 +++++++++--------- projects/SelfTest/TestMain.cpp | 86 +++---- projects/SelfTest/catch_self_test.hpp | 15 +- 13 files changed, 298 insertions(+), 285 deletions(-) diff --git a/include/internal/catch_interfaces_reporter.h b/include/internal/catch_interfaces_reporter.h index 96075933..6a5bf648 100644 --- a/include/internal/catch_interfaces_reporter.h +++ b/include/internal/catch_interfaces_reporter.h @@ -108,9 +108,9 @@ namespace Catch virtual void StartGroup( const std::string& groupName ) = 0; virtual void EndGroup( const std::string& groupName, const Totals& totals ) = 0; - virtual void StartTestCase( const TestCase& testInfo ) = 0; + virtual void StartTestCase( const TestCaseInfo& testInfo ) = 0; // TestCaseResult - virtual void EndTestCase( const TestCase& testInfo, const Totals& totals, const std::string& stdOut, const std::string& stdErr ) = 0; + virtual void EndTestCase( const TestCaseInfo& testInfo, const Totals& totals, const std::string& stdOut, const std::string& stdErr ) = 0; // SectionInfo virtual void StartSection( const std::string& sectionName, const std::string& description ) = 0; diff --git a/include/internal/catch_list.hpp b/include/internal/catch_list.hpp index 2b41cda8..50fce992 100644 --- a/include/internal/catch_list.hpp +++ b/include/internal/catch_list.hpp @@ -45,9 +45,9 @@ namespace Catch { if( matchesFilters( config.filters, *it ) ) { matchedTests++; // !TBD: consider listAs() - std::cout << "\t" << it->getName() << "\n"; + std::cout << "\t" << it->getTestCaseInfo().name << "\n"; if( ( config.listSpec & List::TestNames ) != List::TestNames ) - std::cout << "\t\t '" << it->getDescription() << "'\n"; + std::cout << "\t\t '" << it->getTestCaseInfo().description << "'\n"; } } if( config.filters.empty() ) diff --git a/include/internal/catch_runner_impl.hpp b/include/internal/catch_runner_impl.hpp index 596fc1b8..6dea6afe 100644 --- a/include/internal/catch_runner_impl.hpp +++ b/include/internal/catch_runner_impl.hpp @@ -97,15 +97,17 @@ namespace Catch { return totals; } - Totals runTest( const TestCase& testInfo ) { + Totals runTest( const TestCase& testCase ) { Totals prevTotals = m_totals; std::string redirectedCout; std::string redirectedCerr; + + TestCaseInfo testInfo = testCase.getTestCaseInfo(); m_reporter->StartTestCase( testInfo ); - m_runningTest = new RunningTest( &testInfo ); + m_runningTest = new RunningTest( &testCase ); do { do { @@ -120,7 +122,7 @@ namespace Catch { ( m_config.data().warnings & ConfigData::WarnAbout::NoAssertions ) ) { m_totals.assertions.failed++; deltaTotals = m_totals.delta( prevTotals ); - m_reporter->NoAssertionsInTestCase( m_runningTest->getTestCase().getName() ); + m_reporter->NoAssertionsInTestCase( testInfo.name ); } m_totals.testCases += deltaTotals.testCases; @@ -228,7 +230,7 @@ namespace Catch { virtual std::string getCurrentTestName() const { return m_runningTest - ? m_runningTest->getTestCase().getName() + ? m_runningTest->getTestCase().getTestCaseInfo().name : ""; } @@ -262,7 +264,7 @@ namespace Catch { void runCurrentTest( std::string& redirectedCout, std::string& redirectedCerr ) { try { - m_lastAssertionInfo = AssertionInfo( "TEST_CASE", m_runningTest->getTestCase().getLineInfo(), "", ResultDisposition::Normal ); + m_lastAssertionInfo = AssertionInfo( "TEST_CASE", m_runningTest->getTestCase().getTestCaseInfo().lineInfo, "", ResultDisposition::Normal ); m_runningTest->reset(); if( m_reporter->shouldRedirectStdout() ) { StreamRedirect coutRedir( std::cout, redirectedCout ); diff --git a/include/internal/catch_test_case_info.h b/include/internal/catch_test_case_info.h index 5a7d7438..b3f133b4 100644 --- a/include/internal/catch_test_case_info.h +++ b/include/internal/catch_test_case_info.h @@ -16,27 +16,37 @@ namespace Catch { struct ITestCase; + + struct TestCaseInfo { + TestCaseInfo( const std::string& _name, + const std::string& _className, + const std::string& _description, + const std::set& _tags, + bool _isHidden, + const SourceLineInfo& _lineInfo ); + + TestCaseInfo( const TestCaseInfo& other ); + + std::string name; + std::string className; + std::string description; + std::set tags; + bool isHidden; + SourceLineInfo lineInfo; + }; - class TestCase { + class TestCase : protected TestCaseInfo { public: - TestCase(); - TestCase( ITestCase* testCase, - const std::string& className, - const std::string& name, - const std::string& description, - const SourceLineInfo& lineInfo ); - - - TestCase( const TestCase& other, const std::string& name ); + TestCase( ITestCase* testCase, const TestCaseInfo& info ); TestCase( const TestCase& other ); + TestCase withName( const std::string& _newName ) const; + void invoke() const; - const std::string& getClassName() const; - const std::string& getName() const; - const std::string& getDescription() const; - const SourceLineInfo& getLineInfo() const; + const TestCaseInfo& getTestCaseInfo() const; + bool isHidden() const; bool hasTag( const std::string& tag ) const; bool matchesTags( const std::string& tagPattern ) const; @@ -48,14 +58,14 @@ namespace Catch { TestCase& operator = ( const TestCase& other ); private: - Ptr m_test; - std::string m_className; - std::string m_name; - std::string m_description; - std::set m_tags; - SourceLineInfo m_lineInfo; - bool m_isHidden; + Ptr test; }; + + TestCase makeTestCase( ITestCase* testCase, + const std::string& className, + const std::string& name, + const std::string& description, + const SourceLineInfo& lineInfo ); } #endif // TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED diff --git a/include/internal/catch_test_case_info.hpp b/include/internal/catch_test_case_info.hpp index 3d782e11..695793ab 100644 --- a/include/internal/catch_test_case_info.hpp +++ b/include/internal/catch_test_case_info.hpp @@ -14,101 +14,95 @@ namespace Catch { - - TestCase::TestCase( ITestCase* testCase, - const std::string& className, - const std::string& name, - const std::string& description, - const SourceLineInfo& lineInfo ) - : m_test( testCase ), - m_className( className ), - m_name( name ), - m_description( description ), - m_lineInfo( lineInfo ), - m_isHidden( startsWith( name, "./" ) ) + TestCase makeTestCase( ITestCase* _testCase, + const std::string& _className, + const std::string& _name, + const std::string& _descOrTags, + const SourceLineInfo& _lineInfo ) { - TagExtracter( m_tags ).parse( m_description ); - if( hasTag( "hide" ) ) - m_isHidden = true; + std::string desc = _descOrTags; + bool isHidden( startsWith( _name, "./" ) ); + std::set tags; + TagExtracter( tags ).parse( desc ); + if( tags.find( "hide" ) != tags.end() ) + isHidden = true; + + TestCaseInfo info( _name, _className, desc, tags, isHidden, _lineInfo ); + return TestCase( _testCase, info ); } - TestCase::TestCase() - : m_test( NULL ), - m_className(), - m_name(), - m_description(), - m_isHidden( false ) + TestCaseInfo::TestCaseInfo( const std::string& _name, + const std::string& _className, + const std::string& _description, + const std::set& _tags, + bool _isHidden, + const SourceLineInfo& _lineInfo ) + : name( _name ), + className( _className ), + description( _description ), + tags( _tags ), + isHidden( _isHidden ), + lineInfo( _lineInfo ) {} - TestCase::TestCase( const TestCase& other, const std::string& name ) - : m_test( other.m_test ), - m_className( other.m_className ), - m_name( name ), - m_description( other.m_description ), - m_tags( other.m_tags ), - m_lineInfo( other.m_lineInfo ), - m_isHidden( other.m_isHidden ) + TestCaseInfo::TestCaseInfo( const TestCaseInfo& other ) + : name( other.name ), + className( other.className ), + description( other.description ), + tags( other.tags ), + isHidden( other.isHidden ), + lineInfo( other.lineInfo ) {} + TestCase::TestCase( ITestCase* testCase, const TestCaseInfo& info ) : TestCaseInfo( info ), test( testCase ) {} + TestCase::TestCase( const TestCase& other ) - : m_test( other.m_test ), - m_className( other.m_className ), - m_name( other.m_name ), - m_description( other.m_description ), - m_tags( other.m_tags ), - m_lineInfo( other.m_lineInfo ), - m_isHidden( other.m_isHidden ) + : TestCaseInfo( other ), + test( other.test ) {} - void TestCase::invoke() const { - m_test->invoke(); + TestCase TestCase::withName( const std::string& _newName ) const { + TestCase other( *this ); + other.name = _newName; + return other; } - const std::string& TestCase::getClassName() const { - return m_className; - } - const std::string& TestCase::getName() const { - return m_name; - } - const std::string& TestCase::getDescription() const { - return m_description; - } - const SourceLineInfo& TestCase::getLineInfo() const { - return m_lineInfo; + void TestCase::invoke() const { + test->invoke(); } bool TestCase::isHidden() const { - return m_isHidden; + return TestCaseInfo::isHidden; } bool TestCase::hasTag( const std::string& tag ) const { - return m_tags.find( tag ) != m_tags.end(); + return tags.find( tag ) != tags.end(); } bool TestCase::matchesTags( const std::string& tagPattern ) const { TagExpression exp; TagExpressionParser( exp ).parse( tagPattern ); - return exp.matches( m_tags ); + return exp.matches( tags ); } const std::set& TestCase::getTags() const { - return m_tags; + return tags; } void TestCase::swap( TestCase& other ) { - m_test.swap( other.m_test ); - m_className.swap( other.m_className ); - m_name.swap( other.m_name ); - m_description.swap( other.m_description ); - std::swap( m_lineInfo, other.m_lineInfo ); + test.swap( other.test ); + className.swap( other.className ); + name.swap( other.name ); + description.swap( other.description ); + std::swap( lineInfo, other.lineInfo ); } bool TestCase::operator == ( const TestCase& other ) const { - return m_test.get() == other.m_test.get() && - m_name == other.m_name && - m_className == other.m_className; + return test.get() == other.test.get() && + name == other.name && + className == other.className; } bool TestCase::operator < ( const TestCase& other ) const { - return m_name < other.m_name; + return name < other.name; } TestCase& TestCase::operator = ( const TestCase& other ) { TestCase temp( other ); @@ -116,6 +110,11 @@ namespace Catch { return *this; } + const TestCaseInfo& TestCase::getTestCaseInfo() const + { + return *this; + } + } // end namespace Catch #endif // TWOBLUECUBES_CATCH_TEST_CASE_INFO_HPP_INCLUDED diff --git a/include/internal/catch_test_case_registry_impl.hpp b/include/internal/catch_test_case_registry_impl.hpp index 715a96e9..5404766c 100644 --- a/include/internal/catch_test_case_registry_impl.hpp +++ b/include/internal/catch_test_case_registry_impl.hpp @@ -25,24 +25,25 @@ namespace Catch { TestRegistry() : m_unnamedCount( 0 ) {} virtual ~TestRegistry(); - virtual void registerTest( const TestCase& testInfo ) { - if( testInfo.getName() == "" ) { + virtual void registerTest( const TestCase& testCase ) { + std::string name = testCase.getTestCaseInfo().name; + if( name == "" ) { std::ostringstream oss; - oss << testInfo.getName() << "unnamed/" << ++m_unnamedCount; - return registerTest( TestCase( testInfo, oss.str() ) ); + oss << name << "unnamed/" << ++m_unnamedCount; + return registerTest( testCase.withName( oss.str() ) ); } - if( m_functions.find( testInfo ) == m_functions.end() ) { - m_functions.insert( testInfo ); - m_functionsInOrder.push_back( testInfo ); - if( !testInfo.isHidden() ) - m_nonHiddenFunctions.push_back( testInfo ); + if( m_functions.find( testCase ) == m_functions.end() ) { + m_functions.insert( testCase ); + m_functionsInOrder.push_back( testCase ); + if( !testCase.isHidden() ) + m_nonHiddenFunctions.push_back( testCase ); } else { - const TestCase& prev = *m_functions.find( testInfo ); - std::cerr << "error: TEST_CASE( \"" << testInfo.getName() << "\" ) already defined.\n" - << "\tFirst seen at " << SourceLineInfo( prev.getLineInfo() ) << "\n" - << "\tRedefined at " << SourceLineInfo( testInfo.getLineInfo() ) << std::endl; + const TestCase& prev = *m_functions.find( testCase ); + std::cerr << "error: TEST_CASE( \"" << name << "\" ) already defined.\n" + << "\tFirst seen at " << SourceLineInfo( prev.getTestCaseInfo().lineInfo ) << "\n" + << "\tRedefined at " << SourceLineInfo( testCase.getTestCaseInfo().lineInfo ) << std::endl; exit(1); } } @@ -138,7 +139,7 @@ namespace Catch { const char* description, const SourceLineInfo& lineInfo ) { - getMutableRegistryHub().registerTest( TestCase( testCase, extractClassName( classOrQualifiedMethodName ), name, description, lineInfo ) ); + getMutableRegistryHub().registerTest( makeTestCase( testCase, extractClassName( classOrQualifiedMethodName ), name, description, lineInfo ) ); } } // end namespace Catch diff --git a/include/internal/catch_test_spec.h b/include/internal/catch_test_spec.h index 3e726d8c..3a30c4ea 100644 --- a/include/internal/catch_test_spec.h +++ b/include/internal/catch_test_spec.h @@ -75,7 +75,7 @@ namespace Catch { #endif bool isMatch( const TestCase& testCase ) const { - const std::string& name = testCase.getName(); + const std::string& name = testCase.getTestCaseInfo().name; switch( m_wildcardPosition ) { case NoWildcard: diff --git a/include/reporters/catch_reporter_basic.hpp b/include/reporters/catch_reporter_basic.hpp index 508d18e5..cfb23ee9 100644 --- a/include/reporters/catch_reporter_basic.hpp +++ b/include/reporters/catch_reporter_basic.hpp @@ -120,8 +120,8 @@ namespace Catch { } } - virtual void StartTestCase( const TestCase& testInfo ) { - m_testSpan = testInfo.getName(); + virtual void StartTestCase( const TestCaseInfo& testInfo ) { + m_testSpan = testInfo.name; } virtual void StartSection( const std::string& sectionName, const std::string& ) { @@ -264,7 +264,7 @@ namespace Catch { m_config.stream << std::endl; } - virtual void EndTestCase( const TestCase& testInfo, + virtual void EndTestCase( const TestCaseInfo& testInfo, const Totals& totals, const std::string& stdOut, const std::string& stdErr ) { @@ -279,7 +279,7 @@ namespace Catch { } if( m_testSpan.emitted ) { - m_config.stream << "[Finished: '" << testInfo.getName() << "' "; + m_config.stream << "[Finished: '" << testInfo.name << "' "; ReportCounts( totals ); m_config.stream << "]" << std::endl; } diff --git a/include/reporters/catch_reporter_junit.hpp b/include/reporters/catch_reporter_junit.hpp index e39e6896..10d1964b 100644 --- a/include/reporters/catch_reporter_junit.hpp +++ b/include/reporters/catch_reporter_junit.hpp @@ -102,8 +102,8 @@ namespace Catch { virtual void EndSection( const std::string&, const Counts& ) {} - virtual void StartTestCase( const Catch::TestCase& testInfo ) { - m_currentStats->m_testCaseStats.push_back( TestCaseStats( testInfo.getClassName(), testInfo.getName() ) ); + virtual void StartTestCase( const Catch::TestCaseInfo& testInfo ) { + m_currentStats->m_testCaseStats.push_back( TestCaseStats( testInfo.className, testInfo.name ) ); m_currentTestCaseStats.push_back( &m_currentStats->m_testCaseStats.back() ); } @@ -151,7 +151,7 @@ namespace Catch { } } - virtual void EndTestCase( const Catch::TestCase&, const Totals&, const std::string& stdOut, const std::string& stdErr ) { + virtual void EndTestCase( const Catch::TestCaseInfo&, const Totals&, const std::string& stdOut, const std::string& stdErr ) { m_currentTestCaseStats.pop_back(); assert( m_currentTestCaseStats.empty() ); TestCaseStats& testCaseStats = m_currentStats->m_testCaseStats.back(); diff --git a/include/reporters/catch_reporter_xml.hpp b/include/reporters/catch_reporter_xml.hpp index a38b1031..27d848e8 100644 --- a/include/reporters/catch_reporter_xml.hpp +++ b/include/reporters/catch_reporter_xml.hpp @@ -70,8 +70,8 @@ namespace Catch { m_xml.endElement(); } - virtual void StartTestCase( const Catch::TestCase& testInfo ) { - m_xml.startElement( "TestCase" ).writeAttribute( "name", testInfo.getName() ); + virtual void StartTestCase( const Catch::TestCaseInfo& testInfo ) { + m_xml.startElement( "TestCase" ).writeAttribute( "name", testInfo.name ); m_currentTestSuccess = true; } @@ -129,7 +129,7 @@ namespace Catch { // !TBD } - virtual void EndTestCase( const Catch::TestCase&, const Totals&, const std::string&, const std::string& ) { + virtual void EndTestCase( const Catch::TestCaseInfo&, const Totals&, const std::string&, const std::string& ) { m_xml.scopedElement( "OverallResult" ).writeAttribute( "success", m_currentTestSuccess ); m_xml.endElement(); } diff --git a/projects/SelfTest/Baselines/results.txt b/projects/SelfTest/Baselines/results.txt index 7c0d287e..57cb29f1 100644 --- a/projects/SelfTest/Baselines/results.txt +++ b/projects/SelfTest/Baselines/results.txt @@ -196,12 +196,12 @@ [Running: ./succeeding/conditions/ptr] /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:285: p == __null succeeded for: __null == 0 /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:286: p == pNULL succeeded for: __null == __null -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:291: p != __null succeeded for: 0x7fff5d60b078 != 0 -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:294: cp != __null succeeded for: 0x7fff5d60b078 != 0 -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:297: cpc != __null succeeded for: 0x7fff5d60b078 != 0 +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:291: p != __null succeeded for: 0x7fff57d28028 != 0 +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:294: cp != __null succeeded for: 0x7fff57d28028 != 0 +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:297: cpc != __null succeeded for: 0x7fff57d28028 != 0 /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:299: returnsNull() == __null succeeded for: {null string} == 0 /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:300: returnsConstNull() == __null succeeded for: {null string} == 0 -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:302: __null != p succeeded for: 0 != 0x7fff5d60b078 +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/ConditionTests.cpp:302: __null != p succeeded for: 0 != 0x7fff57d28028 [Finished: './succeeding/conditions/ptr' All tests passed (8 assertions in 1 test case)] [Running: ./succeeding/conditions/not] @@ -845,57 +845,57 @@ No assertions in test case, 'second tag' [Running: selftest/main] [Started section: 'selftest/expected result'] [Started section: 'selftest/expected result/failing tests'] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:181: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:182: succeeded [with message: Tests failed, as expected] [End of section: 'selftest/expected result/failing tests' All 26 assertions passed] @@ -903,96 +903,96 @@ No assertions in test case, 'second tag' [Started section: 'selftest/expected result'] [Started section: 'selftest/expected result/succeeding tests'] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] Message from section one Message from section two -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] Some information -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:169: succeeded +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/catch_self_test.hpp:170: succeeded [with message: Tests passed, as expected] [End of section: 'selftest/expected result/succeeding tests' All 44 assertions passed] @@ -1003,11 +1003,11 @@ Message from section two Some information [Started section: 'selftest/test counts'] [Started section: 'selftest/test counts/succeeding tests'] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:40: totals.assertions.passed == 293 failed for: 294 == 293 +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:40: totals.assertions.passed == 294 succeeded for: 294 == 294 /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:41: totals.assertions.failed == 0 succeeded for: 0 == 0 -[End of section: 'selftest/test counts/succeeding tests' 1 of 2 assertions failed] +[End of section: 'selftest/test counts/succeeding tests' All 2 assertions passed] -[End of section: 'selftest/test counts' 1 of 2 assertions failed] +[End of section: 'selftest/test counts' All 2 assertions passed] [Started section: 'selftest/test counts'] [Started section: 'selftest/test counts/failing tests'] @@ -1017,7 +1017,7 @@ Some information [End of section: 'selftest/test counts' All 2 assertions passed] -[Finished: 'selftest/main' 1 test case failed (1 of 74 assertions failed)] +[Finished: 'selftest/main' All tests passed (74 assertions in 1 test case)] [Running: meta/Misc/Sections] /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:57: totals.assertions.passed == 2 succeeded for: 2 == 2 @@ -1037,8 +1037,8 @@ Some information [Started section: '-t/1'] /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:108: parseIntoConfig( argv, config ) succeeded /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:110: config.filters.size() == 1 succeeded for: 1 == 1 -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:111: config.filters[0].shouldInclude( makeTestCase( "notIncluded" ) ) == false succeeded for: false == false -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:112: config.filters[0].shouldInclude( makeTestCase( "test1" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:111: config.filters[0].shouldInclude( fakeTestCase( "notIncluded" ) ) == false succeeded for: false == false +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:112: config.filters[0].shouldInclude( fakeTestCase( "test1" ) ) succeeded for: true [End of section: '-t/1' All 4 assertions passed] [End of section: 'test lists' All 4 assertions passed] @@ -1047,8 +1047,8 @@ Some information [Started section: '-t/exclude:1'] /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:116: parseIntoConfig( argv, config ) succeeded /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:118: config.filters.size() == 1 succeeded for: 1 == 1 -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:119: config.filters[0].shouldInclude( makeTestCase( "test1" ) ) == false succeeded for: false == false -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:120: config.filters[0].shouldInclude( makeTestCase( "alwaysIncluded" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:119: config.filters[0].shouldInclude( fakeTestCase( "test1" ) ) == false succeeded for: false == false +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:120: config.filters[0].shouldInclude( fakeTestCase( "alwaysIncluded" ) ) succeeded for: true [End of section: '-t/exclude:1' All 4 assertions passed] [End of section: 'test lists' All 4 assertions passed] @@ -1057,8 +1057,8 @@ Some information [Started section: '--test/1'] /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:125: parseIntoConfig( argv, config ) succeeded /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:127: config.filters.size() == 1 succeeded for: 1 == 1 -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:128: config.filters[0].shouldInclude( makeTestCase( "notIncluded" ) ) == false succeeded for: false == false -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:129: config.filters[0].shouldInclude( makeTestCase( "test1" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:128: config.filters[0].shouldInclude( fakeTestCase( "notIncluded" ) ) == false succeeded for: false == false +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:129: config.filters[0].shouldInclude( fakeTestCase( "test1" ) ) succeeded for: true [End of section: '--test/1' All 4 assertions passed] [End of section: 'test lists' All 4 assertions passed] @@ -1067,8 +1067,8 @@ Some information [Started section: '--test/exclude:1'] /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:134: parseIntoConfig( argv, config ) succeeded /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:136: config.filters.size() == 1 succeeded for: 1 == 1 -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:137: config.filters[0].shouldInclude( makeTestCase( "test1" ) ) == false succeeded for: false == false -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:138: config.filters[0].shouldInclude( makeTestCase( "alwaysIncluded" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:137: config.filters[0].shouldInclude( fakeTestCase( "test1" ) ) == false succeeded for: false == false +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:138: config.filters[0].shouldInclude( fakeTestCase( "alwaysIncluded" ) ) succeeded for: true [End of section: '--test/exclude:1' All 4 assertions passed] [End of section: 'test lists' All 4 assertions passed] @@ -1077,8 +1077,8 @@ Some information [Started section: '--test/exclude:2'] /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:143: parseIntoConfig( argv, config ) succeeded /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:145: config.filters.size() == 1 succeeded for: 1 == 1 -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:146: config.filters[0].shouldInclude( makeTestCase( "test1" ) ) == false succeeded for: false == false -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:147: config.filters[0].shouldInclude( makeTestCase( "alwaysIncluded" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:146: config.filters[0].shouldInclude( fakeTestCase( "test1" ) ) == false succeeded for: false == false +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:147: config.filters[0].shouldInclude( fakeTestCase( "alwaysIncluded" ) ) succeeded for: true [End of section: '--test/exclude:2' All 4 assertions passed] [End of section: 'test lists' All 4 assertions passed] @@ -1087,9 +1087,9 @@ Some information [Started section: '-t/2'] /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:152: parseIntoConfig( argv, config ) succeeded /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:154: config.filters.size() == 1 succeeded for: 1 == 1 -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:155: config.filters[0].shouldInclude( makeTestCase( "notIncluded" ) ) == false succeeded for: false == false -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:156: config.filters[0].shouldInclude( makeTestCase( "test1" ) ) succeeded for: true -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:157: config.filters[0].shouldInclude( makeTestCase( "test2" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:155: config.filters[0].shouldInclude( fakeTestCase( "notIncluded" ) ) == false succeeded for: false == false +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:156: config.filters[0].shouldInclude( fakeTestCase( "test1" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:157: config.filters[0].shouldInclude( fakeTestCase( "test2" ) ) succeeded for: true [End of section: '-t/2' All 5 assertions passed] [End of section: 'test lists' All 5 assertions passed] @@ -1253,43 +1253,43 @@ Some information [Finished: 'selftest/parser/2' All tests passed (66 assertions in 1 test case)] [Running: selftest/test filter] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:291: matchAny.shouldInclude( makeTestCase( "any" ) ) succeeded for: true -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:292: matchNone.shouldInclude( makeTestCase( "any" ) ) == false succeeded for: false == false -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:297: matchHidden.shouldInclude( makeTestCase( "any" ) ) == false succeeded for: false == false -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:298: matchNonHidden.shouldInclude( makeTestCase( "any" ) ) succeeded for: true -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:300: matchHidden.shouldInclude( makeTestCase( "./any" ) ) succeeded for: true -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:301: matchNonHidden.shouldInclude( makeTestCase( "./any" ) ) == false succeeded for: false == false +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:291: matchAny.shouldInclude( fakeTestCase( "any" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:292: matchNone.shouldInclude( fakeTestCase( "any" ) ) == false succeeded for: false == false +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:297: matchHidden.shouldInclude( fakeTestCase( "any" ) ) == false succeeded for: false == false +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:298: matchNonHidden.shouldInclude( fakeTestCase( "any" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:300: matchHidden.shouldInclude( fakeTestCase( "./any" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:301: matchNonHidden.shouldInclude( fakeTestCase( "./any" ) ) == false succeeded for: false == false [Finished: 'selftest/test filter' All tests passed (6 assertions in 1 test case)] [Running: selftest/test filters] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:312: matchHidden.shouldInclude( makeTestCase( "./something" ) ) succeeded for: true -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:314: filters.shouldInclude( makeTestCase( "any" ) ) == false succeeded for: false == false -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:315: filters.shouldInclude( makeTestCase( "./something" ) ) succeeded for: true -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:316: filters.shouldInclude( makeTestCase( "./anything" ) ) == false succeeded for: false == false +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:312: matchHidden.shouldInclude( fakeTestCase( "./something" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:314: filters.shouldInclude( fakeTestCase( "any" ) ) == false succeeded for: false == false +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:315: filters.shouldInclude( fakeTestCase( "./something" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:316: filters.shouldInclude( fakeTestCase( "./anything" ) ) == false succeeded for: false == false [Finished: 'selftest/test filters' All tests passed (4 assertions in 1 test case)] [Running: selftest/filter/prefix wildcard] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:322: matchBadgers.shouldInclude( makeTestCase( "big badger" ) ) succeeded for: true -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:323: matchBadgers.shouldInclude( makeTestCase( "little badgers" ) ) == false succeeded for: false == false +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:322: matchBadgers.shouldInclude( fakeTestCase( "big badger" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:323: matchBadgers.shouldInclude( fakeTestCase( "little badgers" ) ) == false succeeded for: false == false [Finished: 'selftest/filter/prefix wildcard' All tests passed (2 assertions in 1 test case)] [Running: selftest/filter/wildcard at both ends] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:328: matchBadgers.shouldInclude( makeTestCase( "big badger" ) ) succeeded for: true -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:329: matchBadgers.shouldInclude( makeTestCase( "little badgers" ) ) succeeded for: true -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:330: matchBadgers.shouldInclude( makeTestCase( "badgers are big" ) ) succeeded for: true -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:331: matchBadgers.shouldInclude( makeTestCase( "hedgehogs" ) ) == false succeeded for: false == false +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:328: matchBadgers.shouldInclude( fakeTestCase( "big badger" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:329: matchBadgers.shouldInclude( fakeTestCase( "little badgers" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:330: matchBadgers.shouldInclude( fakeTestCase( "badgers are big" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:331: matchBadgers.shouldInclude( fakeTestCase( "hedgehogs" ) ) == false succeeded for: false == false [Finished: 'selftest/filter/wildcard at both ends' All tests passed (4 assertions in 1 test case)] [Running: selftest/option parsers] /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:351: opt.parseIntoConfig( parser, config ) succeeded /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:353: config.filters.size() == 1 succeeded for: 1 == 1 -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:354: config.filters[0].shouldInclude( makeTestCase( "notIncluded" ) ) == false succeeded for: false == false -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:355: config.filters[0].shouldInclude( makeTestCase( "test1" ) ) succeeded for: true +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:354: config.filters[0].shouldInclude( fakeTestCase( "notIncluded" ) ) == false succeeded for: false == false +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:355: config.filters[0].shouldInclude( fakeTestCase( "test1" ) ) succeeded for: true [Finished: 'selftest/option parsers' All tests passed (4 assertions in 1 test case)] [Running: selftest/tags] [Started section: 'one tag'] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:369: oneTag.getDescription() == "" succeeded for: "" == "" +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:369: oneTag.getTestCaseInfo().description == "" succeeded for: "" == "" /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:370: oneTag.hasTag( "one" ) succeeded for: true /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:371: oneTag.getTags().size() == 1 succeeded for: 1 == 1 /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:373: oneTag.matchesTags( p1 ) == true succeeded for: true == true @@ -1300,7 +1300,7 @@ Some information [End of section: 'one tag' All 8 assertions passed] [Started section: 'two tags'] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:383: twoTags.getDescription() == "" succeeded for: "" == "" +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:383: twoTags.getTestCaseInfo().description == "" succeeded for: "" == "" /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:384: twoTags.hasTag( "one" ) succeeded for: true /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:385: twoTags.hasTag( "two" ) succeeded for: true /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:386: twoTags.hasTag( "three" ) == false succeeded for: false == false @@ -1313,20 +1313,20 @@ Some information [End of section: 'two tags' All 10 assertions passed] [Started section: 'one tag with characters either side'] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:399: oneTagWithExtras.getDescription() == "1234" succeeded for: "1234" == "1234" +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:399: oneTagWithExtras.getTestCaseInfo().description == "1234" succeeded for: "1234" == "1234" /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:400: oneTagWithExtras.hasTag( "one" ) succeeded for: true /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:401: oneTagWithExtras.hasTag( "two" ) == false succeeded for: false == false /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:402: oneTagWithExtras.getTags().size() == 1 succeeded for: 1 == 1 [End of section: 'one tag with characters either side' All 4 assertions passed] [Started section: 'start of a tag, but not closed'] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:409: oneTagOpen.getDescription() == "[one" succeeded for: "[one" == "[one" +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:409: oneTagOpen.getTestCaseInfo().description == "[one" succeeded for: "[one" == "[one" /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:410: oneTagOpen.hasTag( "one" ) == false succeeded for: false == false /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:411: oneTagOpen.getTags().size() == 0 succeeded for: 0 == 0 [End of section: 'start of a tag, but not closed' All 3 assertions passed] [Started section: 'hidden'] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:417: oneTag.getDescription() == "" succeeded for: "" == "" +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:417: oneTag.getTestCaseInfo().description == "" succeeded for: "" == "" /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:418: oneTag.hasTag( "hide" ) succeeded for: true /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:419: oneTag.isHidden() succeeded for: true /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TestMain.cpp:421: oneTag.matchesTags( "~[hide]" ) == false succeeded for: false == false @@ -1357,7 +1357,7 @@ 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] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:95: &o1 == &o2 failed for: 0x7fff5d60b858 == 0x7fff5d60b850 +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:95: &o1 == &o2 failed for: 0x7fff57d28808 == 0x7fff57d28800 /Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:96: o1 == o2 failed for: {?} == {?} [Finished: './failing/Tricky/non streamable type' 1 test case failed (All 2 assertions failed)] @@ -1383,7 +1383,7 @@ No assertions in test case, './inprogress/failing/Tricky/compound lhs' [Finished: './succeeding/enum/bits' All tests passed (1 assertion in 1 test case)] [Running: ./succeeding/boolean member] -/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:239: obj.prop != __null succeeded for: 0x7fff5d60b850 != 0 +/Users/Phil/Dev/OSS/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/../../../SelfTest/TrickyTests.cpp:239: obj.prop != __null succeeded for: 0x7fff57d28800 != 0 [Finished: './succeeding/boolean member' All tests passed (1 assertion in 1 test case)] [Running: ./succeeding/unimplemented static bool] @@ -1430,8 +1430,8 @@ No assertions in test case, './inprogress/failing/Tricky/compound lhs' [End of section: 'This stuff exists' 1 assertion passed] [Finished: 'scenario name' All tests passed (1 assertion in 1 test case)] -[End of group: '~dummy'. 46 of 98 test cases failed (104 of 615 assertions failed)] +[End of group: '~dummy'. 45 of 98 test cases failed (103 of 615 assertions failed)] -[Testing completed. 46 of 98 test cases failed (104 of 615 assertions failed)] +[Testing completed. 45 of 98 test cases failed (103 of 615 assertions failed)] diff --git a/projects/SelfTest/TestMain.cpp b/projects/SelfTest/TestMain.cpp index 229e7405..19fcbd48 100644 --- a/projects/SelfTest/TestMain.cpp +++ b/projects/SelfTest/TestMain.cpp @@ -37,7 +37,7 @@ 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/*" ); - CHECK( totals.assertions.passed == 293 ); + CHECK( totals.assertions.passed == 294 ); CHECK( totals.assertions.failed == 0 ); } @@ -86,7 +86,7 @@ std::string parseIntoConfigAndReturnError( const char * (&argv)[size], Catch::Co return ""; } -inline Catch::TestCase makeTestCase( const char* name ){ return Catch::TestCase( NULL, "", name, "", CATCH_INTERNAL_LINEINFO ); } +inline Catch::TestCase fakeTestCase( const char* name ){ return Catch::makeTestCase( NULL, "", name, "", CATCH_INTERNAL_LINEINFO ); } TEST_CASE( "selftest/parser/2", "ConfigData" ) { @@ -108,16 +108,16 @@ TEST_CASE( "selftest/parser/2", "ConfigData" ) { CHECK_NOTHROW( parseIntoConfig( argv, config ) ); REQUIRE( config.filters.size() == 1 ); - REQUIRE( config.filters[0].shouldInclude( makeTestCase( "notIncluded" ) ) == false ); - REQUIRE( config.filters[0].shouldInclude( makeTestCase( "test1" ) ) ); + REQUIRE( config.filters[0].shouldInclude( fakeTestCase( "notIncluded" ) ) == false ); + REQUIRE( config.filters[0].shouldInclude( fakeTestCase( "test1" ) ) ); } SECTION( "-t/exclude:1", "Specify one test case exclusion using -t exclude:" ) { const char* argv[] = { "test", "-t", "exclude:test1" }; CHECK_NOTHROW( parseIntoConfig( argv, config ) ); REQUIRE( config.filters.size() == 1 ); - REQUIRE( config.filters[0].shouldInclude( makeTestCase( "test1" ) ) == false ); - REQUIRE( config.filters[0].shouldInclude( makeTestCase( "alwaysIncluded" ) ) ); + REQUIRE( config.filters[0].shouldInclude( fakeTestCase( "test1" ) ) == false ); + REQUIRE( config.filters[0].shouldInclude( fakeTestCase( "alwaysIncluded" ) ) ); } SECTION( "--test/1", "Specify one test case using --test" ) { @@ -125,8 +125,8 @@ TEST_CASE( "selftest/parser/2", "ConfigData" ) { CHECK_NOTHROW( parseIntoConfig( argv, config ) ); REQUIRE( config.filters.size() == 1 ); - REQUIRE( config.filters[0].shouldInclude( makeTestCase( "notIncluded" ) ) == false ); - REQUIRE( config.filters[0].shouldInclude( makeTestCase( "test1" ) ) ); + REQUIRE( config.filters[0].shouldInclude( fakeTestCase( "notIncluded" ) ) == false ); + REQUIRE( config.filters[0].shouldInclude( fakeTestCase( "test1" ) ) ); } SECTION( "--test/exclude:1", "Specify one test case exclusion using --test exclude:" ) { @@ -134,8 +134,8 @@ TEST_CASE( "selftest/parser/2", "ConfigData" ) { CHECK_NOTHROW( parseIntoConfig( argv, config ) ); REQUIRE( config.filters.size() == 1 ); - REQUIRE( config.filters[0].shouldInclude( makeTestCase( "test1" ) ) == false ); - REQUIRE( config.filters[0].shouldInclude( makeTestCase( "alwaysIncluded" ) ) ); + REQUIRE( config.filters[0].shouldInclude( fakeTestCase( "test1" ) ) == false ); + REQUIRE( config.filters[0].shouldInclude( fakeTestCase( "alwaysIncluded" ) ) ); } SECTION( "--test/exclude:2", "Specify one test case exclusion using --test ~" ) { @@ -143,8 +143,8 @@ TEST_CASE( "selftest/parser/2", "ConfigData" ) { CHECK_NOTHROW( parseIntoConfig( argv, config ) ); REQUIRE( config.filters.size() == 1 ); - REQUIRE( config.filters[0].shouldInclude( makeTestCase( "test1" ) ) == false ); - REQUIRE( config.filters[0].shouldInclude( makeTestCase( "alwaysIncluded" ) ) ); + REQUIRE( config.filters[0].shouldInclude( fakeTestCase( "test1" ) ) == false ); + REQUIRE( config.filters[0].shouldInclude( fakeTestCase( "alwaysIncluded" ) ) ); } SECTION( "-t/2", "Specify two test cases using -t" ) { @@ -152,9 +152,9 @@ TEST_CASE( "selftest/parser/2", "ConfigData" ) { CHECK_NOTHROW( parseIntoConfig( argv, config ) ); REQUIRE( config.filters.size() == 1 ); - REQUIRE( config.filters[0].shouldInclude( makeTestCase( "notIncluded" ) ) == false ); - REQUIRE( config.filters[0].shouldInclude( makeTestCase( "test1" ) ) ); - REQUIRE( config.filters[0].shouldInclude( makeTestCase( "test2" ) ) ); + REQUIRE( config.filters[0].shouldInclude( fakeTestCase( "notIncluded" ) ) == false ); + REQUIRE( config.filters[0].shouldInclude( fakeTestCase( "test1" ) ) ); + REQUIRE( config.filters[0].shouldInclude( fakeTestCase( "test2" ) ) ); } SECTION( "-t/0", "When no test names are supplied it is an error" ) { @@ -288,17 +288,17 @@ TEST_CASE( "selftest/test filter", "Individual filters" ) { Catch::TestCaseFilter matchAny( "*" ); Catch::TestCaseFilter matchNone( "*", Catch::IfFilterMatches::ExcludeTests ); - CHECK( matchAny.shouldInclude( makeTestCase( "any" ) )); - CHECK( matchNone.shouldInclude( makeTestCase( "any" ) ) == false ); + CHECK( matchAny.shouldInclude( fakeTestCase( "any" ) )); + CHECK( matchNone.shouldInclude( fakeTestCase( "any" ) ) == false ); Catch::TestCaseFilter matchHidden( "./*" ); Catch::TestCaseFilter matchNonHidden( "./*", Catch::IfFilterMatches::ExcludeTests ); - CHECK( matchHidden.shouldInclude( makeTestCase( "any" ) ) == false ); - CHECK( matchNonHidden.shouldInclude( makeTestCase( "any" ) ) ); + CHECK( matchHidden.shouldInclude( fakeTestCase( "any" ) ) == false ); + CHECK( matchNonHidden.shouldInclude( fakeTestCase( "any" ) ) ); - CHECK( matchHidden.shouldInclude( makeTestCase( "./any" ) ) ); - CHECK( matchNonHidden.shouldInclude( makeTestCase( "./any" ) ) == false ); + CHECK( matchHidden.shouldInclude( fakeTestCase( "./any" ) ) ); + CHECK( matchNonHidden.shouldInclude( fakeTestCase( "./any" ) ) == false ); } TEST_CASE( "selftest/test filters", "Sets of filters" ) { @@ -309,26 +309,26 @@ TEST_CASE( "selftest/test filters", "Sets of filters" ) { filters.addFilter( matchHidden ); filters.addFilter( dontMatchA ); - CHECK( matchHidden.shouldInclude( makeTestCase( "./something" ) ) ); + CHECK( matchHidden.shouldInclude( fakeTestCase( "./something" ) ) ); - CHECK( filters.shouldInclude( makeTestCase( "any" ) ) == false ); - CHECK( filters.shouldInclude( makeTestCase( "./something" ) ) ); - CHECK( filters.shouldInclude( makeTestCase( "./anything" ) ) == false ); + CHECK( filters.shouldInclude( fakeTestCase( "any" ) ) == false ); + CHECK( filters.shouldInclude( fakeTestCase( "./something" ) ) ); + CHECK( filters.shouldInclude( fakeTestCase( "./anything" ) ) == false ); } TEST_CASE( "selftest/filter/prefix wildcard", "Individual filters with wildcards at the start" ) { Catch::TestCaseFilter matchBadgers( "*badger" ); - CHECK( matchBadgers.shouldInclude( makeTestCase( "big badger" ) )); - CHECK( matchBadgers.shouldInclude( makeTestCase( "little badgers" ) ) == false ); + CHECK( matchBadgers.shouldInclude( fakeTestCase( "big badger" ) )); + CHECK( matchBadgers.shouldInclude( fakeTestCase( "little badgers" ) ) == false ); } TEST_CASE( "selftest/filter/wildcard at both ends", "Individual filters with wildcards at both ends" ) { Catch::TestCaseFilter matchBadgers( "*badger*" ); - CHECK( matchBadgers.shouldInclude( makeTestCase( "big badger" ) )); - CHECK( matchBadgers.shouldInclude( makeTestCase( "little badgers" ) ) ); - CHECK( matchBadgers.shouldInclude( makeTestCase( "badgers are big" ) ) ); - CHECK( matchBadgers.shouldInclude( makeTestCase( "hedgehogs" ) ) == false ); + CHECK( matchBadgers.shouldInclude( fakeTestCase( "big badger" ) )); + CHECK( matchBadgers.shouldInclude( fakeTestCase( "little badgers" ) ) ); + CHECK( matchBadgers.shouldInclude( fakeTestCase( "badgers are big" ) ) ); + CHECK( matchBadgers.shouldInclude( fakeTestCase( "hedgehogs" ) ) == false ); } @@ -351,8 +351,8 @@ TEST_CASE( "selftest/option parsers", "" ) CHECK_NOTHROW( opt.parseIntoConfig( parser, config ) ); REQUIRE( config.filters.size() == 1 ); - REQUIRE( config.filters[0].shouldInclude( makeTestCase( "notIncluded" ) ) == false ); - REQUIRE( config.filters[0].shouldInclude( makeTestCase( "test1" ) ) ); + REQUIRE( config.filters[0].shouldInclude( fakeTestCase( "notIncluded" ) ) == false ); + REQUIRE( config.filters[0].shouldInclude( fakeTestCase( "test1" ) ) ); } TEST_CASE( "selftest/tags", "" ) { @@ -364,9 +364,9 @@ TEST_CASE( "selftest/tags", "" ) { std::string p5 = "[one][two]~[hide],[three]"; SECTION( "one tag", "" ) { - Catch::TestCase oneTag( NULL, "", "test", "[one]", CATCH_INTERNAL_LINEINFO ); + Catch::TestCase oneTag = makeTestCase( NULL, "", "test", "[one]", CATCH_INTERNAL_LINEINFO ); - CHECK( oneTag.getDescription() == "" ); + CHECK( oneTag.getTestCaseInfo().description == "" ); CHECK( oneTag.hasTag( "one" ) ); CHECK( oneTag.getTags().size() == 1 ); @@ -378,9 +378,9 @@ TEST_CASE( "selftest/tags", "" ) { } SECTION( "two tags", "" ) { - Catch::TestCase twoTags( NULL, "", "test", "[one][two]", CATCH_INTERNAL_LINEINFO ); + Catch::TestCase twoTags= makeTestCase( NULL, "", "test", "[one][two]", CATCH_INTERNAL_LINEINFO ); - CHECK( twoTags.getDescription() == "" ); + CHECK( twoTags.getTestCaseInfo().description == "" ); CHECK( twoTags.hasTag( "one" ) ); CHECK( twoTags.hasTag( "two" ) ); CHECK( twoTags.hasTag( "three" ) == false ); @@ -395,8 +395,8 @@ TEST_CASE( "selftest/tags", "" ) { SECTION( "one tag with characters either side", "" ) { - Catch::TestCase oneTagWithExtras( NULL, "", "test", "12[one]34", CATCH_INTERNAL_LINEINFO ); - CHECK( oneTagWithExtras.getDescription() == "1234" ); + Catch::TestCase oneTagWithExtras = makeTestCase( NULL, "", "test", "12[one]34", CATCH_INTERNAL_LINEINFO ); + CHECK( oneTagWithExtras.getTestCaseInfo().description == "1234" ); CHECK( oneTagWithExtras.hasTag( "one" ) ); CHECK( oneTagWithExtras.hasTag( "two" ) == false ); CHECK( oneTagWithExtras.getTags().size() == 1 ); @@ -404,17 +404,17 @@ TEST_CASE( "selftest/tags", "" ) { SECTION( "start of a tag, but not closed", "" ) { - Catch::TestCase oneTagOpen( NULL, "", "test", "[one", CATCH_INTERNAL_LINEINFO ); + Catch::TestCase oneTagOpen = makeTestCase( NULL, "", "test", "[one", CATCH_INTERNAL_LINEINFO ); - CHECK( oneTagOpen.getDescription() == "[one" ); + CHECK( oneTagOpen.getTestCaseInfo().description == "[one" ); CHECK( oneTagOpen.hasTag( "one" ) == false ); CHECK( oneTagOpen.getTags().size() == 0 ); } SECTION( "hidden", "" ) { - Catch::TestCase oneTag( NULL, "", "test", "[hide]", CATCH_INTERNAL_LINEINFO ); + Catch::TestCase oneTag = makeTestCase( NULL, "", "test", "[hide]", CATCH_INTERNAL_LINEINFO ); - CHECK( oneTag.getDescription() == "" ); + CHECK( oneTag.getTestCaseInfo().description == "" ); CHECK( oneTag.hasTag( "hide" ) ); CHECK( oneTag.isHidden() ); diff --git a/projects/SelfTest/catch_self_test.hpp b/projects/SelfTest/catch_self_test.hpp index 5c30dd63..6f926814 100644 --- a/projects/SelfTest/catch_self_test.hpp +++ b/projects/SelfTest/catch_self_test.hpp @@ -82,17 +82,17 @@ namespace Catch { closeLabel( recordSections, sectionName ); } - virtual void StartTestCase( const TestCase& testInfo ) { - openLabel( recordTestCases, testInfo.getName() ); + virtual void StartTestCase( const TestCaseInfo& testInfo ) { + openLabel( recordTestCases, testInfo.name ); } virtual void Aborted(){} - virtual void EndTestCase( const TestCase& testInfo, + virtual void EndTestCase( const TestCaseInfo& testInfo, const Totals&, const std::string&, const std::string& ) { - closeLabel( recordTestCases, testInfo.getName() ); + closeLabel( recordTestCases, testInfo.name ); } virtual void Result( const AssertionResult& assertionResult ); @@ -155,13 +155,14 @@ namespace Catch { void operator()( const TestCase& testCase ) { EmbeddedRunner runner; - Totals totals = runner.runMatching( testCase.getName() ); + std::string name = testCase.getTestCaseInfo().name; + Totals totals = runner.runMatching( name ); switch( m_expectedResult ) { case Expected::ToSucceed: if( totals.assertions.failed > 0 ) { INFO( runner.getOutput() ); FAIL( "Expected test case '" - << testCase.getName() + << name << "' to succeed but there was/ were " << totals.assertions.failed << " failure(s)" ); } @@ -173,7 +174,7 @@ namespace Catch { if( totals.assertions.failed == 0 ) { INFO( runner.getOutput() ); FAIL( "Expected test case '" - << testCase.getName() + << name << "' to fail but there was/ were " << totals.assertions.passed << " success(es)" ); }