Blame examples/ClockerPlugIn/ClockerListener.cpp

Packit Service e31359
// //////////////////////////////////////////////////////////////////////////
Packit Service e31359
// Implementation file ClockerListener.cpp for class ClockerListener
Packit Service e31359
// (c)Copyright 2000, Baptiste Lepilleur.
Packit Service e31359
// Created: 2002/04/19
Packit Service e31359
// //////////////////////////////////////////////////////////////////////////
Packit Service e31359
#include <cppunit/Test.h>
Packit Service e31359
#include <cppunit/portability/Stream.h>
Packit Service e31359
#include "ClockerListener.h"
Packit Service e31359
#include "ClockerModel.h"
Packit Service e31359
#include <stdio.h>
Packit Service e31359
Packit Service e31359
Packit Service e31359
ClockerListener::ClockerListener( ClockerModel *model,
Packit Service e31359
                                  bool text )
Packit Service e31359
    : m_model( model )
Packit Service e31359
    , m_text( text )
Packit Service e31359
{
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
ClockerListener::~ClockerListener()
Packit Service e31359
{
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
ClockerListener::startTestRun( CPPUNIT_NS::Test *test, 
Packit Service e31359
                               CPPUNIT_NS::TestResult *eventManager )
Packit Service e31359
{
Packit Service e31359
  m_model->setExpectedTestCount( test->countTestCases() *2 );
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
ClockerListener::endTestRun( CPPUNIT_NS::Test *test, 
Packit Service e31359
                             CPPUNIT_NS::TestResult *eventManager )
Packit Service e31359
{
Packit Service e31359
  if ( m_text )
Packit Service e31359
    printStatistics();
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
ClockerListener::startTest( CPPUNIT_NS::Test *test )
Packit Service e31359
{
Packit Service e31359
  m_model->enterTest( test, false );
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
ClockerListener::endTest( CPPUNIT_NS::Test *test )
Packit Service e31359
{
Packit Service e31359
  m_model->exitTest( test, false );
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
ClockerListener::startSuite( CPPUNIT_NS::Test *suite )
Packit Service e31359
{
Packit Service e31359
  m_model->enterTest( suite, true );
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
ClockerListener::endSuite( CPPUNIT_NS::Test *suite )
Packit Service e31359
{
Packit Service e31359
  m_model->exitTest( suite, true );
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
ClockerListener::printStatistics() const
Packit Service e31359
{
Packit Service e31359
  printTest( 0, "" );
Packit Service e31359
  CPPUNIT_NS::stdCOut()  <<  "\n";
Packit Service e31359
  CPPUNIT_NS::stdCOut()  <<  "Total elapsed time: ";
Packit Service e31359
  printTime( m_model->totalElapsedTime() );
Packit Service e31359
  CPPUNIT_NS::stdCOut()  <<  ", average test case time: ";
Packit Service e31359
  printTime( m_model->averageTestCaseTime() );
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
ClockerListener::printTest( int testIndex,
Packit Service e31359
                            const std::string &indentString ) const
Packit Service e31359
{
Packit Service e31359
  std::string indent = indentString;
Packit Service e31359
  const int indentLength = 3;
Packit Service e31359
Packit Service e31359
  printTestIndent( indentString, indentLength );
Packit Service e31359
  printTime( m_model->testTimeFor( testIndex ) );
Packit Service e31359
Packit Service e31359
  CPPUNIT_NS::stdCOut()  <<  m_model->testPathFor( testIndex ).getChildTest()->getName();
Packit Service e31359
  CPPUNIT_NS::stdCOut()  <<  "\n";
Packit Service e31359
Packit Service e31359
  if ( m_model->childCountFor( testIndex ) == 0 )
Packit Service e31359
    indent+= std::string( indentLength, ' ' );
Packit Service e31359
  else
Packit Service e31359
    indent+= "|" + std::string( indentLength -1, ' ' );
Packit Service e31359
Packit Service e31359
  for ( int index =0; index < m_model->childCountFor( testIndex ); ++index )
Packit Service e31359
    printTest( m_model->childAtFor( testIndex, index ), indent );
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
ClockerListener::printTestIndent( const std::string &indent,
Packit Service e31359
                                  const int indentLength ) const
Packit Service e31359
{
Packit Service e31359
  if ( indent.empty() )
Packit Service e31359
    return;
Packit Service e31359
Packit Service e31359
  CPPUNIT_NS::stdCOut() << "   ";
Packit Service e31359
  CPPUNIT_NS::stdCOut() << indent.substr( 0, indent.length() - indentLength ) ;
Packit Service e31359
  CPPUNIT_NS::stdCOut() << "+"  <<  std::string( indentLength -1, '-' );
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
ClockerListener::printTime( double time ) const
Packit Service e31359
{
Packit Service e31359
  CPPUNIT_NS::stdCOut() <<  '('  <<  ClockerModel::timeStringFor( time )  <<  "s) ";
Packit Service e31359
}