📄 activetest.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 + -