⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 activetest.cpp

📁 C++中的单元测试类库
💻 CPP
字号:
#include "stdafx.h"#include "ActiveTest.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif// Construct the active testActiveTest::ActiveTest( CPPUNIT_NS::Test *test )    : TestDecorator( test )    , m_runCompleted() {   m_currentTestResult = NULL;   m_threadHandle = INVALID_HANDLE_VALUE; }// Pend until the test has completedActiveTest::~ActiveTest(){   CSingleLock( &m_runCompleted, TRUE );  m_test = NULL;}// Set the test result that we are to runvoid ActiveTest::setTestResult( CPPUNIT_NS::TestResult *result ){   m_currentTestResult = result; }// Run our test resultvoid ActiveTest::run(){   TestDecorator::run( m_currentTestResult );}// Spawn a thread to a testvoid ActiveTest::run( CPPUNIT_NS::TestResult *result ){  CWinThread *thread;    setTestResult( result );  m_runCompleted.ResetEvent();  thread = ::AfxBeginThread( threadFunction,                              this,                              THREAD_PRIORITY_NORMAL,                              0,                              CREATE_SUSPENDED);    ::DuplicateHandle( GetCurrentProcess(),                      thread->m_hThread,                     GetCurrentProcess(),                      &m_threadHandle,                      0,                      FALSE,                      DUPLICATE_SAME_ACCESS );  thread->ResumeThread ();}// Simple execution thread.  Assuming that an ActiveTest instance// only creates one of these at a time.UINT ActiveTest::threadFunction( LPVOID thisInstance ){  ActiveTest *test = (ActiveTest *)thisInstance;  test->run ();  ::CloseHandle( test->m_threadHandle );  test->m_threadHandle = INVALID_HANDLE_VALUE;  test->m_runCompleted.SetEvent();  return 0;}

⌨️ 快捷键说明

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