Blame src/cppunit/TextOutputter.cpp

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