mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-04 05:59:32 +01:00 
			
		
		
		
	
				
					committed by
					
						
						Martin Hořeňovský
					
				
			
			
				
	
			
			
			
						parent
						
							5bf6e47381
						
					
				
				
					commit
					7d2451f119
				
			@@ -49,6 +49,15 @@ namespace Catch {
 | 
				
			|||||||
    {}
 | 
					    {}
 | 
				
			||||||
    auto RedirectedStdErr::str() const -> std::string { return m_rss.str(); }
 | 
					    auto RedirectedStdErr::str() const -> std::string { return m_rss.str(); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    RedirectedStreams::RedirectedStreams(std::string& redirectedCout, std::string& redirectedCerr)
 | 
				
			||||||
 | 
					    :   m_redirectedCout(redirectedCout),
 | 
				
			||||||
 | 
					        m_redirectedCerr(redirectedCerr)
 | 
				
			||||||
 | 
					    {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    RedirectedStreams::~RedirectedStreams() {
 | 
				
			||||||
 | 
					        m_redirectedCout += m_redirectedStdOut.str();
 | 
				
			||||||
 | 
					        m_redirectedCerr += m_redirectedStdErr.str();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(CATCH_CONFIG_NEW_CAPTURE)
 | 
					#if defined(CATCH_CONFIG_NEW_CAPTURE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,6 +46,21 @@ namespace Catch {
 | 
				
			|||||||
        auto str() const -> std::string;
 | 
					        auto str() const -> std::string;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    class RedirectedStreams {
 | 
				
			||||||
 | 
					    public:
 | 
				
			||||||
 | 
					        RedirectedStreams(RedirectedStreams const&) = delete;
 | 
				
			||||||
 | 
					        RedirectedStreams& operator=(RedirectedStreams const&) = delete;
 | 
				
			||||||
 | 
					        RedirectedStreams(RedirectedStreams&&) = delete;
 | 
				
			||||||
 | 
					        RedirectedStreams& operator=(RedirectedStreams&&) = delete;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        RedirectedStreams(std::string& redirectedCout, std::string& redirectedCerr);
 | 
				
			||||||
 | 
					        ~RedirectedStreams();
 | 
				
			||||||
 | 
					    private:
 | 
				
			||||||
 | 
					        std::string& m_redirectedCout;
 | 
				
			||||||
 | 
					        std::string& m_redirectedCerr;
 | 
				
			||||||
 | 
					        RedirectedStdOut m_redirectedStdOut;
 | 
				
			||||||
 | 
					        RedirectedStdErr m_redirectedStdErr;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(CATCH_CONFIG_NEW_CAPTURE)
 | 
					#if defined(CATCH_CONFIG_NEW_CAPTURE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -67,7 +67,6 @@ namespace Catch {
 | 
				
			|||||||
        GeneratorTracker::~GeneratorTracker() {}
 | 
					        GeneratorTracker::~GeneratorTracker() {}
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    RunContext::RunContext(IConfigPtr const& _config, IStreamingReporterPtr&& reporter)
 | 
					    RunContext::RunContext(IConfigPtr const& _config, IStreamingReporterPtr&& reporter)
 | 
				
			||||||
    :   m_runInfo(_config->name()),
 | 
					    :   m_runInfo(_config->name()),
 | 
				
			||||||
        m_context(getCurrentMutableContext()),
 | 
					        m_context(getCurrentMutableContext()),
 | 
				
			||||||
@@ -323,13 +322,10 @@ namespace Catch {
 | 
				
			|||||||
        CATCH_TRY {
 | 
					        CATCH_TRY {
 | 
				
			||||||
            if (m_reporter->getPreferences().shouldRedirectStdOut) {
 | 
					            if (m_reporter->getPreferences().shouldRedirectStdOut) {
 | 
				
			||||||
#if !defined(CATCH_CONFIG_EXPERIMENTAL_REDIRECT)
 | 
					#if !defined(CATCH_CONFIG_EXPERIMENTAL_REDIRECT)
 | 
				
			||||||
                RedirectedStdOut redirectedStdOut;
 | 
					                RedirectedStreams redirectedStreams(redirectedCout, redirectedCerr);
 | 
				
			||||||
                RedirectedStdErr redirectedStdErr;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                timer.start();
 | 
					                timer.start();
 | 
				
			||||||
                invokeActiveTestCase();
 | 
					                invokeActiveTestCase();
 | 
				
			||||||
                redirectedCout += redirectedStdOut.str();
 | 
					 | 
				
			||||||
                redirectedCerr += redirectedStdErr.str();
 | 
					 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
                OutputRedirect r(redirectedCout, redirectedCerr);
 | 
					                OutputRedirect r(redirectedCout, redirectedCerr);
 | 
				
			||||||
                timer.start();
 | 
					                timer.start();
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user