mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 04:07:10 +01:00 
			
		
		
		
	Folded ReporterConfig into RunnerConfig
This commit is contained in:
		| @@ -70,7 +70,7 @@ namespace Catch | ||||
|                 std::cerr << "Unable to open file: '" << config.getFilename() << "'" << std::endl; | ||||
|                 return std::numeric_limits<int>::max(); | ||||
|             } | ||||
|             config.getReporterConfig().setStreamBuf( ofs.rdbuf() ); | ||||
|             config.setStreamBuf( ofs.rdbuf() ); | ||||
|         } | ||||
|  | ||||
|         Runner runner( config ); | ||||
|   | ||||
| @@ -157,7 +157,7 @@ namespace Catch | ||||
|                 case modeSuccess: | ||||
|                     if( m_args.size() != 0 ) | ||||
|                         return setErrorMode( m_command + " does not accept arguments" ); | ||||
|                     m_config.setIncludeAll( true ); | ||||
|                     m_config.setIncludeWhat( RunnerConfig::Include::SuccessfulResults ); | ||||
|                     break; | ||||
|                 case modeBreak: | ||||
|                     if( m_args.size() != 0 ) | ||||
|   | ||||
| @@ -13,11 +13,11 @@ | ||||
| #define TWOBLUECUBES_CATCH_HUB_H_INCLUDED | ||||
|  | ||||
| #include <memory> | ||||
| #include "catch_interfaces_reporter.h" | ||||
|  | ||||
| namespace Catch | ||||
| { | ||||
|     struct IResultListener; | ||||
|     struct IReporterRegistry; | ||||
|     struct ITestCaseRegistry; | ||||
|  | ||||
|     class Hub | ||||
|   | ||||
| @@ -21,63 +21,19 @@ | ||||
|  | ||||
| namespace Catch | ||||
| { | ||||
|     class ReporterConfig : public IReporterConfig | ||||
|     class RunnerConfig : public IReporterConfig | ||||
|     { | ||||
|     private: | ||||
|         ReporterConfig( const ReporterConfig& other ); | ||||
|         ReporterConfig& operator = ( const ReporterConfig& other ); | ||||
|          | ||||
|         RunnerConfig( const RunnerConfig& other ); | ||||
|         RunnerConfig& operator = ( const RunnerConfig& other ); | ||||
|     public: | ||||
|          | ||||
|         struct Include { enum What | ||||
|             { | ||||
|                 FailedOnly,  | ||||
|                 SuccessfulResults | ||||
|             }; }; | ||||
|          | ||||
|     public: | ||||
|          | ||||
|         /////////////////////////////////////////////////////////////////////////// | ||||
|         explicit ReporterConfig( Include::What includeWhat = Include::FailedOnly ) | ||||
|         :   m_includeWhat( includeWhat ), | ||||
|         m_os( std::cout.rdbuf() ) | ||||
|         { | ||||
|         } | ||||
|          | ||||
|         /////////////////////////////////////////////////////////////////////////// | ||||
|         virtual bool includeSuccessfulResults() const | ||||
|         { | ||||
|             return m_includeWhat == Include::SuccessfulResults; | ||||
|         } | ||||
|          | ||||
|         /////////////////////////////////////////////////////////////////////////// | ||||
|         void setIncludeWhat(Include::What includeWhat ) | ||||
|         { | ||||
|             m_includeWhat = includeWhat; | ||||
|         } | ||||
|          | ||||
|         /////////////////////////////////////////////////////////////////////////// | ||||
|         virtual std::ostream& stream() const | ||||
|         { | ||||
|             return m_os; | ||||
|         }         | ||||
|          | ||||
|         /////////////////////////////////////////////////////////////////////////// | ||||
|         void setStreamBuf( std::streambuf* buf ) | ||||
|         { | ||||
|             m_os.rdbuf( buf ); | ||||
|         }         | ||||
|          | ||||
|     private: | ||||
|         Include::What m_includeWhat; | ||||
|          | ||||
|         mutable std::ostream m_os; | ||||
|     }; | ||||
|             FailedOnly,  | ||||
|             SuccessfulResults | ||||
|         }; }; | ||||
|  | ||||
|     class RunnerConfig | ||||
|     { | ||||
|     public: | ||||
|          | ||||
|         enum ListInfo | ||||
|         { | ||||
|             listNone = 0, | ||||
| @@ -99,14 +55,16 @@ namespace Catch | ||||
|         :   m_reporter( NULL ), | ||||
|             m_listSpec( listNone ), | ||||
|             m_shouldDebugBreak( false ), | ||||
|             m_showHelp( false ) | ||||
|             m_showHelp( false ), | ||||
|             m_os( std::cout.rdbuf() ), | ||||
|             m_includeWhat( Include::FailedOnly ) | ||||
|         {} | ||||
|          | ||||
|         void setReporterInfo( const std::string& reporterName ) | ||||
|         { | ||||
|             if( m_reporter.get() ) | ||||
|                 return setError( "Only one reporter may be specified" ); | ||||
|             setReporter( Hub::getReporterRegistry().create( reporterName, m_reporterConfig ) ); | ||||
|             setReporter( Hub::getReporterRegistry().create( reporterName, *this ) ); | ||||
|         } | ||||
|          | ||||
|         void addTestSpec( const std::string& testSpec ) | ||||
| @@ -141,7 +99,7 @@ namespace Catch | ||||
|         IReporter* getReporter() | ||||
|         { | ||||
|             if( !m_reporter.get() ) | ||||
|                 setReporter( Hub::getReporterRegistry().create( "basic", m_reporterConfig ) ); | ||||
|                 setReporter( Hub::getReporterRegistry().create( "basic", *this ) ); | ||||
|             return m_reporter.get(); | ||||
|         } | ||||
|          | ||||
| @@ -160,13 +118,9 @@ namespace Catch | ||||
|             return (ListInfo)( m_listSpec & listAsMask ); | ||||
|         }         | ||||
|          | ||||
|         ReporterConfig& getReporterConfig() | ||||
|         void setIncludeWhat( Include::What includeWhat ) | ||||
|         { | ||||
|             return m_reporterConfig; | ||||
|         } | ||||
|         void setIncludeAll( bool includeAll ) | ||||
|         { | ||||
|             m_reporterConfig.setIncludeWhat( includeAll ? ReporterConfig::Include::SuccessfulResults : ReporterConfig::Include::FailedOnly ); | ||||
|             m_includeWhat = includeWhat; | ||||
|         } | ||||
|         void setShouldDebugBreak( bool shouldDebugBreak ) | ||||
|         { | ||||
| @@ -184,16 +138,36 @@ namespace Catch | ||||
|         { | ||||
|             return m_showHelp; | ||||
|         } | ||||
|  | ||||
|         /////////////////////////////////////////////////////////////////////////// | ||||
|         virtual std::ostream& stream() const | ||||
|         { | ||||
|             return m_os; | ||||
|         }         | ||||
|          | ||||
|         /////////////////////////////////////////////////////////////////////////// | ||||
|         void setStreamBuf( std::streambuf* buf ) | ||||
|         { | ||||
|             m_os.rdbuf( buf ); | ||||
|         }         | ||||
|  | ||||
|         /////////////////////////////////////////////////////////////////////////// | ||||
|         virtual bool includeSuccessfulResults() const | ||||
|         { | ||||
|             return m_includeWhat == Include::SuccessfulResults; | ||||
|         } | ||||
|          | ||||
|          | ||||
|          | ||||
|         std::auto_ptr<IReporter> m_reporter; | ||||
|         std::string m_filename; | ||||
|         ReporterConfig m_reporterConfig; | ||||
|         std::string m_message; | ||||
|         ListInfo m_listSpec; | ||||
|         std::vector<std::string> m_testSpecs; | ||||
|         bool m_shouldDebugBreak; | ||||
|         bool m_showHelp; | ||||
|         mutable std::ostream m_os; | ||||
|         Include::What m_includeWhat;         | ||||
|     }; | ||||
|      | ||||
| } // end namespace Catch | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Phil Nash
					Phil Nash