Restored quick way to add test programatically

This commit is contained in:
Phil Nash 2012-09-07 17:52:15 +01:00
parent f82d65fb41
commit c682a163b1
2 changed files with 22 additions and 1 deletions

View File

@ -136,6 +136,12 @@ namespace Catch {
delete m_streambuf; delete m_streambuf;
m_streambuf = newBuf; m_streambuf = newBuf;
} }
void addTestSpec( const std::string& testSpec ) {
TestCaseFilters filters( testSpec );
filters.addFilter( TestCaseFilter( testSpec ) );
m_data.filters.push_back( filters );
}
virtual bool includeSuccessfulResults() const { virtual bool includeSuccessfulResults() const {
return m_data.includeWhichResults == Include::SuccessfulResults; return m_data.includeWhichResults == Include::SuccessfulResults;

View File

@ -16,6 +16,7 @@
namespace Catch { namespace Catch {
struct IfFilterMatches{ enum DoWhat { struct IfFilterMatches{ enum DoWhat {
AutoDetectBehaviour,
IncludeTests, IncludeTests,
ExcludeTests ExcludeTests
}; }; }; };
@ -29,11 +30,25 @@ namespace Catch {
}; };
public: public:
TestCaseFilter( const std::string& testSpec, IfFilterMatches::DoWhat matchBehaviour = IfFilterMatches::IncludeTests ) TestCaseFilter( const std::string& testSpec, IfFilterMatches::DoWhat matchBehaviour = IfFilterMatches::AutoDetectBehaviour )
: m_stringToMatch( testSpec ), : m_stringToMatch( testSpec ),
m_filterType( matchBehaviour ), m_filterType( matchBehaviour ),
m_wildcardPosition( NoWildcard ) m_wildcardPosition( NoWildcard )
{ {
if( m_filterType == IfFilterMatches::AutoDetectBehaviour ) {
if( startsWith( m_stringToMatch, "exclude:" ) ) {
m_stringToMatch = m_stringToMatch.substr( 8 );
m_filterType = IfFilterMatches::ExcludeTests;
}
else if( startsWith( m_stringToMatch, "~" ) ) {
m_stringToMatch = m_stringToMatch.substr( 1 );
m_filterType = IfFilterMatches::ExcludeTests;
}
else {
m_filterType = IfFilterMatches::IncludeTests;
}
}
if( m_stringToMatch[0] == '*' ) { if( m_stringToMatch[0] == '*' ) {
m_stringToMatch = m_stringToMatch.substr( 1 ); m_stringToMatch = m_stringToMatch.substr( 1 );
m_wildcardPosition = (WildcardPosition)( m_wildcardPosition | WildcardAtStart ); m_wildcardPosition = (WildcardPosition)( m_wildcardPosition | WildcardAtStart );