mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-26 15:26:11 +01:00
build 13
This commit is contained in:
parent
4f57c8c589
commit
8d44f2dbb2
@ -1,6 +1,6 @@
|
|||||||
![catch logo](catch-logo-small.png)
|
![catch logo](catch-logo-small.png)
|
||||||
|
|
||||||
*v1.0 build 12 (master branch)*
|
*v1.0 build 13 (master branch)*
|
||||||
|
|
||||||
Build status (on Travis CI) [![Build Status](https://travis-ci.org/philsquared/Catch.png)](https://travis-ci.org/philsquared/Catch)
|
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 {
|
namespace Catch {
|
||||||
|
|
||||||
// These numbers are maintained by a script
|
// These numbers are maintained by a script
|
||||||
Version libraryVersion( 1, 0, 12, "master" );
|
Version libraryVersion( 1, 0, 13, "master" );
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED
|
#endif // TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* CATCH v1.0 build 12 (master branch)
|
* CATCH v1.0 build 13 (master branch)
|
||||||
* Generated: 2013-11-09 07:46:33.549497
|
* Generated: 2013-11-13 08:10:05.836093
|
||||||
* ----------------------------------------------------------
|
* ----------------------------------------------------------
|
||||||
* This file has been merged from multiple headers. Please don't edit it directly
|
* This file has been merged from multiple headers. Please don't edit it directly
|
||||||
* Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
|
* Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||||
@ -4574,76 +4574,29 @@ namespace Catch {
|
|||||||
std::cout << "All available test cases:\n";
|
std::cout << "All available test cases:\n";
|
||||||
else
|
else
|
||||||
std::cout << "Matching test cases:\n";
|
std::cout << "Matching test cases:\n";
|
||||||
std::vector<TestCase> const& allTests = getRegistryHub().getTestCaseRegistry().getAllTests();
|
|
||||||
std::vector<TestCase>::const_iterator it = allTests.begin(), itEnd = allTests.end();
|
|
||||||
|
|
||||||
// First pass - get max tags
|
|
||||||
std::size_t maxTagLen = 0;
|
|
||||||
std::size_t maxNameLen = 0;
|
|
||||||
for(; it != itEnd; ++it ) {
|
|
||||||
if( matchesFilters( config.filters(), *it ) ) {
|
|
||||||
maxTagLen = (std::max)( it->getTestCaseInfo().tagsAsString.size(), maxTagLen );
|
|
||||||
maxNameLen = (std::max)( it->getTestCaseInfo().name.size(), maxNameLen );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Try to fit everything in. If not shrink tag column first, down to 30
|
|
||||||
// then shrink name column until it all fits (strings will be wrapped within column)
|
|
||||||
while( maxTagLen + maxNameLen > CATCH_CONFIG_CONSOLE_WIDTH-5 ) {
|
|
||||||
if( maxTagLen > 30 )
|
|
||||||
--maxTagLen;
|
|
||||||
else
|
|
||||||
--maxNameLen;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::size_t matchedTests = 0;
|
std::size_t matchedTests = 0;
|
||||||
for( it = allTests.begin(); it != itEnd; ++it ) {
|
TextAttributes nameAttr, tagsAttr;
|
||||||
|
nameAttr.setInitialIndent( 2 ).setIndent( 4 );
|
||||||
|
tagsAttr.setIndent( 6 );
|
||||||
|
|
||||||
|
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 ) ) {
|
if( matchesFilters( config.filters(), *it ) ) {
|
||||||
matchedTests++;
|
matchedTests++;
|
||||||
Text nameWrapper( it->getTestCaseInfo().name,
|
TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
|
||||||
TextAttributes()
|
Colour::Code colour = testCaseInfo.isHidden
|
||||||
.setWidth( maxNameLen+2 )
|
? Colour::SecondaryText
|
||||||
.setInitialIndent(2)
|
: Colour::None;
|
||||||
.setIndent(4) );
|
|
||||||
|
|
||||||
Text tagsWrapper( it->getTestCaseInfo().tagsAsString,
|
|
||||||
TextAttributes()
|
|
||||||
.setWidth( maxTagLen )
|
|
||||||
.setInitialIndent(0)
|
|
||||||
.setIndent( 2 ) );
|
|
||||||
|
|
||||||
for( std::size_t i = 0; i < (std::max)( nameWrapper.size(), tagsWrapper.size() ); ++i ) {
|
|
||||||
Colour::Code colour = Colour::None;
|
|
||||||
if( it->getTestCaseInfo().isHidden )
|
|
||||||
colour = Colour::SecondaryText;
|
|
||||||
std::string nameCol;
|
|
||||||
if( i < nameWrapper.size() ) {
|
|
||||||
nameCol = nameWrapper[i];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
nameCol = " ...";
|
|
||||||
colour = Colour::SecondaryText;
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
Colour colourGuard( colour );
|
Colour colourGuard( colour );
|
||||||
std::cout << nameCol;
|
|
||||||
}
|
std::cout << Text( testCaseInfo.name, nameAttr ) << std::endl;
|
||||||
if( i < tagsWrapper.size() && !tagsWrapper[i].empty() ) {
|
if( !testCaseInfo.tags.empty() )
|
||||||
size_t padLen( maxNameLen > nameCol.size() ? maxNameLen - nameCol.size() : 0 );
|
std::cout << Text( testCaseInfo.tagsAsString, tagsAttr ) << std::endl;
|
||||||
if( i == 0 ) {
|
|
||||||
Colour colourGuard( Colour::SecondaryText );
|
|
||||||
std::cout << " " << std::string( padLen, '.' ) << " ";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
std::cout << std::string( padLen, ' ' ) << " ";
|
|
||||||
}
|
|
||||||
std::cout << tagsWrapper[i];
|
|
||||||
}
|
|
||||||
std::cout << "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( config.filters().empty() )
|
if( config.filters().empty() )
|
||||||
std::cout << pluralise( matchedTests, "test case" ) << "\n" << std::endl;
|
std::cout << pluralise( matchedTests, "test case" ) << "\n" << std::endl;
|
||||||
else
|
else
|
||||||
@ -4656,21 +4609,20 @@ namespace Catch {
|
|||||||
std::cout << "All available tags:\n";
|
std::cout << "All available tags:\n";
|
||||||
else
|
else
|
||||||
std::cout << "Matching tags:\n";
|
std::cout << "Matching tags:\n";
|
||||||
std::vector<TestCase> const& allTests = getRegistryHub().getTestCaseRegistry().getAllTests();
|
|
||||||
std::vector<TestCase>::const_iterator it = allTests.begin(), itEnd = allTests.end();
|
|
||||||
|
|
||||||
std::map<std::string, int> tagCounts;
|
std::map<std::string, int> tagCounts;
|
||||||
|
|
||||||
std::size_t maxTagLen = 0;
|
std::vector<TestCase> const& allTests = getRegistryHub().getTestCaseRegistry().getAllTests();
|
||||||
|
for( std::vector<TestCase>::const_iterator it = allTests.begin(),
|
||||||
for(; it != itEnd; ++it ) {
|
itEnd = allTests.end();
|
||||||
|
it != itEnd;
|
||||||
|
++it ) {
|
||||||
if( matchesFilters( config.filters(), *it ) ) {
|
if( matchesFilters( config.filters(), *it ) ) {
|
||||||
for( std::set<std::string>::const_iterator tagIt = it->getTestCaseInfo().tags.begin(),
|
for( std::set<std::string>::const_iterator tagIt = it->getTestCaseInfo().tags.begin(),
|
||||||
tagItEnd = it->getTestCaseInfo().tags.end();
|
tagItEnd = it->getTestCaseInfo().tags.end();
|
||||||
tagIt != tagItEnd;
|
tagIt != tagItEnd;
|
||||||
++tagIt ) {
|
++tagIt ) {
|
||||||
std::string tagName = *tagIt;
|
std::string tagName = *tagIt;
|
||||||
maxTagLen = (std::max)( maxTagLen, tagName.size() );
|
|
||||||
std::map<std::string, int>::iterator countIt = tagCounts.find( tagName );
|
std::map<std::string, int>::iterator countIt = tagCounts.find( tagName );
|
||||||
if( countIt == tagCounts.end() )
|
if( countIt == tagCounts.end() )
|
||||||
tagCounts.insert( std::make_pair( tagName, 1 ) );
|
tagCounts.insert( std::make_pair( tagName, 1 ) );
|
||||||
@ -4679,26 +4631,18 @@ namespace Catch {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
maxTagLen +=4;
|
|
||||||
if( maxTagLen > CATCH_CONFIG_CONSOLE_WIDTH-10 )
|
|
||||||
maxTagLen = CATCH_CONFIG_CONSOLE_WIDTH-10;
|
|
||||||
|
|
||||||
for( std::map<std::string, int>::const_iterator countIt = tagCounts.begin(), countItEnd = tagCounts.end();
|
for( std::map<std::string, int>::const_iterator countIt = tagCounts.begin(),
|
||||||
|
countItEnd = tagCounts.end();
|
||||||
countIt != countItEnd;
|
countIt != countItEnd;
|
||||||
++countIt ) {
|
++countIt ) {
|
||||||
|
std::ostringstream oss;
|
||||||
|
oss << " " << countIt->second << " ";
|
||||||
Text wrapper( "[" + countIt->first + "]", TextAttributes()
|
Text wrapper( "[" + countIt->first + "]", TextAttributes()
|
||||||
.setIndent(2)
|
.setInitialIndent( 0 )
|
||||||
.setWidth( maxTagLen ) );
|
.setIndent( oss.str().size() )
|
||||||
std::cout << wrapper;
|
.setWidth( CATCH_CONFIG_CONSOLE_WIDTH-10 ) );
|
||||||
std::size_t dots = 2;
|
std::cout << oss.str() << wrapper << "\n";
|
||||||
if( maxTagLen > wrapper.last().size() )
|
|
||||||
dots += maxTagLen - wrapper.last().size();
|
|
||||||
{
|
|
||||||
Colour colourGuard( Colour::SecondaryText );
|
|
||||||
std::cout << std::string( dots, '.' );
|
|
||||||
}
|
|
||||||
std::cout << countIt->second
|
|
||||||
<< "\n";
|
|
||||||
}
|
}
|
||||||
std::cout << pluralise( tagCounts.size(), "tag" ) << "\n" << std::endl;
|
std::cout << pluralise( tagCounts.size(), "tag" ) << "\n" << std::endl;
|
||||||
return tagCounts.size();
|
return tagCounts.size();
|
||||||
@ -6373,7 +6317,7 @@ namespace Catch {
|
|||||||
namespace Catch {
|
namespace Catch {
|
||||||
|
|
||||||
// These numbers are maintained by a script
|
// These numbers are maintained by a script
|
||||||
Version libraryVersion( 1, 0, 12, "master" );
|
Version libraryVersion( 1, 0, 13, "master" );
|
||||||
}
|
}
|
||||||
|
|
||||||
// #included from: catch_text.hpp
|
// #included from: catch_text.hpp
|
||||||
@ -7296,13 +7240,18 @@ namespace Catch {
|
|||||||
virtual bool assertionEnded( AssertionStats const& _assertionStats ) {
|
virtual bool assertionEnded( AssertionStats const& _assertionStats ) {
|
||||||
AssertionResult const& result = _assertionStats.assertionResult;
|
AssertionResult const& result = _assertionStats.assertionResult;
|
||||||
|
|
||||||
|
bool printInfoMessages = true;
|
||||||
|
|
||||||
// Drop out if result was successful and we're not printing those
|
// Drop out if result was successful and we're not printing those
|
||||||
if( !m_config->includeSuccessfulResults() && result.isOk() )
|
if( !m_config->includeSuccessfulResults() && result.isOk() ) {
|
||||||
|
if( result.getResultType() != ResultWas::Warning )
|
||||||
return false;
|
return false;
|
||||||
|
printInfoMessages = false;
|
||||||
|
}
|
||||||
|
|
||||||
lazyPrint();
|
lazyPrint();
|
||||||
|
|
||||||
AssertionPrinter printer( stream, _assertionStats );
|
AssertionPrinter printer( stream, _assertionStats, printInfoMessages );
|
||||||
printer.print();
|
printer.print();
|
||||||
stream << std::endl;
|
stream << std::endl;
|
||||||
return true;
|
return true;
|
||||||
@ -7360,13 +7309,14 @@ namespace Catch {
|
|||||||
class AssertionPrinter {
|
class AssertionPrinter {
|
||||||
void operator= ( AssertionPrinter const& );
|
void operator= ( AssertionPrinter const& );
|
||||||
public:
|
public:
|
||||||
AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats )
|
AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
|
||||||
: stream( _stream ),
|
: stream( _stream ),
|
||||||
stats( _stats ),
|
stats( _stats ),
|
||||||
result( _stats.assertionResult ),
|
result( _stats.assertionResult ),
|
||||||
colour( Colour::None ),
|
colour( Colour::None ),
|
||||||
message( result.getMessage() ),
|
message( result.getMessage() ),
|
||||||
messages( _stats.infoMessages )
|
messages( _stats.infoMessages ),
|
||||||
|
printInfoMessages( _printInfoMessages )
|
||||||
{
|
{
|
||||||
switch( result.getResultType() ) {
|
switch( result.getResultType() ) {
|
||||||
case ResultWas::Ok:
|
case ResultWas::Ok:
|
||||||
@ -7469,6 +7419,8 @@ namespace Catch {
|
|||||||
for( std::vector<MessageInfo>::const_iterator it = messages.begin(), itEnd = messages.end();
|
for( std::vector<MessageInfo>::const_iterator it = messages.begin(), itEnd = messages.end();
|
||||||
it != itEnd;
|
it != itEnd;
|
||||||
++it ) {
|
++it ) {
|
||||||
|
// If this assertion is a warning ignore any INFO messages
|
||||||
|
if( printInfoMessages || it->type != ResultWas::Info )
|
||||||
stream << Text( it->message, TextAttributes().setIndent(2) ) << "\n";
|
stream << Text( it->message, TextAttributes().setIndent(2) ) << "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -7485,6 +7437,7 @@ namespace Catch {
|
|||||||
std::string messageLabel;
|
std::string messageLabel;
|
||||||
std::string message;
|
std::string message;
|
||||||
std::vector<MessageInfo> messages;
|
std::vector<MessageInfo> messages;
|
||||||
|
bool printInfoMessages;
|
||||||
};
|
};
|
||||||
|
|
||||||
void lazyPrint() {
|
void lazyPrint() {
|
||||||
@ -7570,9 +7523,14 @@ namespace Catch {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void printTotals( const Totals& totals ) {
|
void printTotals( const Totals& totals ) {
|
||||||
if( totals.assertions.total() == 0 ) {
|
if( totals.testCases.total() == 0 ) {
|
||||||
stream << "No tests ran";
|
stream << "No tests ran";
|
||||||
}
|
}
|
||||||
|
else if( totals.assertions.total() == 0 ) {
|
||||||
|
Colour colour( Colour::Yellow );
|
||||||
|
printCounts( "test case", totals.testCases );
|
||||||
|
stream << " (no assertions)";
|
||||||
|
}
|
||||||
else if( totals.assertions.failed ) {
|
else if( totals.assertions.failed ) {
|
||||||
Colour colour( Colour::ResultError );
|
Colour colour( Colour::ResultError );
|
||||||
printCounts( "test case", totals.testCases );
|
printCounts( "test case", totals.testCases );
|
||||||
|
Loading…
Reference in New Issue
Block a user