2 #include "basesTest.hxx"
6 using namespace YACS::BASES;
11 Semaphore BasesTest::_s1;
12 Semaphore BasesTest::_s2;
13 ostringstream BasesTest::_glob;
14 int BasesTest::_var=7;
16 const int BasesTest::THREAD_NUM=5;
18 const int BasesTest::LOOPS=4;
20 int BasesTest::_value=0;
22 void *BasesTest::th1_1(void *st)
24 char myName=*((char *) st);
26 _glob<< myName << _var;
32 void *BasesTest::th1_2(void *st)
34 char myName=*((char *) st);
36 _glob<< myName << _var;
40 void *BasesTest::th1_3(void *st)
42 char myName=*((char *) st);
43 _glob<< myName << _var++;
47 void *BasesTest::th2_1(void *)
51 for (i=0; i<LOOPS; ++i)
59 Thread::sleep(100000);
64 void BasesTest::setUp()
68 void BasesTest::tearDown()
73 void BasesTest::test1()
75 char t1Name='A'; char t2Name='B'; char t3Name='C';
76 Thread t1(th1_1,&t1Name);
77 Thread t2(th1_2,&t2Name);
78 Thread t3(th1_3,&t3Name);
82 CPPUNIT_ASSERT( _glob.str() == "C7A8B10" );
85 void BasesTest::test2()
88 Thread **ths=new Thread *[THREAD_NUM];
89 for (i=0; i<THREAD_NUM; ++i)
90 ths[i]=new Thread(th2_1,0);
92 for (i=0; i<THREAD_NUM; ++i)
98 CPPUNIT_ASSERT( _value == THREAD_NUM*LOOPS );