mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-26 15:26:11 +01:00
Build 14
This commit is contained in:
parent
782c2b5891
commit
5ecb72b9bb
@ -1,6 +1,6 @@
|
||||
![catch logo](catch-logo-small.png)
|
||||
|
||||
*v1.0 build 13 (master branch)*
|
||||
*v1.0 build 14 (master branch)*
|
||||
|
||||
Build status (on Travis CI) [![Build Status](https://travis-ci.org/philsquared/Catch.png)](https://travis-ci.org/philsquared/Catch)
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
namespace Catch {
|
||||
|
||||
// These numbers are maintained by a script
|
||||
Version libraryVersion( 1, 0, 13, "master" );
|
||||
Version libraryVersion( 1, 0, 14, "master" );
|
||||
}
|
||||
|
||||
#endif // TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* CATCH v1.0 build 13 (master branch)
|
||||
* Generated: 2013-11-13 08:10:05.836093
|
||||
* CATCH v1.0 build 14 (master branch)
|
||||
* Generated: 2013-11-26 20:54:38.067005
|
||||
* ----------------------------------------------------------
|
||||
* This file has been merged from multiple headers. Please don't edit it directly
|
||||
* Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||
@ -2125,6 +2125,7 @@ namespace Catch {
|
||||
: listTests( false ),
|
||||
listTags( false ),
|
||||
listReporters( false ),
|
||||
listTestNamesOnly( false ),
|
||||
showSuccessfulTests( false ),
|
||||
shouldDebugBreak( false ),
|
||||
noThrow( false ),
|
||||
@ -2138,6 +2139,7 @@ namespace Catch {
|
||||
bool listTests;
|
||||
bool listTags;
|
||||
bool listReporters;
|
||||
bool listTestNamesOnly;
|
||||
|
||||
bool showSuccessfulTests;
|
||||
bool shouldDebugBreak;
|
||||
@ -2206,6 +2208,7 @@ namespace Catch {
|
||||
}
|
||||
|
||||
bool listTests() const { return m_data.listTests; }
|
||||
bool listTestNamesOnly() const { return m_data.listTestNamesOnly; }
|
||||
bool listTags() const { return m_data.listTags; }
|
||||
bool listReporters() const { return m_data.listReporters; }
|
||||
|
||||
@ -4128,6 +4131,13 @@ namespace Clara {
|
||||
int position;
|
||||
};
|
||||
|
||||
// NOTE: std::auto_ptr is deprecated in c++11/c++0x
|
||||
#if defined(__cplusplus) && __cplusplus > 199711L
|
||||
typedef std::unique_ptr<Arg> ArgAutoPtr;
|
||||
#else
|
||||
typedef std::auto_ptr<Arg> ArgAutoPtr;
|
||||
#endif
|
||||
|
||||
class ArgBinder {
|
||||
public:
|
||||
template<typename F>
|
||||
@ -4152,7 +4162,7 @@ namespace Clara {
|
||||
else if( m_arg.isAnyPositional() ) {
|
||||
if( m_cl->m_arg.get() )
|
||||
throw std::logic_error( "Only one unpositional argument can be added" );
|
||||
m_cl->m_arg = std::auto_ptr<Arg>( new Arg( m_arg ) );
|
||||
m_cl->m_arg = ArgAutoPtr( new Arg( m_arg ) );
|
||||
}
|
||||
else
|
||||
m_cl->m_options.push_back( m_arg );
|
||||
@ -4196,7 +4206,7 @@ namespace Clara {
|
||||
m_highestSpecifiedArgPosition( other.m_highestSpecifiedArgPosition )
|
||||
{
|
||||
if( other.m_arg.get() )
|
||||
m_arg = std::auto_ptr<Arg>( new Arg( *other.m_arg ) );
|
||||
m_arg = ArgAutoPtr( new Arg( *other.m_arg ) );
|
||||
}
|
||||
|
||||
template<typename F>
|
||||
@ -4366,12 +4376,14 @@ namespace Clara {
|
||||
Detail::BoundArgFunction<ConfigT> m_boundProcessName;
|
||||
std::vector<Arg> m_options;
|
||||
std::map<int, Arg> m_positionalArgs;
|
||||
std::auto_ptr<Arg> m_arg;
|
||||
ArgAutoPtr m_arg;
|
||||
int m_highestSpecifiedArgPosition;
|
||||
};
|
||||
|
||||
} // end namespace Clara
|
||||
|
||||
#include <fstream>
|
||||
|
||||
namespace Catch {
|
||||
|
||||
inline void abortAfterFirst( ConfigData& config ) { config.abortAfter = 1; }
|
||||
@ -4398,6 +4410,18 @@ namespace Catch {
|
||||
? ShowDurations::Always
|
||||
: ShowDurations::Never;
|
||||
}
|
||||
inline void loadTestNamesFromFile( ConfigData& config, std::string const& _filename ) {
|
||||
std::ifstream f( _filename.c_str() );
|
||||
if( !f.is_open() )
|
||||
throw std::domain_error( "Unable to load input file: " + _filename );
|
||||
|
||||
std::string line;
|
||||
while( std::getline( f, line ) ) {
|
||||
line = trim(line);
|
||||
if( !line.empty() && !startsWith( line, "#" ) )
|
||||
addTestOrTags( config, line );
|
||||
}
|
||||
}
|
||||
|
||||
inline Clara::CommandLine<ConfigData> makeCommandLineParser() {
|
||||
|
||||
@ -4412,19 +4436,15 @@ namespace Catch {
|
||||
.longOpt( "help" );
|
||||
|
||||
cli.bind( &ConfigData::listTests )
|
||||
.describe( "list all (or matching) test cases" )
|
||||
.describe( "list all/matching test cases" )
|
||||
.shortOpt( "l")
|
||||
.longOpt( "list-tests" );
|
||||
|
||||
cli.bind( &ConfigData::listTags )
|
||||
.describe( "list all (or matching) tags" )
|
||||
.describe( "list all/matching tags" )
|
||||
.shortOpt( "t")
|
||||
.longOpt( "list-tags" );
|
||||
|
||||
cli.bind( &ConfigData::listReporters )
|
||||
.describe( "list all reporters" )
|
||||
.longOpt( "list-reporters" );
|
||||
|
||||
cli.bind( &ConfigData::showSuccessfulTests )
|
||||
.describe( "include successful tests in output" )
|
||||
.shortOpt( "s")
|
||||
@ -4447,7 +4467,7 @@ namespace Catch {
|
||||
.hint( "filename" );
|
||||
|
||||
cli.bind( &ConfigData::reporterName )
|
||||
.describe( "reporter to use - defaults to console" )
|
||||
.describe( "reporter to use (defaults to console)" )
|
||||
.shortOpt( "r")
|
||||
.longOpt( "reporter" )
|
||||
// .hint( "name[:filename]" );
|
||||
@ -4492,6 +4512,21 @@ namespace Catch {
|
||||
.longOpt( "durations" )
|
||||
.hint( "yes/no" );
|
||||
|
||||
cli.bind( &loadTestNamesFromFile )
|
||||
.describe( "load test names to run from a file" )
|
||||
.shortOpt( "f")
|
||||
.longOpt( "input-file" )
|
||||
.hint( "filename" );
|
||||
|
||||
// Less common commands which don't have a short form
|
||||
cli.bind( &ConfigData::listTestNamesOnly )
|
||||
.describe( "list all/matching test cases names only" )
|
||||
.longOpt( "list-test-names-only" );
|
||||
|
||||
cli.bind( &ConfigData::listReporters )
|
||||
.describe( "list all reporters" )
|
||||
.longOpt( "list-reporters" );
|
||||
|
||||
return cli;
|
||||
}
|
||||
|
||||
@ -4604,6 +4639,20 @@ namespace Catch {
|
||||
return matchedTests;
|
||||
}
|
||||
|
||||
inline std::size_t listTestsNamesOnly( Config const& config ) {
|
||||
std::size_t matchedTests = 0;
|
||||
std::vector<TestCase> const& allTests = getRegistryHub().getTestCaseRegistry().getAllTests();
|
||||
for( std::vector<TestCase>::const_iterator it = allTests.begin(), itEnd = allTests.end();
|
||||
it != itEnd;
|
||||
++it )
|
||||
if( matchesFilters( config.filters(), *it ) ) {
|
||||
matchedTests++;
|
||||
TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
|
||||
std::cout << testCaseInfo.name << std::endl;
|
||||
}
|
||||
return matchedTests;
|
||||
}
|
||||
|
||||
inline std::size_t listTags( Config const& config ) {
|
||||
if( config.filters().empty() )
|
||||
std::cout << "All available tags:\n";
|
||||
@ -4675,6 +4724,8 @@ namespace Catch {
|
||||
Option<std::size_t> listedCount;
|
||||
if( config.listTests() )
|
||||
listedCount = listedCount.valueOr(0) + listTests( config );
|
||||
if( config.listTestNamesOnly() )
|
||||
listedCount = listedCount.valueOr(0) + listTestsNamesOnly( config );
|
||||
if( config.listTags() )
|
||||
listedCount = listedCount.valueOr(0) + listTags( config );
|
||||
if( config.listReporters() )
|
||||
@ -5423,8 +5474,8 @@ namespace Catch {
|
||||
else {
|
||||
TestCase const& prev = *m_functions.find( testCase );
|
||||
std::cerr << "error: TEST_CASE( \"" << name << "\" ) already defined.\n"
|
||||
<< "\tFirst seen at " << SourceLineInfo( prev.getTestCaseInfo().lineInfo ) << "\n"
|
||||
<< "\tRedefined at " << SourceLineInfo( testCase.getTestCaseInfo().lineInfo ) << std::endl;
|
||||
<< "\tFirst seen at " << prev.getTestCaseInfo().lineInfo << "\n"
|
||||
<< "\tRedefined at " << testCase.getTestCaseInfo().lineInfo << std::endl;
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
@ -6209,7 +6260,7 @@ namespace Catch {
|
||||
SourceLineInfo const& _lineInfo )
|
||||
{
|
||||
std::string desc = _descOrTags;
|
||||
bool isHidden( startsWith( _name, "./" ) );
|
||||
bool isHidden( startsWith( _name, "./" ) ); // Legacy support
|
||||
std::set<std::string> tags;
|
||||
TagExtracter( tags ).parse( desc );
|
||||
if( tags.find( "hide" ) != tags.end() || tags.find( "." ) != tags.end() )
|
||||
@ -6317,7 +6368,7 @@ namespace Catch {
|
||||
namespace Catch {
|
||||
|
||||
// These numbers are maintained by a script
|
||||
Version libraryVersion( 1, 0, 13, "master" );
|
||||
Version libraryVersion( 1, 0, 14, "master" );
|
||||
}
|
||||
|
||||
// #included from: catch_text.hpp
|
||||
|
Loading…
Reference in New Issue
Block a user