mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-26 15:26:11 +01:00
Patch:Failure to apply filters through external file
This commit is contained in:
parent
75200e199e
commit
adb4789136
@ -7,6 +7,7 @@
|
||||
|
||||
#include "catch_test_spec_parser.h"
|
||||
|
||||
|
||||
namespace Catch {
|
||||
|
||||
TestSpecParser::TestSpecParser( ITagAliasRegistry const& tagAliases ) : m_tagAliases( &tagAliases ) {}
|
||||
@ -18,6 +19,7 @@ namespace Catch {
|
||||
m_escapeChars.clear();
|
||||
m_substring.reserve(m_arg.size());
|
||||
m_patternName.reserve(m_arg.size());
|
||||
m_realPatternPos = 0;
|
||||
for( m_pos = 0; m_pos < m_arg.size(); ++m_pos )
|
||||
visitChar( m_arg[m_pos] );
|
||||
endMode();
|
||||
@ -32,6 +34,7 @@ namespace Catch {
|
||||
escape();
|
||||
m_substring += c;
|
||||
m_patternName += c;
|
||||
m_realPatternPos++;
|
||||
return;
|
||||
}else if((m_mode != EscapedName) && (c == ',') ) {
|
||||
endMode();
|
||||
@ -49,7 +52,10 @@ namespace Catch {
|
||||
break;
|
||||
case EscapedName:
|
||||
endMode();
|
||||
break;
|
||||
m_substring += c;
|
||||
m_patternName += c;
|
||||
m_realPatternPos++;
|
||||
return;
|
||||
default:
|
||||
case Tag:
|
||||
case QuotedName:
|
||||
@ -59,8 +65,10 @@ namespace Catch {
|
||||
}
|
||||
|
||||
m_substring += c;
|
||||
if( !isControlChar( c ) )
|
||||
if( !isControlChar( c ) ) {
|
||||
m_patternName += c;
|
||||
m_realPatternPos++;
|
||||
}
|
||||
}
|
||||
// Two of the processing methods return true to signal the caller to return
|
||||
// without adding the given character to the current pattern strings
|
||||
@ -119,7 +127,7 @@ namespace Catch {
|
||||
void TestSpecParser::escape() {
|
||||
saveLastMode();
|
||||
m_mode = EscapedName;
|
||||
m_escapeChars.push_back( m_pos );
|
||||
m_escapeChars.push_back(m_realPatternPos);
|
||||
}
|
||||
bool TestSpecParser::isControlChar( char c ) const {
|
||||
switch( m_mode ) {
|
||||
|
@ -25,6 +25,7 @@ namespace Catch {
|
||||
Mode lastMode = None;
|
||||
bool m_exclusion = false;
|
||||
std::size_t m_pos = 0;
|
||||
std::size_t m_realPatternPos = 0;
|
||||
std::string m_arg;
|
||||
std::string m_substring;
|
||||
std::string m_patternName;
|
||||
|
Loading…
Reference in New Issue
Block a user