Added thread unit test to test the create, start and destruction of threads

This commit is contained in:
Robert Osfield 2007-09-25 10:18:50 +00:00
parent 6d822cbf45
commit d8cbd49471

View File

@ -24,6 +24,8 @@
#include <osg/Timer>
#include <osg/io_utils>
#include <OpenThreads/Thread>
#include "UnitTestFramework.h"
#include "performance.h"
@ -381,6 +383,26 @@ void testQuat(const osg::Vec3d& quat_scale)
osg::notify(osg::NOTICE)<<"Matrix = "<<matrix<<"rotation = "<<quat<<", expected quat = (0,0,0,1)"<<std::endl;
}
class MyThread : public OpenThreads::Thread {
public:
void run(void) { }
};
void testThreadInitAndExit()
{
std::cout<<"****** Running thread start and delete test ****** "<<std::endl;
{
MyThread thread;
thread.startThread();
}
// add a sleep to allow the thread start to fall over it its going to.
OpenThreads::Thread::microSleep(500000);
std::cout<<"pass thread start and delete test"<<std::endl<<std::endl;
}
int main( int argc, char** argv )
{
@ -414,7 +436,10 @@ int main( int argc, char** argv )
while (arguments.read("sizeof")) printSizeOfTest = true;
bool printQuatTest = false;
while (arguments.read("quat")) printQuatTest = true;
while (arguments.read("quat")) printQuatTest = true;
bool doTestThreadInitAndExit = false;
while (arguments.read("thread")) doTestThreadInitAndExit = true;
osg::Vec3d quat_scale(1.0,1.0,1.0);
while (arguments.read("quat_scaled", quat_scale.x(), quat_scale.y(), quat_scale.z() )) printQuatTest = true;
@ -501,6 +526,11 @@ int main( int argc, char** argv )
std::cout<<std::endl;
}
if (doTestThreadInitAndExit)
{
testThreadInitAndExit();
}
std::cout<<"****** Running tests ******"<<std::endl;
// Global Data or Context