testrunnermodel.cpp

来自「这是国外的resip协议栈」· C++ 代码 · 共 222 行

CPP
222
字号
// //////////////////////////////////////////////////////////////////////////// Implementation file TestRunnerModel.cpp for class TestRunnerModel// (c)Copyright 2000, Baptiste Lepilleur.// Created: 2001/09/20// //////////////////////////////////////////////////////////////////////////#include <cppunit/TestResult.h>#include "TestRunnerFailureEvent.h"#include "TestRunnerModel.h"#include "TestRunnerTestCaseRunEvent.h"#include "TestRunnerThread.h"#include "TestRunnerThreadFinishedEvent.h"TestRunnerModel::TestRunnerModel( CPPUNIT_NS::Test *rootTest ) :    _rootTest( rootTest ),    _runnerThread( NULL ),    _result( NULL ){}TestRunnerModel::~TestRunnerModel(){  delete _runnerThread;}CPPUNIT_NS::Test *TestRunnerModel::rootTest(){  return _rootTest;}void TestRunnerModel::resetTestReportCounterFor( CPPUNIT_NS::Test *testToRun ){  if ( isTestRunning() )    return;  {    LockGuard guard( _lock );    _numberOfTestCase = testToRun->countTestCases();    _numberOfTestCaseRun =0;    _numberOfTestCaseFailure =0;    _failures.clear();  }  emit failuresCleared();  emit numberOfTestCaseChanged( _numberOfTestCase );  emit numberOfTestCaseRunChanged( _numberOfTestCaseRun );  emit numberOfTestCaseFailureChanged( _numberOfTestCaseFailure );}int TestRunnerModel::numberOfTestCase(){  LockGuard guard( _lock );  return _numberOfTestCase;}int TestRunnerModel::numberOfTestCaseFailure(){  LockGuard guard( _lock );  return _numberOfTestCaseFailure;}int TestRunnerModel::numberOfTestCaseRun(){  LockGuard guard( _lock );  return _numberOfTestCaseRun;}TestFailureInfo *TestRunnerModel::failureAt( int index ){  LockGuard guard( _lock );  return _failures.at( index );}void TestRunnerModel::runTest( CPPUNIT_NS::Test *testToRun ){  if ( isTestRunning() )    return;  resetTestReportCounterFor( testToRun );  {    LockGuard guard( _lock );    delete _result;    _result = new CPPUNIT_NS::TestResult();    _result->addListener( this );  }  emit testRunStarted( testToRun, _result );  LockGuard guard( _lock );  _runnerThread = new TestRunnerThread( testToRun,                                         _result,                                         this,                                         new TestRunnerThreadFinishedEvent() );}bool TestRunnerModel::isTestRunning(){  LockGuard guard( _lock );  return _runnerThread != NULL  &&  _runnerThread->running();}void TestRunnerModel::stopRunningTest(){  {    LockGuard guard( _lock );    if ( _result == NULL )      return;  }  if ( isTestRunning() )  {    LockGuard guard( _lock );    _result->stop();  }}// Called from the TestRunnerThread.void TestRunnerModel::startTest( CPPUNIT_NS::Test * /*test*/ ){}// Called from the TestRunnerThread.void TestRunnerModel::addFailure( const CPPUNIT_NS::TestFailure &failure ){  addFailureInfo( new TestFailureInfo( failure.failedTest(),                                        failure.thrownException(),                                       failure.isError() ) );}// Called from the TestRunnerThread.void TestRunnerModel::endTest( CPPUNIT_NS::Test * /*test*/ ){  int numberOfTestCaseRun;  {    LockGuard guard( _lock );    numberOfTestCaseRun = ++_numberOfTestCaseRun;  }  // emit signal asynchronously  QThread::postEvent( this,                       new TestRunnerTestCaseRunEvent( numberOfTestCaseRun ) );}// Called from the TestRunnerThread.void TestRunnerModel::addFailureInfo( TestFailureInfo *failure ){  int numberOfTestCaseFailure;  {    LockGuard guard( _lock );    _failures.append( failure );    numberOfTestCaseFailure = ++_numberOfTestCaseFailure;  }  // emit signals asynchronously  QThread::postEvent( this,                       new TestRunnerFailureEvent( failure,                                                  numberOfTestCaseFailure ) );}bool TestRunnerModel::event( QEvent *event ){  if ( event->type() != QEvent::User )    return false;  TestRunnerThreadEvent *threadEvent = (TestRunnerThreadEvent *)event;  threadEvent->process( this );  return true;}void TestRunnerModel::eventNewFailure( TestFailureInfo *failure,                                  int numberOfFailure ){  emit numberOfTestCaseFailureChanged( numberOfFailure );  emit failureAdded( failure );}void TestRunnerModel::eventNumberOfTestRunChanged( int numberOfRun ){  emit numberOfTestCaseRunChanged( numberOfRun );}void TestRunnerModel::eventTestRunnerThreadFinished(){  emit testRunFinished();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?