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;
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 {
return m_data.includeWhichResults == Include::SuccessfulResults;

View File

@ -16,6 +16,7 @@
namespace Catch {
struct IfFilterMatches{ enum DoWhat {
AutoDetectBehaviour,
IncludeTests,
ExcludeTests
}; };
@ -29,11 +30,25 @@ namespace Catch {
};
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_filterType( matchBehaviour ),
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] == '*' ) {
m_stringToMatch = m_stringToMatch.substr( 1 );
m_wildcardPosition = (WildcardPosition)( m_wildcardPosition | WildcardAtStart );