mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 04:07:10 +01:00 
			
		
		
		
	Patch:Failure to apply filters through external file
This commit is contained in:
		 amitherman95
					amitherman95
				
			
				
					committed by
					
						 Martin Hořeňovský
						Martin Hořeňovský
					
				
			
			
				
	
			
			
			 Martin Hořeňovský
						Martin Hořeňovský
					
				
			
						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; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user