activetest.h

来自「C++ class libraries for network-centric,」· C头文件 代码 · 共 90 行

H
90
字号
//// ActiveTest.h//// $Id: //poco/1.2/CppUnit/WinTestRunner/src/ActiveTest.h#1 $//#ifndef ActiveTest_INCLUDED#define ActiveTest_INCLUDED#include "CppUnit/CppUnit.h"#include "CppUnit/TestDecorator.h"#include <afxmt.h>namespace CppUnit {/* A Microsoft-specific active test * * An active test manages its own * thread of execution.  This one * is very simple and only sufficient * for the limited use we put it through * in the TestRunner.  It spawns a thread * on run (TestResult *) and signals * completion of the test. * * We assume that only one thread * will be active at once for each * instance. * */class ActiveTest: public TestDecorator{public:	ActiveTest(Test* test);	~ActiveTest();    void run(TestResult* result);protected:    HANDLE      _threadHandle;    CEvent      _runCompleted;    TestResult* _currentTestResult;    void run ();    void setTestResult(TestResult* result);    static UINT threadFunction(LPVOID thisInstance);};// Construct the active testinline ActiveTest::ActiveTest(Test *test): TestDecorator(test){	_currentTestResult = NULL; 	_threadHandle = INVALID_HANDLE_VALUE;}// Pend until the test has completedinline ActiveTest::~ActiveTest(){	CSingleLock(&_runCompleted, TRUE); 	CloseHandle(_threadHandle);}// Set the test result that we are to runinline void ActiveTest::setTestResult(TestResult* result){	_currentTestResult = result; }// Run our test resultinline void ActiveTest::run(){	TestDecorator::run(_currentTestResult);}} // namespace CppUnit#endif // ActiveTest_INCLUDED

⌨️ 快捷键说明

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