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 + -
显示快捷键?