Console reporter: Don't print full path for every line

This commit is contained in:
Phil Nash 2012-12-11 09:02:31 +00:00
parent 6fb8260add
commit 6488fc1c88
3 changed files with 1169 additions and 656 deletions

View File

@ -80,10 +80,7 @@ namespace Catch {
lazyPrint(); lazyPrint();
if( !result.getSourceInfo().empty() ) { printLineInfo( result.getSourceInfo() );
TextColour colour( TextColour::FileName );
stream << result.getSourceInfo();
}
if( result.hasExpression() ) { if( result.hasExpression() ) {
TextColour colour( TextColour::OriginalExpression ); TextColour colour( TextColour::OriginalExpression );
@ -241,6 +238,7 @@ namespace Catch {
} }
virtual void sectionEnded( Ptr<SectionStats const> const& _sectionStats ) { virtual void sectionEnded( Ptr<SectionStats const> const& _sectionStats ) {
resetLastPrintedLine();
if( _sectionStats->missingAssertions ) { if( _sectionStats->missingAssertions ) {
lazyPrint(); lazyPrint();
TextColour colour( TextColour::ResultError ); TextColour colour( TextColour::ResultError );
@ -263,6 +261,7 @@ namespace Catch {
AccumulatingReporter::sectionEnded( _sectionStats ); AccumulatingReporter::sectionEnded( _sectionStats );
} }
virtual void testCaseEnded( Ptr<TestCaseStats const> const& _testCaseStats ) { virtual void testCaseEnded( Ptr<TestCaseStats const> const& _testCaseStats ) {
resetLastPrintedLine();
if( _testCaseStats->missingAssertions ) { if( _testCaseStats->missingAssertions ) {
lazyPrint(); lazyPrint();
TextColour colour( TextColour::ResultError ); TextColour colour( TextColour::ResultError );
@ -292,6 +291,26 @@ namespace Catch {
AccumulatingReporter::testRunEnded( _testRunStats ); AccumulatingReporter::testRunEnded( _testRunStats );
} }
void printLineInfo( SourceLineInfo const& lineInfo ) {
if( !lineInfo.empty() ) {
if( m_lastPrintedLine.empty() ||
m_lastPrintedLine.file != lineInfo.file ||
abs( static_cast<int>( m_lastPrintedLine.line ) - static_cast<int>( lineInfo.line ) ) > 20 ) {
TextColour colour( TextColour::FileName );
stream << lineInfo << "\n";
m_lastPrintedLine = lineInfo;
}
else if( lineInfo.line != m_lastPrintedLine.line ) {
TextColour colour( TextColour::FileName );
stream << "line " << lineInfo.line << ":\n";
}
}
}
void resetLastPrintedLine() {
m_lastPrintedLine = SourceLineInfo();
}
SourceLineInfo m_lastPrintedLine;
}; };
INTERNAL_CATCH_REGISTER_REPORTER( "console", ConsoleReporter ) INTERNAL_CATCH_REGISTER_REPORTER( "console", ConsoleReporter )

File diff suppressed because it is too large Load Diff

View File

@ -564,7 +564,7 @@
CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++98"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++98";
CLANG_WARN__DUPLICATE_METHOD_MATCH = NO; CLANG_WARN__DUPLICATE_METHOD_MATCH = NO;
GCC_PREPROCESSOR_DEFINITIONS = ""; GCC_PREPROCESSOR_DEFINITIONS = CATCH_CONFIG_USE_ANSI_COLOUR_CODES;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
WARNING_CFLAGS = ( WARNING_CFLAGS = (