mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-26 07:16:10 +01:00
fix SEGFAULTs
issue was that mutable context had no config thus trying to get stream caused SEGFAULT Closes #1533, #1534
This commit is contained in:
parent
c03b23c84b
commit
7f229b4ff1
@ -12,6 +12,7 @@
|
|||||||
#include "catch_interfaces_reporter.h"
|
#include "catch_interfaces_reporter.h"
|
||||||
#include "catch_interfaces_testcase.h"
|
#include "catch_interfaces_testcase.h"
|
||||||
|
|
||||||
|
#include "catch_context.h"
|
||||||
#include "catch_stream.h"
|
#include "catch_stream.h"
|
||||||
#include "catch_text.h"
|
#include "catch_text.h"
|
||||||
|
|
||||||
@ -146,15 +147,16 @@ namespace Catch {
|
|||||||
return factories.size();
|
return factories.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
Option<std::size_t> list( Config const& config ) {
|
Option<std::size_t> list( std::shared_ptr<Config> const& config ) {
|
||||||
Option<std::size_t> listedCount;
|
Option<std::size_t> listedCount;
|
||||||
if( config.listTests() )
|
getCurrentMutableContext().setConfig( config );
|
||||||
listedCount = listedCount.valueOr(0) + listTests( config );
|
if( config->listTests() )
|
||||||
if( config.listTestNamesOnly() )
|
listedCount = listedCount.valueOr(0) + listTests( *config );
|
||||||
listedCount = listedCount.valueOr(0) + listTestsNamesOnly( config );
|
if( config->listTestNamesOnly() )
|
||||||
if( config.listTags() )
|
listedCount = listedCount.valueOr(0) + listTestsNamesOnly( *config );
|
||||||
listedCount = listedCount.valueOr(0) + listTags( config );
|
if( config->listTags() )
|
||||||
if( config.listReporters() )
|
listedCount = listedCount.valueOr(0) + listTags( *config );
|
||||||
|
if( config->listReporters() )
|
||||||
listedCount = listedCount.valueOr(0) + listReporters();
|
listedCount = listedCount.valueOr(0) + listReporters();
|
||||||
return listedCount;
|
return listedCount;
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ namespace Catch {
|
|||||||
|
|
||||||
std::size_t listReporters();
|
std::size_t listReporters();
|
||||||
|
|
||||||
Option<std::size_t> list( Config const& config );
|
Option<std::size_t> list( std::shared_ptr<Config> const& config );
|
||||||
|
|
||||||
} // end namespace Catch
|
} // end namespace Catch
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include "catch_console_colour.h"
|
#include "catch_console_colour.h"
|
||||||
#include "catch_enforce.h"
|
#include "catch_enforce.h"
|
||||||
#include "catch_list.h"
|
#include "catch_list.h"
|
||||||
|
#include "catch_context.h"
|
||||||
#include "catch_run_context.h"
|
#include "catch_run_context.h"
|
||||||
#include "catch_stream.h"
|
#include "catch_stream.h"
|
||||||
#include "catch_test_spec.h"
|
#include "catch_test_spec.h"
|
||||||
@ -170,6 +171,8 @@ namespace Catch {
|
|||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
auto result = m_cli.parse( clara::Args( argc, argv ) );
|
auto result = m_cli.parse( clara::Args( argc, argv ) );
|
||||||
|
config();
|
||||||
|
getCurrentMutableContext().setConfig( m_config );
|
||||||
if( !result ) {
|
if( !result ) {
|
||||||
Catch::cerr()
|
Catch::cerr()
|
||||||
<< Colour( Colour::Red )
|
<< Colour( Colour::Red )
|
||||||
@ -262,7 +265,7 @@ namespace Catch {
|
|||||||
applyFilenamesAsTags( *m_config );
|
applyFilenamesAsTags( *m_config );
|
||||||
|
|
||||||
// Handle list request
|
// Handle list request
|
||||||
if( Option<std::size_t> listed = list( config() ) )
|
if( Option<std::size_t> listed = list( m_config ) )
|
||||||
return static_cast<int>( *listed );
|
return static_cast<int>( *listed );
|
||||||
|
|
||||||
auto totals = runTests( m_config );
|
auto totals = runTests( m_config );
|
||||||
|
Loading…
Reference in New Issue
Block a user