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

summaryrefslogtreecommitdiffhomepage
path: root/single_include
diff options
context:
space:
mode:
authorPhil Nash2015-08-03 07:40:52 +0100
committerPhil Nash2015-08-03 07:40:52 +0100
commit8b1b7cd66e8bc92e4056d201d8e1d88ce480a2cc (patch)
tree1c68a8283120ecc6a4d96d147270de0232bdbe84 /single_include
parent34fa25ed2f50c1a6d235ab6fc684cc14cda6c834 (diff)
downloadcatch3-1.2.1-develop.11.tar.gz
dev build 11v1.2.1-develop.11
Diffstat (limited to 'single_include')
-rw-r--r--single_include/catch.hpp137
1 files changed, 62 insertions, 75 deletions
diff --git a/single_include/catch.hpp b/single_include/catch.hpp
index ccfdde11..ac4bb515 100644
--- a/single_include/catch.hpp
+++ b/single_include/catch.hpp
@@ -1,6 +1,6 @@
/*
- * Catch v1.2.1-develop.10
- * Generated: 2015-07-24 08:13:33.830879
+ * Catch v1.2.1-develop.11
+ * Generated: 2015-08-03 07:40:22.369337
* ----------------------------------------------------------
* This file has been merged from multiple headers. Please don't edit it directly
* Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
@@ -131,10 +131,13 @@
// GCC
#ifdef __GNUC__
-#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__) )
+#if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__)
# define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
#endif
+// - otherwise more recent versions define __cplusplus >= 201103L
+// and will get picked up below
+
#endif // __GNUC__
////////////////////////////////////////////////////////////////////////////////
@@ -451,8 +454,7 @@ namespace Catch {
return *this;
}
void swap( Ptr& other ) { std::swap( m_p, other.m_p ); }
- T* get() { return m_p; }
- const T* get() const{ return m_p; }
+ T* get() const{ return m_p; }
T& operator*() const { return *m_p; }
T* operator->() const { return m_p; }
bool operator !() const { return m_p == CATCH_NULL; }
@@ -5645,89 +5647,76 @@ namespace Catch {
namespace Catch {
- class Runner {
+ Ptr<IStreamingReporter> makeReporter( Ptr<Config> const& config ) {
+ std::string reporterName = config->getReporterName().empty()
+ ? "console"
+ : config->getReporterName();
- public:
- Runner( Ptr<Config> const& config )
- : m_config( config )
- {
- openStream();
- makeReporter();
+ Ptr<IStreamingReporter> reporter = getRegistryHub().getReporterRegistry().create( reporterName, config.get() );
+ if( !reporter ) {
+ std::ostringstream oss;
+ oss << "No reporter registered with name: '" << reporterName << "'";
+ throw std::domain_error( oss.str() );
}
+ return reporter;
+ }
- Totals runTests() {
-
- RunContext context( m_config.get(), m_reporter );
+ void openStreamInto( Ptr<Config> const& config, std::ofstream& ofs ) {
+ // Open output file, if specified
+ if( !config->getFilename().empty() ) {
+ ofs.open( config->getFilename().c_str() );
+ if( ofs.fail() ) {
+ std::ostringstream oss;
+ oss << "Unable to open file: '" << config->getFilename() << "'";
+ throw std::domain_error( oss.str() );
+ }
+ config->setStreamBuf( ofs.rdbuf() );
+ }
+ }
- Totals totals;
+ Totals runTests( Ptr<Config> const& config ) {
- context.testGroupStarting( "all tests", 1, 1 ); // deprecated?
+ std::ofstream ofs;
+ openStreamInto( config, ofs );
+ Ptr<IStreamingReporter> reporter = makeReporter( config );
- TestSpec testSpec = m_config->testSpec();
- if( !testSpec.hasFilters() )
- testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "~[.]" ).testSpec(); // All not hidden tests
+ RunContext context( config.get(), reporter );
- std::vector<TestCase> testCases;
- getRegistryHub().getTestCaseRegistry().getFilteredTests( testSpec, *m_config, testCases );
+ Totals totals;
- int testsRunForGroup = 0;
- for( std::vector<TestCase>::const_iterator it = testCases.begin(), itEnd = testCases.end();
- it != itEnd;
- ++it ) {
- testsRunForGroup++;
- if( m_testsAlreadyRun.find( *it ) == m_testsAlreadyRun.end() ) {
+ context.testGroupStarting( config->name(), 1, 1 );
- if( context.aborting() )
- break;
+ TestSpec testSpec = config->testSpec();
+ if( !testSpec.hasFilters() )
+ testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "~[.]" ).testSpec(); // All not hidden tests
- totals += context.runTest( *it );
- m_testsAlreadyRun.insert( *it );
- }
- }
- std::vector<TestCase> skippedTestCases;
- getRegistryHub().getTestCaseRegistry().getFilteredTests( testSpec, *m_config, skippedTestCases, true );
+ std::vector<TestCase> testCases;
+ getRegistryHub().getTestCaseRegistry().getFilteredTests( testSpec, *config, testCases );
- for( std::vector<TestCase>::const_iterator it = skippedTestCases.begin(), itEnd = skippedTestCases.end();
- it != itEnd;
- ++it )
- m_reporter->skipTest( *it );
+ std::set<TestCase> testsAlreadyRun;
+ for( std::vector<TestCase>::const_iterator it = testCases.begin(), itEnd = testCases.end();
+ it != itEnd;
+ ++it ) {
+ if( testsAlreadyRun.find( *it ) == testsAlreadyRun.end() ) {
- context.testGroupEnded( "all tests", totals, 1, 1 );
- return totals;
- }
+ if( context.aborting() )
+ break;
- private:
- void openStream() {
- // Open output file, if specified
- if( !m_config->getFilename().empty() ) {
- m_ofs.open( m_config->getFilename().c_str() );
- if( m_ofs.fail() ) {
- std::ostringstream oss;
- oss << "Unable to open file: '" << m_config->getFilename() << "'";
- throw std::domain_error( oss.str() );
- }
- m_config->setStreamBuf( m_ofs.rdbuf() );
+ totals += context.runTest( *it );
+ testsAlreadyRun.insert( *it );
}
}
- void makeReporter() {
- std::string reporterName = m_config->getReporterName().empty()
- ? "console"
- : m_config->getReporterName();
+ std::vector<TestCase> skippedTestCases;
+ getRegistryHub().getTestCaseRegistry().getFilteredTests( testSpec, *config, skippedTestCases, true );
- m_reporter = getRegistryHub().getReporterRegistry().create( reporterName, m_config.get() );
- if( !m_reporter ) {
- std::ostringstream oss;
- oss << "No reporter registered with name: '" << reporterName << "'";
- throw std::domain_error( oss.str() );
- }
- }
+ for( std::vector<TestCase>::const_iterator it = skippedTestCases.begin(), itEnd = skippedTestCases.end();
+ it != itEnd;
+ ++it )
+ reporter->skipTest( *it );
- private:
- Ptr<Config> m_config;
- std::ofstream m_ofs;
- Ptr<IStreamingReporter> m_reporter;
- std::set<TestCase> m_testsAlreadyRun;
- };
+ context.testGroupEnded( config->name(), totals, 1, 1 );
+ return totals;
+ }
void applyFilenamesAsTags() {
std::vector<TestCase> const& tests = getRegistryHub().getTestCaseRegistry().getAllTests();
@@ -5824,13 +5813,11 @@ namespace Catch {
seedRng( *m_config );
- Runner runner( m_config );
-
// Handle list request
if( Option<std::size_t> listed = list( config() ) )
return static_cast<int>( *listed );
- return static_cast<int>( runner.runTests().assertions.failed );
+ return static_cast<int>( runTests( m_config ).assertions.failed );
}
catch( std::exception& ex ) {
Catch::cerr() << ex.what() << std::endl;
@@ -6942,7 +6929,7 @@ namespace Catch {
return os;
}
- Version libraryVersion( 1, 2, 1, "develop", 10 );
+ Version libraryVersion( 1, 2, 1, "develop", 11 );
}