mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 20:27:11 +01:00 
			
		
		
		
	Final refactoring to remove direct access to encapsulated ConfigData once in Config
This commit is contained in:
		| @@ -33,7 +33,7 @@ namespace Catch { | ||||
|  | ||||
|         Totals runTests() { | ||||
|  | ||||
|             std::vector<TestCaseFilters> filterGroups = m_config->data().filters; | ||||
|             std::vector<TestCaseFilters> filterGroups = m_config->filters(); | ||||
|             if( filterGroups.empty() ) { | ||||
|                 TestCaseFilters filterGroup( "" ); | ||||
|                 filterGroups.push_back( filterGroup ); | ||||
| @@ -76,8 +76,8 @@ namespace Catch { | ||||
|  | ||||
|     private: | ||||
|         void openStream() { | ||||
|             if( !m_config->data().stream.empty() ) | ||||
|                 m_config->useStream( m_config->data().stream ); | ||||
|             if( !m_config->getStreamName().empty() ) | ||||
|                 m_config->useStream( m_config->getStreamName() ); | ||||
|  | ||||
|             // Open output file, if specified | ||||
|             if( !m_config->getFilename().empty() ) { | ||||
| @@ -91,9 +91,9 @@ namespace Catch { | ||||
|             } | ||||
|         } | ||||
|         void makeReporter() { | ||||
|             std::string reporterName = m_config->data().reporter.empty() | ||||
|             std::string reporterName = m_config->getReporterName().empty() | ||||
|                 ? "console" | ||||
|                 : m_config->data().reporter; | ||||
|                 : m_config->getReporterName(); | ||||
|  | ||||
|             m_reporter = getRegistryHub().getReporterRegistry().create( reporterName, m_config.get() ); | ||||
|             if( !m_reporter ) { | ||||
|   | ||||
| @@ -88,7 +88,8 @@ namespace Catch { | ||||
|          | ||||
|         Config( ConfigData const& data ) | ||||
|         :   m_data( data ), | ||||
|             m_os( std::cout.rdbuf() ) | ||||
|             m_os( std::cout.rdbuf() ), | ||||
|             m_filters( data.filters ) | ||||
|         {} | ||||
|          | ||||
|         virtual ~Config() { | ||||
| @@ -134,6 +135,10 @@ namespace Catch { | ||||
|             m_stream.release(); | ||||
|             m_stream = stream; | ||||
|         } | ||||
|          | ||||
|         std::string getStreamName() const { return m_data.stream; } | ||||
|  | ||||
|         std::string getReporterName() const { return m_data.reporter; } | ||||
|  | ||||
|         void addTestSpec( std::string const& testSpec ) { | ||||
|             TestCaseFilters filters( testSpec ); | ||||
| @@ -145,11 +150,8 @@ namespace Catch { | ||||
|             return m_data.cutoff; | ||||
|         } | ||||
|          | ||||
|         ConfigData const& data() const { | ||||
|             return m_data; | ||||
|         } | ||||
|         ConfigData& data() { | ||||
|             return m_data; | ||||
|         std::vector<TestCaseFilters> const& filters() const { | ||||
|             return m_filters; | ||||
|         } | ||||
|  | ||||
|         // IConfig interface | ||||
| @@ -162,9 +164,9 @@ namespace Catch { | ||||
|     private: | ||||
|         ConfigData m_data; | ||||
|          | ||||
|         // !TBD Move these out of here | ||||
|         Stream m_stream; | ||||
|         mutable std::ostream m_os; | ||||
|         std::vector<TestCaseFilters> m_filters; | ||||
|     }; | ||||
|          | ||||
|      | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Phil Nash
					Phil Nash