Logo Search packages:      
Sourcecode: poco version File versions  Download package

ActiveTest.cpp

//
// ActiveTest.cpp
//
// $Id: //poco/1.3/CppUnit/WinTestRunner/src/ActiveTest.cpp#1 $
//


#include <afxwin.h>
#include "ActiveTest.h"


namespace CppUnit {


// Spawn a thread to a test
void ActiveTest::run(TestResult* result)
{
      CWinThread* thread;

      setTestResult(result);
      _runCompleted.ResetEvent();

      thread = AfxBeginThread(threadFunction, this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
      DuplicateHandle(GetCurrentProcess(), thread->m_hThread, GetCurrentProcess(), &_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();
    test->_runCompleted.SetEvent();

    return 0;
}


} // namespace CppUnit


Generated by  Doxygen 1.6.0   Back to index