|
Packit |
8c9aa0 |
#include <cppunit/Exception.h>
|
|
Packit |
8c9aa0 |
#include <cppunit/SourceLine.h>
|
|
Packit |
8c9aa0 |
#include <cppunit/TestFailure.h>
|
|
Packit |
8c9aa0 |
#include <cppunit/TextOutputter.h>
|
|
Packit |
8c9aa0 |
#include <cppunit/TestResultCollector.h>
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
CPPUNIT_NS_BEGIN
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
TextOutputter::TextOutputter( TestResultCollector *result,
|
|
Packit |
8c9aa0 |
OStream &stream )
|
|
Packit |
8c9aa0 |
: m_result( result )
|
|
Packit |
8c9aa0 |
, m_stream( stream )
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
TextOutputter::~TextOutputter()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
TextOutputter::write()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
printHeader();
|
|
Packit |
8c9aa0 |
m_stream << "\n";
|
|
Packit |
8c9aa0 |
printFailures();
|
|
Packit |
8c9aa0 |
m_stream << "\n";
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
TextOutputter::printFailures()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
TestResultCollector::TestFailures::const_iterator itFailure = m_result->failures().begin();
|
|
Packit |
8c9aa0 |
int failureNumber = 1;
|
|
Packit |
8c9aa0 |
while ( itFailure != m_result->failures().end() )
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
m_stream << "\n";
|
|
Packit |
8c9aa0 |
printFailure( *itFailure++, failureNumber++ );
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
TextOutputter::printFailure( TestFailure *failure,
|
|
Packit |
8c9aa0 |
int failureNumber )
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
printFailureListMark( failureNumber );
|
|
Packit |
8c9aa0 |
m_stream << ' ';
|
|
Packit |
8c9aa0 |
printFailureTestName( failure );
|
|
Packit |
8c9aa0 |
m_stream << ' ';
|
|
Packit |
8c9aa0 |
printFailureType( failure );
|
|
Packit |
8c9aa0 |
m_stream << ' ';
|
|
Packit |
8c9aa0 |
printFailureLocation( failure->sourceLine() );
|
|
Packit |
8c9aa0 |
m_stream << "\n";
|
|
Packit |
8c9aa0 |
printFailureDetail( failure->thrownException() );
|
|
Packit |
8c9aa0 |
m_stream << "\n";
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
TextOutputter::printFailureListMark( int failureNumber )
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
m_stream << failureNumber << ")";
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
TextOutputter::printFailureTestName( TestFailure *failure )
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
m_stream << "test: " << failure->failedTestName();
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
TextOutputter::printFailureType( TestFailure *failure )
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
m_stream << "("
|
|
Packit |
8c9aa0 |
<< (failure->isError() ? "E" : "F")
|
|
Packit |
8c9aa0 |
<< ")";
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
TextOutputter::printFailureLocation( SourceLine sourceLine )
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
if ( !sourceLine.isValid() )
|
|
Packit |
8c9aa0 |
return;
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
m_stream << "line: " << sourceLine.lineNumber()
|
|
Packit |
8c9aa0 |
<< ' ' << sourceLine.fileName();
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
TextOutputter::printFailureDetail( Exception *thrownException )
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
m_stream << thrownException->message().shortDescription() << "\n";
|
|
Packit |
8c9aa0 |
m_stream << thrownException->message().details();
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
TextOutputter::printHeader()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
if ( m_result->wasSuccessful() )
|
|
Packit |
8c9aa0 |
m_stream << "\nOK (" << m_result->runTests () << " tests)\n" ;
|
|
Packit |
8c9aa0 |
else
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
m_stream << "\n";
|
|
Packit |
8c9aa0 |
printFailureWarning();
|
|
Packit |
8c9aa0 |
printStatistics();
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
TextOutputter::printFailureWarning()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
m_stream << "!!!FAILURES!!!\n";
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
void
|
|
Packit |
8c9aa0 |
TextOutputter::printStatistics()
|
|
Packit |
8c9aa0 |
{
|
|
Packit |
8c9aa0 |
m_stream << "Test Results:\n";
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
m_stream << "Run: " << m_result->runTests()
|
|
Packit |
8c9aa0 |
<< " Failures: " << m_result->testFailures()
|
|
Packit |
8c9aa0 |
<< " Errors: " << m_result->testErrors()
|
|
Packit |
8c9aa0 |
<< "\n";
|
|
Packit |
8c9aa0 |
}
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
|
|
Packit |
8c9aa0 |
CPPUNIT_NS_END
|
|
Packit |
8c9aa0 |
|