Split TestCaseInfo into a data only component and the test case function and behaviour.

Reporters only get to see the former
This commit is contained in:
Phil Nash 2012-11-25 11:19:55 +00:00
parent 06a671a349
commit 8baa06c63e
13 changed files with 298 additions and 285 deletions

View File

@ -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;

View File

@ -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() )

View File

@ -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 );

View File

@ -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<std::string>& _tags,
bool _isHidden,
const SourceLineInfo& _lineInfo );
TestCaseInfo( const TestCaseInfo& other );
std::string name;
std::string className;
std::string description;
std::set<std::string> 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<ITestCase> m_test;
std::string m_className;
std::string m_name;
std::string m_description;
std::set<std::string> m_tags;
SourceLineInfo m_lineInfo;
bool m_isHidden;
Ptr<ITestCase> 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

View File

@ -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<std::string> 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<std::string>& _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<std::string>& 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

View File

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

View File

@ -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:

View File

@ -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;
}

View File

@ -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();

View File

@ -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();
}

View File

@ -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)]

View File

@ -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() );

View File

@ -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)" );
}