Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorPhil Nash2015-09-28 01:09:06 -0700
committerPhil Nash2015-09-28 01:09:06 -0700
commita0de07d45bf84ed1c77652f097fd7c55c6cf1888 (patch)
tree64df8143d5527eeb02f198f14b76b1fec8d725d8 /include
parent0c1c9fa9229c7358ce16c9910004a39290b20f5f (diff)
downloadcatch3-a0de07d45bf84ed1c77652f097fd7c55c6cf1888.tar.gz
Some small clean-ups and refactorings
- removed previous instance saves in RunContext (they were a hang-over from embedded contexts) - started cleaning up config usage
Diffstat (limited to 'include')
-rw-r--r--include/catch_session.hpp14
-rw-r--r--include/internal/catch_interfaces_reporter.h10
-rw-r--r--include/internal/catch_reporter_registry.hpp2
-rw-r--r--include/internal/catch_run_context.hpp12
-rw-r--r--include/reporters/catch_reporter_bases.hpp4
5 files changed, 17 insertions, 25 deletions
diff --git a/include/catch_session.hpp b/include/catch_session.hpp
index 50623ad4..1f37b5a5 100644
--- a/include/catch_session.hpp
+++ b/include/catch_session.hpp
@@ -43,7 +43,7 @@ namespace Catch {
reporter = addReporter( reporter, createReporter( *it, config ) );
return reporter;
}
- Ptr<IStreamingReporter> addListeners( Ptr<IConfig> const& config, Ptr<IStreamingReporter> reporters ) {
+ Ptr<IStreamingReporter> addListeners( Ptr<IConfig const> const& config, Ptr<IStreamingReporter> reporters ) {
IReporterRegistry::Listeners listeners = getRegistryHub().getReporterRegistry().getListeners();
for( IReporterRegistry::Listeners::const_iterator it = listeners.begin(), itEnd = listeners.end();
it != itEnd;
@@ -67,12 +67,14 @@ namespace Catch {
Totals runTests( Ptr<Config> const& config ) {
+ Ptr<IConfig const> iconfig = config.get();
+
std::ofstream ofs;
openStreamInto( config, ofs );
Ptr<IStreamingReporter> reporter = makeReporter( config );
- reporter = addListeners( config.get(), reporter );
+ reporter = addListeners( iconfig, reporter );
- RunContext context( config.get(), reporter );
+ RunContext context( iconfig, reporter );
Totals totals;
@@ -82,17 +84,17 @@ namespace Catch {
if( !testSpec.hasFilters() )
testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "~[.]" ).testSpec(); // All not hidden tests
- std::vector<TestCase> const& allTestCases = getAllTestCasesSorted( *config );
+ std::vector<TestCase> const& allTestCases = getAllTestCasesSorted( *iconfig );
for( std::vector<TestCase>::const_iterator it = allTestCases.begin(), itEnd = allTestCases.end();
it != itEnd;
++it ) {
- if( !context.aborting() && matchTest( *it, testSpec, *config ) )
+ if( !context.aborting() && matchTest( *it, testSpec, *iconfig ) )
totals += context.runTest( *it );
else
reporter->skipTest( *it );
}
- context.testGroupEnded( config->name(), totals, 1, 1 );
+ context.testGroupEnded( iconfig->name(), totals, 1, 1 );
return totals;
}
diff --git a/include/internal/catch_interfaces_reporter.h b/include/internal/catch_interfaces_reporter.h
index 46720fbb..e40119df 100644
--- a/include/internal/catch_interfaces_reporter.h
+++ b/include/internal/catch_interfaces_reporter.h
@@ -26,18 +26,18 @@
namespace Catch
{
struct ReporterConfig {
- explicit ReporterConfig( Ptr<IConfig> const& _fullConfig )
+ explicit ReporterConfig( Ptr<IConfig const> const& _fullConfig )
: m_stream( &_fullConfig->stream() ), m_fullConfig( _fullConfig ) {}
- ReporterConfig( Ptr<IConfig> const& _fullConfig, std::ostream& _stream )
+ ReporterConfig( Ptr<IConfig const> const& _fullConfig, std::ostream& _stream )
: m_stream( &_stream ), m_fullConfig( _fullConfig ) {}
std::ostream& stream() const { return *m_stream; }
- Ptr<IConfig> fullConfig() const { return m_fullConfig; }
+ Ptr<IConfig const> fullConfig() const { return m_fullConfig; }
private:
std::ostream* m_stream;
- Ptr<IConfig> m_fullConfig;
+ Ptr<IConfig const> m_fullConfig;
};
struct ReporterPreferences {
@@ -261,7 +261,7 @@ namespace Catch
typedef std::vector<Ptr<IReporterFactory> > Listeners;
virtual ~IReporterRegistry();
- virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig> const& config ) const = 0;
+ virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig const> const& config ) const = 0;
virtual FactoryMap const& getFactories() const = 0;
virtual Listeners const& getListeners() const = 0;
};
diff --git a/include/internal/catch_reporter_registry.hpp b/include/internal/catch_reporter_registry.hpp
index b67252f3..71f23ff7 100644
--- a/include/internal/catch_reporter_registry.hpp
+++ b/include/internal/catch_reporter_registry.hpp
@@ -20,7 +20,7 @@ namespace Catch {
virtual ~ReporterRegistry() CATCH_OVERRIDE {}
- virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig> const& config ) const CATCH_OVERRIDE {
+ virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig const> const& config ) const CATCH_OVERRIDE {
FactoryMap::const_iterator it = m_factories.find( name );
if( it == m_factories.end() )
return CATCH_NULL;
diff --git a/include/internal/catch_run_context.hpp b/include/internal/catch_run_context.hpp
index 3ec12af6..5e315f96 100644
--- a/include/internal/catch_run_context.hpp
+++ b/include/internal/catch_run_context.hpp
@@ -64,10 +64,7 @@ namespace Catch {
m_context( getCurrentMutableContext() ),
m_activeTestCase( CATCH_NULL ),
m_config( _config ),
- m_reporter( reporter ),
- m_prevRunner( m_context.getRunner() ),
- m_prevResultCapture( m_context.getResultCapture() ),
- m_prevConfig( m_context.getConfig() )
+ m_reporter( reporter )
{
m_context.setRunner( this );
m_context.setConfig( m_config );
@@ -77,10 +74,6 @@ namespace Catch {
virtual ~RunContext() {
m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, aborting() ) );
- m_context.setRunner( m_prevRunner );
- m_context.setConfig( Ptr<IConfig const>() );
- m_context.setResultCapture( m_prevResultCapture );
- m_context.setConfig( m_prevConfig );
}
void testGroupStarting( std::string const& testSpec, std::size_t groupIndex, std::size_t groupsCount ) {
@@ -330,9 +323,6 @@ namespace Catch {
Totals m_totals;
Ptr<IStreamingReporter> m_reporter;
std::vector<MessageInfo> m_messages;
- IRunner* m_prevRunner;
- IResultCapture* m_prevResultCapture;
- Ptr<IConfig const> m_prevConfig;
AssertionInfo m_lastAssertionInfo;
std::vector<SectionEndInfo> m_unfinishedSections;
};
diff --git a/include/reporters/catch_reporter_bases.hpp b/include/reporters/catch_reporter_bases.hpp
index 75a2bb44..e37cac00 100644
--- a/include/reporters/catch_reporter_bases.hpp
+++ b/include/reporters/catch_reporter_bases.hpp
@@ -65,7 +65,7 @@ namespace Catch {
// It can optionally be overridden in the derived class.
}
- Ptr<IConfig> m_config;
+ Ptr<IConfig const> m_config;
std::ostream& stream;
LazyStat<TestRunInfo> currentTestRunInfo;
@@ -204,7 +204,7 @@ namespace Catch {
virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {}
- Ptr<IConfig> m_config;
+ Ptr<IConfig const> m_config;
std::ostream& stream;
std::vector<AssertionStats> m_assertions;
std::vector<std::vector<Ptr<SectionNode> > > m_sections;