You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by da...@apache.org on 2015/09/04 18:32:10 UTC

svn commit: r1701288 [2/3] - in /openoffice/trunk/main/sal/qa/osl/process: makefile.mk osl_Thread.cxx osl_process.cxx

Modified: openoffice/trunk/main/sal/qa/osl/process/osl_Thread.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sal/qa/osl/process/osl_Thread.cxx?rev=1701288&r1=1701287&r2=1701288&view=diff
==============================================================================
--- openoffice/trunk/main/sal/qa/osl/process/osl_Thread.cxx (original)
+++ openoffice/trunk/main/sal/qa/osl/process/osl_Thread.cxx Fri Sep  4 16:32:10 2015
@@ -45,7 +45,7 @@
 #endif
 #include <osl/time.h>
 
-#include <testshl/simpleheader.hxx>
+#include "gtest/gtest.h"
 
 using namespace osl;
 using namespace rtl;
@@ -92,7 +92,7 @@ void StopWatch::start()
     m_bIsValid = false;
     m_bIsRunning = true;
     osl_getSystemTime( &t1 );
-    t_print("# %d %d nsecs\n", t1.Seconds, t1.Nanosec);
+    printf("# %d %d nsecs\n", t1.Seconds, t1.Nanosec);
     // gettimeofday(&t1, 0);
 }
 
@@ -103,7 +103,7 @@ void StopWatch::stop()
 
     // gettimeofday(&t2, 0);                         // Timer ausfragen
     osl_getSystemTime( &t2 );
-    t_print("# %d %d nsecs\n", t2.Seconds, t2.Nanosec);
+    printf("# %d %d nsecs\n", t2.Seconds, t2.Nanosec);
 
     if (m_bIsRunning)
     {                                // check ob gestartet.
@@ -123,7 +123,7 @@ void StopWatch::stop()
 		m_nNanoSec = 1000000000 + static_cast<sal_Int32>(t2.Nanosec) - static_cast<sal_Int32>(t1.Nanosec);
             	m_nSeconds -= 1;
 	}
-	t_print("# %d %d nsecs\n", m_nSeconds, m_nNanoSec );
+	printf("# %d %d nsecs\n", m_nSeconds, m_nNanoSec );
         //if (m_nNanoSec < 0)
         //{
             //m_nNanoSec += 1000000000;
@@ -193,7 +193,7 @@ namespace ThreadHelper
     {
         // if (nVerbose == VERBOSE)
         // {
-        //     t_print("wait %d tenth seconds. ", _nTenthSec );
+        //     printf("wait %d tenth seconds. ", _nTenthSec );
         //     fflush(stdout);
         // }
 #ifdef WNT      //Windows
@@ -207,7 +207,7 @@ namespace ThreadHelper
 #endif
         // if (nVerbose == VERBOSE)
         // {
-        //     t_print("done\n");
+        //     printf("done\n");
         // }
     }
 
@@ -216,27 +216,27 @@ namespace ThreadHelper
         // LLA: output the priority
         if (_aPriority == osl_Thread_PriorityHighest)
         {
-            t_print("Prio is High\n");
+            printf("Prio is High\n");
         }
         else if (_aPriority == osl_Thread_PriorityAboveNormal)
         {
-            t_print("Prio is above normal\n");
+            printf("Prio is above normal\n");
         }
         else if (_aPriority == osl_Thread_PriorityNormal)
         {
-            t_print("Prio is normal\n");
+            printf("Prio is normal\n");
         }
         else if (_aPriority == osl_Thread_PriorityBelowNormal)
         {
-            t_print("Prio is below normal\n");
+            printf("Prio is below normal\n");
         }
         else if (_aPriority == osl_Thread_PriorityLowest)
         {
-            t_print("Prio is lowest\n");
+            printf("Prio is lowest\n");
         }
         else
         {
-            t_print("Prio is unknown\n");
+            printf("Prio is unknown\n");
         }
     }
 }
@@ -277,7 +277,7 @@ public:
         {
             if (isRunning())
             {
-                t_print("error: not terminated.\n");
+                printf("error: not terminated.\n");
             }
         }
 
@@ -293,7 +293,7 @@ public:
     OCountThread()
         {
             m_nWaitSec = 0;
-            t_print("new OCountThread thread %d!\n", getIdentifier());
+            printf("new OCountThread thread %d!\n", getIdentifier());
         }
     sal_Int32 getValue() { return m_aFlag.getValue(); }
 
@@ -339,7 +339,7 @@ protected:
         }
     void SAL_CALL onTerminated()
         {
-            t_print("normally terminate this thread %d!\n", getIdentifier());
+            printf("normally terminate this thread %d!\n", getIdentifier());
         }
 public:
 
@@ -347,7 +347,7 @@ public:
         {
             if (isRunning())
             {
-                t_print("error: not terminated.\n");
+                printf("error: not terminated.\n");
             }
         }
 
@@ -399,7 +399,7 @@ public:
         {
             if (isRunning())
             {
-                t_print("error: not terminated.\n");
+                printf("error: not terminated.\n");
             }
         }
 
@@ -434,18 +434,18 @@ protected:
         }
     void SAL_CALL onTerminated()
         {
-            t_print("normally terminate this thread %d!\n", getIdentifier());
+            printf("normally terminate this thread %d!\n", getIdentifier());
         }
 public:
     ONoScheduleThread()
         {
-                t_print("new thread id %d!\n", getIdentifier());
+                printf("new thread id %d!\n", getIdentifier());
         }
     ~ONoScheduleThread()
         {
             if (isRunning())
             {
-                t_print("error: not terminated.\n");
+                printf("error: not terminated.\n");
             }
         }
 
@@ -478,7 +478,7 @@ protected:
         }
     void SAL_CALL onTerminated()
         {
-            // t_print("normally terminate this thread %d!\n", getIdentifier());
+            // printf("normally terminate this thread %d!\n", getIdentifier());
         }
 public:
 
@@ -486,7 +486,7 @@ public:
         {
             if (isRunning())
             {
-                // t_print("error: not terminated.\n");
+                // printf("error: not terminated.\n");
             }
         }
 
@@ -504,7 +504,7 @@ namespace osl_Thread
         // while on Windows, after createSuspended, the thread can not terminate, wait endlessly,
         // so here call resume at first, then call terminate.
 #ifdef WNT
-        t_print("resumeAndWaitThread\n");
+        printf("resumeAndWaitThread\n");
         _pThread->resume();
         ThreadHelper::thread_sleep_tenth_sec(1);
 #else
@@ -525,145 +525,123 @@ namespace osl_Thread
         _pThread->resume();
         ThreadHelper::thread_sleep_tenth_sec(1);
 #endif
-        t_print("#wait for join.\n");
+        printf("#wait for join.\n");
         _pThread->join();
     }
 /** Test of the osl::Thread::create method
  */
 
-    class create : public CppUnit::TestFixture
+    class create : public ::testing::Test
     {
     public:
 
         // initialise your test code values here.
-        void setUp()
+        void SetUp()
             {
             }
 
-        void tearDown()
+        void TearDown()
             {
             }
+    }; // class create
 
-        /** Simple create a thread.
-
-            Create a simple thread, it just does add 1 to value(which initialized 0),
-            if the thread run, the value should be 1.
-        */
-        void create_001()
-            {
-                myThread* newthread = new myThread();
-                sal_Bool bRes = newthread->create();
-                CPPUNIT_ASSERT_MESSAGE("Can not creates a new thread!\n", bRes == sal_True );
-
-                ThreadHelper::thread_sleep_tenth_sec(1);        // wait short
-                sal_Bool isRunning = newthread->isRunning();    // check if thread is running
-                /// wait for the new thread to assure it has run
-                ThreadHelper::thread_sleep_tenth_sec(3);
-                sal_Int32 nValue = newthread->getValue();
-                /// to assure the new thread has terminated
-                termAndJoinThread(newthread);
-                delete newthread;
 
-                t_print("   nValue = %d\n", nValue);
-                t_print("isRunning = %d\n", isRunning);
+    /** Simple create a thread.
 
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Creates a new thread",
-                    nValue >= 1 && isRunning == sal_True
-                    );
+        Create a simple thread, it just does add 1 to value(which initialized 0),
+        if the thread run, the value should be 1.
+    */
+    TEST_F(create, create_001)
+        {
+            myThread* newthread = new myThread();
+            sal_Bool bRes = newthread->create();
+            ASSERT_TRUE(bRes == sal_True) << "Can not creates a new thread!\n";
+
+            ThreadHelper::thread_sleep_tenth_sec(1);        // wait short
+            sal_Bool isRunning = newthread->isRunning();    // check if thread is running
+            /// wait for the new thread to assure it has run
+            ThreadHelper::thread_sleep_tenth_sec(3);
+            sal_Int32 nValue = newthread->getValue();
+            /// to assure the new thread has terminated
+            termAndJoinThread(newthread);
+            delete newthread;
 
-            }
+            printf("   nValue = %d\n", nValue);
+            printf("isRunning = %d\n", isRunning);
 
-        /** only one running thread per instance, return false if create secondly
-         */
-        void create_002()
-            {
-                myThread* newthread = new myThread();
-                sal_Bool res1 = newthread->create();
-                sal_Bool res2 = newthread->create();
-                t_print("In non pro, an assertion should occurred. This behaviour is right.\n");
-                termAndJoinThread(newthread);
-                delete newthread;
+            ASSERT_TRUE(nValue >= 1 && isRunning == sal_True) << "Creates a new thread";
 
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Creates a new thread: can not create two threads per instance",
-                    res1 && !res2
-                    );
+        }
 
-            }
+    /** only one running thread per instance, return false if create secondly
+     */
+    TEST_F(create, create_002)
+        {
+            myThread* newthread = new myThread();
+            sal_Bool res1 = newthread->create();
+            sal_Bool res2 = newthread->create();
+            printf("In non pro, an assertion should occured. This behaviour is right.\n");
+            termAndJoinThread(newthread);
+            delete newthread;
 
-        CPPUNIT_TEST_SUITE(create);
-        CPPUNIT_TEST(create_001);
-        CPPUNIT_TEST(create_002);
-        CPPUNIT_TEST_SUITE_END();
-    }; // class create
+            ASSERT_TRUE(res1 && !res2) << "Creates a new thread: can not create two threads per instance";
 
+        }
 
 
     /** Test of the osl::Thread::createSuspended method
     */
-    class createSuspended : public CppUnit::TestFixture
+    class createSuspended : public ::testing::Test
     {
     public:
         // initialise your test code values here.
-        void setUp()
+        void SetUp()
             {
             }
 
-        void tearDown()
+        void TearDown()
             {
             }
+    }; // class createSuspended
 
-        /** Create a suspended thread, use the same class as create_001
+    /** Create a suspended thread, use the same class as create_001
 
-            after create, wait enough time, check the value, if it's still the initial value, pass
-        */
-        void createSuspended_001()
-            {
-                myThread* newthread = new myThread();
-                sal_Bool bRes = newthread->createSuspended();
-                CPPUNIT_ASSERT_MESSAGE("Can not creates a new thread!", bRes == sal_True );
-
-                ThreadHelper::thread_sleep_tenth_sec(1);
-                sal_Bool isRunning = newthread->isRunning();
-                ThreadHelper::thread_sleep_tenth_sec(3);
-                sal_Int32 nValue = newthread->getValue();
+        after create, wait enough time, check the value, if it's still the initial value, pass
+    */
+    TEST_F(createSuspended, createSuspended_001)
+        {
+            myThread* newthread = new myThread();
+            sal_Bool bRes = newthread->createSuspended();
+            ASSERT_TRUE(bRes == sal_True) << "Can not creates a new thread!";
 
-                resumeAndWaitThread(newthread);
+            ThreadHelper::thread_sleep_tenth_sec(1);
+            sal_Bool isRunning = newthread->isRunning();
+            ThreadHelper::thread_sleep_tenth_sec(3);
+            sal_Int32 nValue = newthread->getValue();
 
-                termAndJoinThread(newthread);
-                delete newthread;
+            resumeAndWaitThread(newthread);
 
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Creates a new suspended thread",
-                    nValue == 0 && isRunning
-                    );
-            }
+            termAndJoinThread(newthread);
+            delete newthread;
 
-        void createSuspended_002()
-            {
-                myThread* newthread = new myThread();
-                sal_Bool res1 = newthread->createSuspended();
-                sal_Bool res2 = newthread->createSuspended();
+            ASSERT_TRUE(nValue == 0 && isRunning) << "Creates a new suspended thread";
+        }
+    // LLA: Deadlocked!!!
+    TEST_F(createSuspended, createSuspended_002)
+        {
+            myThread* newthread = new myThread();
+            sal_Bool res1 = newthread->createSuspended();
+            sal_Bool res2 = newthread->createSuspended();
 
-                resumeAndWaitThread(newthread);
+            resumeAndWaitThread(newthread);
 
-                termAndJoinThread(newthread);
+            termAndJoinThread(newthread);
 
-                delete newthread;
+            delete newthread;
 
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Creates a new thread: can not create two threads per instance",
-                    res1 && !res2
-                    );
-            }
+            ASSERT_TRUE(res1 && !res2) << "Creates a new thread: can not create two threads per instance";
+        }
 
-        CPPUNIT_TEST_SUITE(createSuspended);
-        CPPUNIT_TEST(createSuspended_001);
-        // LLA: Deadlocked!!!
-        CPPUNIT_TEST(createSuspended_002);
-        CPPUNIT_TEST_SUITE_END();
-    }; // class createSuspended
 
     /** when the count value equal to or more than 3, suspend the thread.
     */
@@ -683,436 +661,384 @@ namespace osl_Thread
 
     /** Test of the osl::Thread::suspend method
     */
-    class suspend : public CppUnit::TestFixture
+    class suspend : public ::testing::Test
     {
     public:
         // initialise your test code values here.
-        void setUp()
+        void SetUp()
             {
             }
 
-        void tearDown()
+        void TearDown()
             {
             }
+    }; // class suspend
 
-        /** Use a thread which has a flag added 1 every second
+    /** Use a thread which has a flag added 1 every second
+
+        ALGORITHM:
+        create the thread, after running special time, record value of flag, then suspend it,
+        wait a long time, check the flag, if it remains unchanged during suspending
+    */
+    TEST_F(suspend, suspend_001)
+        {
+            OCountThread* aCountThread = new OCountThread();
+            sal_Bool bRes = aCountThread->create();
+            ASSERT_TRUE(bRes == sal_True) << "Can't start thread!";
+            // the thread run for some seconds, but not terminate
+            suspendCountThread( aCountThread );
+
+            // the value just after calling suspend
+            sal_Int32 nValue = aCountThread->getValue();       // (2)
+
+            ThreadHelper::thread_sleep_tenth_sec(3);
+
+            // the value after waiting 3 seconds
+            sal_Int32 nLaterValue = aCountThread->getValue();    // (3)
+
+            resumeAndWaitThread(aCountThread);
+            termAndJoinThread(aCountThread);
+            delete aCountThread;
+
+            ASSERT_TRUE(bRes == sal_True && nValue == nLaterValue) << "Suspend the thread";
+
+        }
+    /** suspend a thread in it's worker-function, the ALGORITHM is same as suspend_001
+         reason of deadlocked I think: no schedule can schedule other threads to go on excuting
+     */
+    TEST_F(suspend, suspend_002)
+        {
+#if 0
+            OSuspendThread* aThread = new OSuspendThread();
+            sal_Bool bRes = aThread->create();
+            ASSERT_TRUE(bRes == sal_True) << "Can't start thread!";
+            // first the thread run for some seconds, but not terminate
+            sal_Int32 nValue = 0;
+            //while (1)
+            //{
+            ThreadHelper::thread_sleep_tenth_sec(3);
+            nValue = aThread->getValue();    // (1)
+            printf(" getValue is %d !", nValue );
+            if (nValue >= 2)
+            {
+                    aThread->setSuspend();
+                    //break;
+            }
+            //}
+            printf(" after while!");
+            // the value just after calling suspend
+            nValue = aThread->getValue();       // (2)
+
+            ThreadHelper::thread_sleep_tenth_sec(3);
+            printf(" after sleep!");
+            // the value after waiting 3 seconds
+            sal_Int32 nLaterValue = aThread->getValue();        // (3)
+
+            //resumeAndWaitThread(aThread);
+            aThread->resume();
+            termAndJoinThread(aThread);
+            delete aThread;
+
+            ASSERT_TRUE(bRes == sal_True && nValue == nLaterValue) << "Suspend the thread";
+#endif
+        }
 
-            ALGORITHM:
-            create the thread, after running special time, record value of flag, then suspend it,
-            wait a long time, check the flag, if it remains unchanged during suspending
-        */
-        void suspend_001()
-            {
-                OCountThread* aCountThread = new OCountThread();
-                sal_Bool bRes = aCountThread->create();
-                CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-                // the thread run for some seconds, but not terminate
-                suspendCountThread( aCountThread );
-
-                // the value just after calling suspend
-                sal_Int32 nValue = aCountThread->getValue();       // (2)
-
-                ThreadHelper::thread_sleep_tenth_sec(3);
-
-                // the value after waiting 3 seconds
-                sal_Int32 nLaterValue = aCountThread->getValue();    // (3)
-
-                resumeAndWaitThread(aCountThread);
-                termAndJoinThread(aCountThread);
-                delete aCountThread;
-
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Suspend the thread",
-                    bRes == sal_True && nValue == nLaterValue
-                    );
-
-            }
-        /** suspend a thread in it's worker-function, the ALGORITHM is same as suspend_001
-             reason of deadlocked I think: no schedule can schedule other threads to go on excuting
-         */
-        void suspend_002()
-            {
-                OSuspendThread* aThread = new OSuspendThread();
-                sal_Bool bRes = aThread->create();
-                CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-                // first the thread run for some seconds, but not terminate
-                sal_Int32 nValue = 0;
-                //while (1)
-                //{
-                ThreadHelper::thread_sleep_tenth_sec(3);
-                nValue = aThread->getValue();    // (1)
-                t_print(" getValue is %d !", nValue );
-                if (nValue >= 2)
-                {
-                        aThread->setSuspend();
-                        //break;
-                }
-                //}
-                t_print(" after while!");
-                // the value just after calling suspend
-                nValue = aThread->getValue();       // (2)
-
-                ThreadHelper::thread_sleep_tenth_sec(3);
-                t_print(" after sleep!");
-                // the value after waiting 3 seconds
-                sal_Int32 nLaterValue = aThread->getValue();        // (3)
-
-                //resumeAndWaitThread(aThread);
-                aThread->resume();
-                termAndJoinThread(aThread);
-                delete aThread;
-
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Suspend the thread",
-                    bRes == sal_True && nValue == nLaterValue
-                    );
-            }
-
-        CPPUNIT_TEST_SUITE(suspend);
-        CPPUNIT_TEST(suspend_001);
-        // LLA: Deadlocked!!!
-        // CPPUNIT_TEST(createSuspended_002);
-        CPPUNIT_TEST_SUITE_END();
-    }; // class suspend
 
     /** Test of the osl::Thread::resume method
     */
-    class resume : public CppUnit::TestFixture
+    class resume : public ::testing::Test
     {
     public:
         // initialise your test code values here.
-        void setUp()
+        void SetUp()
             {
             }
 
-        void tearDown()
+        void TearDown()
             {
             }
+    }; // class resume
 
-        /** check if the thread run samely as usual after suspend and resume
-
-            ALGORITHM:
-            compare the values before and after suspend, they should be same,
-            then compare values before and after resume, the difference should be same as the sleep seconds number
-        */
-        void resume_001()
-            {
-                OCountThread* pCountThread = new OCountThread();
-                sal_Bool bRes = pCountThread->create();
-                CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
+    /** check if the thread run samely as usual after suspend and resume
 
-                suspendCountThread(pCountThread);
+        ALGORITHM:
+        compare the values before and after suspend, they should be same,
+        then compare values before and after resume, the difference should be same as the sleep seconds number
+    */
+    TEST_F(resume, resume_001)
+        {
+            OCountThread* pCountThread = new OCountThread();
+            sal_Bool bRes = pCountThread->create();
+            ASSERT_TRUE(bRes == sal_True) << "Can't start thread!";
 
-                sal_Int32 nSuspendValue = pCountThread->getValue();  // (2)
-                // suspend for 3 seconds
-                ThreadHelper::thread_sleep_tenth_sec(3);
-                pCountThread->resume();
+            suspendCountThread(pCountThread);
 
-                ThreadHelper::thread_sleep_tenth_sec(3);
-                sal_Int32 nResumeValue = pCountThread->getValue();
+            sal_Int32 nSuspendValue = pCountThread->getValue();  // (2)
+            // suspend for 3 seconds
+            ThreadHelper::thread_sleep_tenth_sec(3);
+            pCountThread->resume();
 
-                ThreadHelper::thread_sleep_tenth_sec(3);
-                sal_Int32 nLaterValue = pCountThread->getValue();
+            ThreadHelper::thread_sleep_tenth_sec(3);
+            sal_Int32 nResumeValue = pCountThread->getValue();
 
-                termAndJoinThread(pCountThread);
-                delete pCountThread;
+            ThreadHelper::thread_sleep_tenth_sec(3);
+            sal_Int32 nLaterValue = pCountThread->getValue();
 
-                t_print("SuspendValue: %d\n", nSuspendValue);
-                t_print("ResumeValue:  %d\n", nResumeValue);
-                t_print("LaterValue:   %d\n", nLaterValue);
+            termAndJoinThread(pCountThread);
+            delete pCountThread;
 
-                /* LLA: this assumption is no longer relevant: nResumeValue ==  nSuspendValue && */
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Suspend then resume the thread",
-                    nLaterValue >= 9 &&
-                    nResumeValue > nSuspendValue &&
-                    nLaterValue > nResumeValue
-                    );
+            printf("SuspendValue: %d\n", nSuspendValue);
+            printf("ResumeValue:  %d\n", nResumeValue);
+            printf("LaterValue:   %d\n", nLaterValue);
 
-            }
+            /* LLA: this assumption is no longer relevant: nResumeValue ==  nSuspendValue && */
+            ASSERT_TRUE(nLaterValue >= 9 &&
+                nResumeValue > nSuspendValue &&
+                nLaterValue > nResumeValue) << "Suspend then resume the thread";
 
-        /** Create a suspended thread then resume, check if the thread has run
-         */
-        void resume_002()
-            {
-                myThread* newthread = new myThread();
-                sal_Bool bRes = newthread->createSuspended();
-                CPPUNIT_ASSERT_MESSAGE ( "Can't create thread!", bRes == sal_True );
+        }
 
-                newthread->resume();
-                ThreadHelper::thread_sleep_tenth_sec(2);
-                sal_Int32 nValue = newthread->getValue();
+    /** Create a suspended thread then resume, check if the thread has run
+     */
+    TEST_F(resume, resume_002)
+        {
+            myThread* newthread = new myThread();
+            sal_Bool bRes = newthread->createSuspended();
+            ASSERT_TRUE(bRes == sal_True) << "Can't create thread!";
 
-                termAndJoinThread(newthread);
-                delete newthread;
+            newthread->resume();
+            ThreadHelper::thread_sleep_tenth_sec(2);
+            sal_Int32 nValue = newthread->getValue();
 
-                t_print("   nValue = %d\n", nValue);
+            termAndJoinThread(newthread);
+            delete newthread;
 
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Creates a suspended thread, then resume",
-                    nValue >= 1
-                    );
-            }
+            printf("   nValue = %d\n", nValue);
 
-        CPPUNIT_TEST_SUITE(resume);
-        CPPUNIT_TEST(resume_001);
-        CPPUNIT_TEST(resume_002);
-        CPPUNIT_TEST_SUITE_END();
-    }; // class resume
+            ASSERT_TRUE(nValue >= 1) << "Creates a suspended thread, then resume";
+        }
 
     /** Test of the osl::Thread::terminate method
     */
-    class terminate : public CppUnit::TestFixture
+    class terminate : public ::testing::Test
     {
     public:
         // initialise your test code values here.
-        void setUp()
+        void SetUp()
             {
             }
 
-        void tearDown()
+        void TearDown()
             {
             }
+    }; // class terminate
 
-        /** Check after call terminate if the running thread running go on executing
+    /** Check after call terminate if the running thread running go on executing
 
-            ALGORITHM:
-            before and after call terminate, the values should be the same
-        */
-        void terminate_001()
-            {
-                OCountThread* aCountThread = new OCountThread();
-                sal_Bool bRes = aCountThread->create();
-                CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-
-                ThreadHelper::thread_sleep_tenth_sec(2);
-                sal_Int32 nValue = aCountThread->getValue();
-                aCountThread->terminate();
-                ThreadHelper::thread_sleep_tenth_sec(2);
-                sal_Int32 nLaterValue = aCountThread->getValue();
-
-                // isRunning should be false after terminate
-                sal_Bool isRunning = aCountThread->isRunning();
-                aCountThread->join();
-                delete aCountThread;
-
-                t_print("     nValue = %d\n", nValue);
-                t_print("nLaterValue = %d\n", nLaterValue);
-
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Terminate the thread",
-                    isRunning == sal_False && nLaterValue >= nValue
-                    );
-            }
-        /** Check if a suspended thread will terminate after call terminate, different on w32 and on UNX
-         */
-        void terminate_002()
-            {
-                OCountThread* aCountThread = new OCountThread();
-                sal_Bool bRes = aCountThread->create();
-                CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
+        ALGORITHM:
+        before and after call terminate, the values should be the same
+    */
+    TEST_F(terminate, terminate_001)
+        {
+            OCountThread* aCountThread = new OCountThread();
+            sal_Bool bRes = aCountThread->create();
+            ASSERT_TRUE(bRes == sal_True) << "Can't start thread!";
 
-                ThreadHelper::thread_sleep_tenth_sec(1);
-                suspendCountThread(aCountThread);
-                sal_Int32 nValue = aCountThread->getValue();
+            ThreadHelper::thread_sleep_tenth_sec(2);
+            sal_Int32 nValue = aCountThread->getValue();
+            aCountThread->terminate();
+            ThreadHelper::thread_sleep_tenth_sec(2);
+            sal_Int32 nLaterValue = aCountThread->getValue();
 
-                // seems a suspended thread can not be terminated on W32, while on Solaris can
-                resumeAndWaitThread(aCountThread);
+            // isRunning should be false after terminate
+            sal_Bool isRunning = aCountThread->isRunning();
+            aCountThread->join();
+            delete aCountThread;
 
-                ThreadHelper::thread_sleep_tenth_sec(2);
+            printf("     nValue = %d\n", nValue);
+            printf("nLaterValue = %d\n", nLaterValue);
 
-                termAndJoinThread(aCountThread);
-                sal_Int32 nLaterValue = aCountThread->getValue();
-                delete aCountThread;
+            ASSERT_TRUE(isRunning == sal_False && nLaterValue >= nValue) << "Terminate the thread";
+        }
+    /** Check if a suspended thread will terminate after call terminate, different on w32 and on UNX
+     */
+    TEST_F(terminate, terminate_002)
+        {
+            OCountThread* aCountThread = new OCountThread();
+            sal_Bool bRes = aCountThread->create();
+            ASSERT_TRUE(bRes == sal_True) << "Can't start thread!";
 
-                t_print("     nValue = %d\n", nValue);
-                t_print("nLaterValue = %d\n", nLaterValue);
+            ThreadHelper::thread_sleep_tenth_sec(1);
+            suspendCountThread(aCountThread);
+            sal_Int32 nValue = aCountThread->getValue();
 
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Suspend then resume the thread",
-                    nLaterValue > nValue );
-            }
+            // seems a suspended thread can not be terminated on W32, while on Solaris can
+            resumeAndWaitThread(aCountThread);
+
+            ThreadHelper::thread_sleep_tenth_sec(2);
+
+            termAndJoinThread(aCountThread);
+            sal_Int32 nLaterValue = aCountThread->getValue();
+            delete aCountThread;
+
+            printf("     nValue = %d\n", nValue);
+            printf("nLaterValue = %d\n", nLaterValue);
+
+            ASSERT_TRUE(nLaterValue > nValue) << "Suspend then resume the thread";
+        }
 
-        CPPUNIT_TEST_SUITE(terminate);
-        CPPUNIT_TEST(terminate_001);
-        CPPUNIT_TEST(terminate_002);
-        CPPUNIT_TEST_SUITE_END();
-    }; // class terminate
 
     /** Test of the osl::Thread::join method
     */
-    class join : public CppUnit::TestFixture
+    class join : public ::testing::Test
     {
     public:
         // initialise your test code values here.
-        void setUp()
+        void SetUp()
             {
             }
 
-        void tearDown()
+        void TearDown()
             {
             }
+    }; // class join
 
-        /** Check after call terminate if the thread running function will not go on executing
+    /** Check after call terminate if the thread running function will not go on executing
 
-            the next statement after join will not exec before the thread terminate
-            ALGORITHM:
-            recode system time at the beginning of the thread run, call join, then record system time again,
-            the difference of the two time should be equal or more than 20 seconds, the CountThead normally terminate
-        */
-        void join_001()
-            {
-                OCountThread *aCountThread = new OCountThread();
-                sal_Bool bRes = aCountThread->create();
-                CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-
-                StopWatch aStopWatch;
-                aStopWatch.start();
-                // TimeValue aTimeVal_befor;
-                // osl_getSystemTime( &aTimeVal_befor );
-                //t_print("#join:the system time is %d,%d\n", pTimeVal_befor->Seconds,pTimeVal_befor->Nanosec);
-
-                aCountThread->join();
-
-                //the below line will be executed after aCountThread terminate
-                // TimeValue aTimeVal_after;
-                // osl_getSystemTime( &aTimeVal_after );
-                aStopWatch.stop();
-                // sal_uInt32 nSec  = aTimeVal_after.Seconds - aTimeVal_befor.Seconds;
-                double nSec = aStopWatch.getSeconds();
-                t_print("join_001 nSec=%f\n", nSec);
-                delete aCountThread;
-
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Join the thread: after the thread terminate",
-                    nSec >= 2
-                    );
+        the next statement after join will not exec before the thread terminate
+        ALGORITHM:
+        recode system time at the beginning of the thread run, call join, then record system time again,
+        the difference of the two time should be equal or more than 20 seconds, the CountThead normally terminate
+    */
+    TEST_F(join, join_001)
+        {
+            OCountThread *aCountThread = new OCountThread();
+            sal_Bool bRes = aCountThread->create();
+            ASSERT_TRUE(bRes == sal_True) << "Can't start thread!";
 
-            }
-        /** after terminated by another thread, join exited immediately
+            StopWatch aStopWatch;
+            aStopWatch.start();
+            // TimeValue aTimeVal_befor;
+            // osl_getSystemTime( &aTimeVal_befor );
+            //printf("#join:the system time is %d,%d\n", pTimeVal_befor->Seconds,pTimeVal_befor->Nanosec);
 
-            ALGORITHM:
-            terminate the thread when value>=3, call join, check the beginning time and time after join,
-            the difference should be 3 seconds, join costs little time
-        */
-        void join_002()
-            {
-                OCountThread *aCountThread = new OCountThread();
-                sal_Bool bRes = aCountThread->create();
-                CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-
-                //record the time when the running begin
-                // TimeValue aTimeVal_befor;
-                // osl_getSystemTime( &aTimeVal_befor );
-                StopWatch aStopWatch;
-                aStopWatch.start();
-
-                ThreadHelper::thread_sleep_tenth_sec(10);
-                termAndJoinThread(aCountThread);
-
-                //the below line will be executed after aCountThread terminate
-                // TimeValue aTimeVal_after;
-                // osl_getSystemTime( &aTimeVal_after );
-                // sal_uInt32 nSec  = aTimeVal_after.Seconds - aTimeVal_befor.Seconds;
-                aStopWatch.stop();
-                double nSec = aStopWatch.getSeconds();
-                t_print("join_002 nSec=%f\n", nSec);
-
-                delete aCountThread;
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Join the thread: after thread terminate by another thread",
-                    nSec >= 1
-                    );
-            }
-
-        CPPUNIT_TEST_SUITE(join);
-        CPPUNIT_TEST(join_001);
-        CPPUNIT_TEST(join_002);
-        CPPUNIT_TEST_SUITE_END();
-    }; // class join
+            aCountThread->join();
+
+            //the below line will be executed after aCountThread terminate
+            // TimeValue aTimeVal_after;
+            // osl_getSystemTime( &aTimeVal_after );
+            aStopWatch.stop();
+            // sal_uInt32 nSec  = aTimeVal_after.Seconds - aTimeVal_befor.Seconds;
+            double nSec = aStopWatch.getSeconds();
+            printf("join_001 nSec=%f\n", nSec);
+            delete aCountThread;
+
+            ASSERT_TRUE(nSec >= 2) << "Join the thread: after the thread terminate";
+
+        }
+    /** after terminated by another thread, join exited immediately
+
+        ALGORITHM:
+        terminate the thread when value>=3, call join, check the beginning time and time after join,
+        the difference should be 3 seconds, join costs little time
+    */
+    TEST_F(join, join_002)
+        {
+            OCountThread *aCountThread = new OCountThread();
+            sal_Bool bRes = aCountThread->create();
+            ASSERT_TRUE(bRes == sal_True) << "Can't start thread!";
+
+            //record the time when the running begin
+            // TimeValue aTimeVal_befor;
+            // osl_getSystemTime( &aTimeVal_befor );
+            StopWatch aStopWatch;
+            aStopWatch.start();
+
+            ThreadHelper::thread_sleep_tenth_sec(10);
+            termAndJoinThread(aCountThread);
+
+            //the below line will be executed after aCountThread terminate
+            // TimeValue aTimeVal_after;
+            // osl_getSystemTime( &aTimeVal_after );
+            // sal_uInt32 nSec  = aTimeVal_after.Seconds - aTimeVal_befor.Seconds;
+            aStopWatch.stop();
+            double nSec = aStopWatch.getSeconds();
+            printf("join_002 nSec=%f\n", nSec);
+
+            delete aCountThread;
+            ASSERT_TRUE(nSec >= 1) << "Join the thread: after thread terminate by another thread";
+        }
 
     /** Test of the osl::Thread::isRunning method
     */
-    class isRunning : public CppUnit::TestFixture
+    class isRunning : public ::testing::Test
     {
     public:
         // initialise your test code values here.
-        void setUp()
+        void SetUp()
             {
             }
 
-        void tearDown()
+        void TearDown()
             {
             }
-
-        /**
-         */
-        void isRunning_001()
-            {
-                OCountThread *aCountThread = new OCountThread();
-                sal_Bool bRes = aCountThread->create();
-                CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-
-                sal_Bool bRun = aCountThread->isRunning();
-
-                ThreadHelper::thread_sleep_tenth_sec(2);
-                termAndJoinThread(aCountThread);
-                sal_Bool bTer = aCountThread->isRunning();
-                delete aCountThread;
-
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Test isRunning",
-                    bRun == sal_True && bTer == sal_False
-                    );
-            }
-        /** check the value of isRunning when suspending and after resume
-         */
-        void isRunning_002()
-            {
-                OCountThread *aCountThread = new OCountThread();
-                sal_Bool bRes = aCountThread->create();
-                CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-
-                // sal_Bool bRunning = aCountThread->isRunning();
-                // sal_Int32 nValue = 0;
-                suspendCountThread(aCountThread);
-
-                sal_Bool bRunning_sup = aCountThread->isRunning();
-                ThreadHelper::thread_sleep_tenth_sec(2);
-                aCountThread->resume();
-                ThreadHelper::thread_sleep_tenth_sec(2);
-                sal_Bool bRunning_res = aCountThread->isRunning();
-                termAndJoinThread(aCountThread);
-                sal_Bool bRunning_ter = aCountThread->isRunning();
-                delete aCountThread;
-
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Test isRunning",
-                    bRes == sal_True &&
-                    bRunning_sup == sal_True &&
-                    bRunning_res == sal_True &&
-                    bRunning_ter == sal_False
-                    );
-
-            }
-
-        CPPUNIT_TEST_SUITE(isRunning);
-        CPPUNIT_TEST(isRunning_001);
-        CPPUNIT_TEST(isRunning_002);
-        CPPUNIT_TEST_SUITE_END();
     }; // class isRunning
 
+    /**
+     */
+    TEST_F(isRunning, isRunning_001)
+        {
+            OCountThread *aCountThread = new OCountThread();
+            sal_Bool bRes = aCountThread->create();
+            ASSERT_TRUE(bRes == sal_True) << "Can't start thread!";
+
+            sal_Bool bRun = aCountThread->isRunning();
+
+            ThreadHelper::thread_sleep_tenth_sec(2);
+            termAndJoinThread(aCountThread);
+            sal_Bool bTer = aCountThread->isRunning();
+            delete aCountThread;
+
+            ASSERT_TRUE(bRun == sal_True && bTer == sal_False) << "Test isRunning";
+        }
+    /** check the value of isRunning when suspending and after resume
+     */
+    TEST_F(isRunning, isRunning_002)
+        {
+            OCountThread *aCountThread = new OCountThread();
+            sal_Bool bRes = aCountThread->create();
+            ASSERT_TRUE(bRes == sal_True) << "Can't start thread!";
+
+            // sal_Bool bRunning = aCountThread->isRunning();
+            // sal_Int32 nValue = 0;
+            suspendCountThread(aCountThread);
+
+            sal_Bool bRunning_sup = aCountThread->isRunning();
+            ThreadHelper::thread_sleep_tenth_sec(2);
+            aCountThread->resume();
+            ThreadHelper::thread_sleep_tenth_sec(2);
+            sal_Bool bRunning_res = aCountThread->isRunning();
+            termAndJoinThread(aCountThread);
+            sal_Bool bRunning_ter = aCountThread->isRunning();
+            delete aCountThread;
+
+            ASSERT_TRUE(bRes == sal_True &&
+                bRunning_sup == sal_True &&
+                bRunning_res == sal_True &&
+                bRunning_ter == sal_False) << "Test isRunning";
+
+        }
 
     /// check osl::Thread::setPriority
-    class setPriority : public CppUnit::TestFixture
+    class setPriority : public ::testing::Test
     {
     public:
         // initialise your test code values here.
-        void setUp()
+        void SetUp()
             {
             }
 
-        void tearDown()
+        void TearDown()
             {
             }
 
@@ -1179,10 +1105,10 @@ namespace osl_Thread
                 nValueNormal2 = p2Thread->getValue();
 
                 rtl::OString sPrio = getPrioName(_aPriority);
-                t_print("After 10 tenth seconds\n");
+                printf("After 10 tenth seconds\n");
 
-                t_print("nValue in %s Prio Thread is  %d\n",sPrio.getStr(), nValueNormal);
-                t_print("nValue in %s Prio Thread is %d\n", sPrio.getStr(), nValueNormal2);
+                printf("nValue in %s Prio Thread is  %d\n",sPrio.getStr(), nValueNormal);
+                printf("nValue in %s Prio Thread is %d\n", sPrio.getStr(), nValueNormal2);
 
                 // ThreadHelper::thread_sleep_tenth_sec(1);
                 pThread->join();
@@ -1193,618 +1119,556 @@ namespace osl_Thread
 
                 sal_Int32 nDelta = abs(nValueNormal - nValueNormal2);
                 double nQuotient = std::max(nValueNormal, nValueNormal2);
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Quotient is zero, which means, there exist no right values.",
-                    nQuotient != 0
-                    );
+                ASSERT_TRUE(nQuotient != 0) << "Quotient is zero, which means, there exist no right values.";
                 double nDeltaPercent = nDelta / nQuotient * 100;
 
-                t_print("Delta value %d, percent %f\n",nDelta, nDeltaPercent);
+                printf("Delta value %d, percent %f\n",nDelta, nDeltaPercent);
 
                 // LLA: it's not a bug if the current OS is not able to handle thread scheduling right and good.
                 // like Windows XP
-                // LLA: CPPUNIT_ASSERT_MESSAGE(
-                // LLA:     "Run 2 normal threads, the count diff more than 5 percent.",
-                // LLA:     nDeltaPercent <= 5
-                // LLA:     );
-            }
-
-        void setPriority_001_1()
-            {
-                check2Threads(osl_Thread_PriorityHighest);
-            }
-        void setPriority_001_2()
-            {
-                check2Threads(osl_Thread_PriorityAboveNormal);
-            }
-        void setPriority_001_3()
-            {
-                check2Threads(osl_Thread_PriorityNormal);
-            }
-        void setPriority_001_4()
-            {
-                check2Threads(osl_Thread_PriorityBelowNormal);
-            }
-        void setPriority_001_5()
-            {
-                check2Threads(osl_Thread_PriorityLowest);
+                // LLA: ASSERT_TRUE(// LLA:     nDeltaPercent <= 5
+                // LLA:) << // LLA:     "Run 2 normal threads, the count diff more than 5 percent.";
             }
+    }; // class setPriority
 
-        void setPriority_002()
-            {
-                // initial 5 threads with different priorities
-
-                OAddThread aHighestThread;
-                OAddThread aAboveNormalThread;
-                OAddThread aNormalThread;
-                //OAddThread *aBelowNormalThread = new OAddThread();
-                //OAddThread *aLowestThread = new OAddThread();
-
-                //Create them and start running at the same time
-                aHighestThread.createSuspended();
-                aHighestThread.setPriority(osl_Thread_PriorityHighest);
-
-                aAboveNormalThread.createSuspended();
-                aAboveNormalThread.setPriority(osl_Thread_PriorityAboveNormal);
-
-                aNormalThread.createSuspended();
-                aNormalThread.setPriority(osl_Thread_PriorityNormal);
-                /*aBelowNormalThread->create();
-                  aBelowNormalThread->setPriority(osl_Thread_PriorityBelowNormal);
-                  aLowestThread->create();
-                  aLowestThread->setPriority(osl_Thread_PriorityLowest);
-                */
-
-                aHighestThread.resume();
-                aAboveNormalThread.resume();
-                aNormalThread.resume();
-
-                ThreadHelper::thread_sleep_tenth_sec(5);
-
-                aHighestThread.suspend();
-                aAboveNormalThread.suspend();
-                aNormalThread.suspend();
-
-                termAndJoinThread(&aNormalThread);
-                termAndJoinThread(&aAboveNormalThread);
-                termAndJoinThread(&aHighestThread);
-                //aBelowNormalThread->terminate();
-                //aLowestThread->terminate();
-
-                sal_Int32 nValueHighest = 0;
-                nValueHighest = aHighestThread.getValue();
-
-                sal_Int32 nValueAboveNormal = 0;
-                nValueAboveNormal = aAboveNormalThread.getValue();
+    TEST_F(setPriority, setPriority_001_1)
+        {
+            check2Threads(osl_Thread_PriorityHighest);
+        }
+    TEST_F(setPriority, setPriority_001_2)
+        {
+            check2Threads(osl_Thread_PriorityAboveNormal);
+        }
+    TEST_F(setPriority, setPriority_001_3)
+        {
+            check2Threads(osl_Thread_PriorityNormal);
+        }
+    TEST_F(setPriority, setPriority_001_4)
+        {
+            check2Threads(osl_Thread_PriorityBelowNormal);
+        }
+    TEST_F(setPriority, setPriority_001_5)
+        {
+            check2Threads(osl_Thread_PriorityLowest);
+        }
 
-                sal_Int32 nValueNormal = 0;
-                nValueNormal = aNormalThread.getValue();
+#ifndef SOLARIS
+    TEST_F(setPriority, setPriority_002)
+        {
+            // initial 5 threads with different priorities
 
-                // sal_Int32 nValueBelowNormal = 0;
-                //nValueBelowNormal = aBelowNormalThread->getValue();
-                // sal_Int32 nValueLowest = 0;
-                //nValueLowest = aLowestThread->getValue();
-                t_print("After 10 tenth seconds\n");
-                t_print("nValue in Highest Prio Thread is %d\n",nValueHighest);
-                t_print("nValue in AboveNormal Prio Thread is %d\n",nValueAboveNormal);
-                t_print("nValue in Normal Prio Thread is %d\n",nValueNormal);
-
-                // LLA: this is not a save test, so we only check if all values not zero
-                // LLA: CPPUNIT_ASSERT_MESSAGE(
-                // LLA:     "SetPriority",
-                // LLA:     nValueHighest >= nValueAboveNormal &&
-                // LLA:     nValueAboveNormal >= nValueNormal &&
-                // LLA:     nValueNormal > 0
-                // LLA:     );
+            OAddThread aHighestThread;
+            OAddThread aAboveNormalThread;
+            OAddThread aNormalThread;
+            //OAddThread *aBelowNormalThread = new OAddThread();
+            //OAddThread *aLowestThread = new OAddThread();
+
+            //Create them and start running at the same time
+            aHighestThread.createSuspended();
+            aHighestThread.setPriority(osl_Thread_PriorityHighest);
+
+            aAboveNormalThread.createSuspended();
+            aAboveNormalThread.setPriority(osl_Thread_PriorityAboveNormal);
+
+            aNormalThread.createSuspended();
+            aNormalThread.setPriority(osl_Thread_PriorityNormal);
+            /*aBelowNormalThread->create();
+              aBelowNormalThread->setPriority(osl_Thread_PriorityBelowNormal);
+              aLowestThread->create();
+              aLowestThread->setPriority(osl_Thread_PriorityLowest);
+            */
+
+            aHighestThread.resume();
+            aAboveNormalThread.resume();
+            aNormalThread.resume();
+
+            ThreadHelper::thread_sleep_tenth_sec(5);
+
+            aHighestThread.suspend();
+            aAboveNormalThread.suspend();
+            aNormalThread.suspend();
+
+            termAndJoinThread(&aNormalThread);
+            termAndJoinThread(&aAboveNormalThread);
+            termAndJoinThread(&aHighestThread);
+            //aBelowNormalThread->terminate();
+            //aLowestThread->terminate();
+
+            sal_Int32 nValueHighest = 0;
+            nValueHighest = aHighestThread.getValue();
+
+            sal_Int32 nValueAboveNormal = 0;
+            nValueAboveNormal = aAboveNormalThread.getValue();
+
+            sal_Int32 nValueNormal = 0;
+            nValueNormal = aNormalThread.getValue();
+
+            // sal_Int32 nValueBelowNormal = 0;
+            //nValueBelowNormal = aBelowNormalThread->getValue();
+            // sal_Int32 nValueLowest = 0;
+            //nValueLowest = aLowestThread->getValue();
+            printf("After 10 tenth seconds\n");
+            printf("nValue in Highest Prio Thread is %d\n",nValueHighest);
+            printf("nValue in AboveNormal Prio Thread is %d\n",nValueAboveNormal);
+            printf("nValue in Normal Prio Thread is %d\n",nValueNormal);
+
+            // LLA: this is not a save test, so we only check if all values not zero
+            // LLA: ASSERT_TRUE(// LLA:     nValueHighest >= nValueAboveNormal &&
+            // LLA:     nValueAboveNormal >= nValueNormal &&
+            // LLA:     nValueNormal > 0
+            // LLA:) << // LLA:     "SetPriority";
 
 // LLA: windows let starve threads with lower priority
 #ifndef WNT
-                CPPUNIT_ASSERT_MESSAGE(
-                    "SetPriority",
-                    nValueHighest     > 0 &&
-                    nValueAboveNormal > 0 &&
-                    nValueNormal > 0
-                    );
+            ASSERT_TRUE(nValueHighest     > 0 &&
+                nValueAboveNormal > 0 &&
+                nValueNormal > 0) << "SetPriority";
 #endif
-            }
-
-        void setPriority_003()
-            {
-                // initial 5 threads with different priorities
-                OAddThread *pHighestThread = new OAddThread();
-                OAddThread *pAboveNormalThread = new OAddThread();
-                OAddThread *pNormalThread = new OAddThread();
-                OAddThread *pBelowNormalThread = new OAddThread();
-                OAddThread *pLowestThread = new OAddThread();
-
-                //Create them and start running at the same time
-                pHighestThread->createSuspended();
-                pHighestThread->setPriority(osl_Thread_PriorityHighest);
-
-                pAboveNormalThread->createSuspended();
-                pAboveNormalThread->setPriority(osl_Thread_PriorityAboveNormal);
-
-                pNormalThread->createSuspended();
-                pNormalThread->setPriority(osl_Thread_PriorityNormal);
-
-                pBelowNormalThread->createSuspended();
-                pBelowNormalThread->setPriority(osl_Thread_PriorityBelowNormal);
-
-                pLowestThread->createSuspended();
-                pLowestThread->setPriority(osl_Thread_PriorityLowest);
-
-                pHighestThread->resume();
-                pAboveNormalThread->resume();
-                pNormalThread->resume();
-                pBelowNormalThread->resume();
-                pLowestThread->resume();
-
-                ThreadHelper::thread_sleep_tenth_sec(5);
-
-                pHighestThread->suspend();
-                pAboveNormalThread->suspend();
-                pNormalThread->suspend();
-                pBelowNormalThread->suspend();
-                pLowestThread->suspend();
-
-                termAndJoinThread(pHighestThread);
-                termAndJoinThread(pAboveNormalThread);
-                termAndJoinThread(pNormalThread);
-                termAndJoinThread(pBelowNormalThread);
-                termAndJoinThread(pLowestThread);
-
-                sal_Int32 nValueHighest = 0;
-                nValueHighest = pHighestThread->getValue();
-
-                sal_Int32 nValueAboveNormal = 0;
-                nValueAboveNormal = pAboveNormalThread->getValue();
-
-                sal_Int32 nValueNormal = 0;
-                nValueNormal = pNormalThread->getValue();
-
-                sal_Int32 nValueBelowNormal = 0;
-                nValueBelowNormal = pBelowNormalThread->getValue();
-
-                sal_Int32 nValueLowest = 0;
-                nValueLowest = pLowestThread->getValue();
+        }
 
-                t_print("After 10 tenth seconds\n");
-                t_print("nValue in Highest Prio Thread is     %d\n",nValueHighest);
-                t_print("nValue in AboveNormal Prio Thread is %d\n",nValueAboveNormal);
-                t_print("nValue in Normal Prio Thread is      %d\n",nValueNormal);
-                t_print("nValue in BelowNormal Prio Thread is %d\n",nValueBelowNormal);
-                t_print("nValue in Lowest Prio Thread is      %d\n",nValueLowest);
-
-                delete pHighestThread;
-                delete pAboveNormalThread;
-                delete pNormalThread;
-                delete pBelowNormalThread;
-                delete pLowestThread;
-
-                // LLA: this is not a save test, so we only check if all values not zero
-                // LLA: CPPUNIT_ASSERT_MESSAGE(
-                // LLA:     "SetPriority",
-                // LLA:     nValueHighest > nValueAboveNormal &&
-                // LLA:     nValueAboveNormal > nValueNormal &&
-                // LLA:     nValueNormal > nValueBelowNormal &&
-                // LLA:     nValueBelowNormal > nValueLowest &&
-                // LLA:     nValueLowest > 0
-                // LLA:     );
+    TEST_F(setPriority, setPriority_003)
+        {
+            // initial 5 threads with different priorities
+            OAddThread *pHighestThread = new OAddThread();
+            OAddThread *pAboveNormalThread = new OAddThread();
+            OAddThread *pNormalThread = new OAddThread();
+            OAddThread *pBelowNormalThread = new OAddThread();
+            OAddThread *pLowestThread = new OAddThread();
+
+            //Create them and start running at the same time
+            pHighestThread->createSuspended();
+            pHighestThread->setPriority(osl_Thread_PriorityHighest);
+
+            pAboveNormalThread->createSuspended();
+            pAboveNormalThread->setPriority(osl_Thread_PriorityAboveNormal);
+
+            pNormalThread->createSuspended();
+            pNormalThread->setPriority(osl_Thread_PriorityNormal);
+
+            pBelowNormalThread->createSuspended();
+            pBelowNormalThread->setPriority(osl_Thread_PriorityBelowNormal);
+
+            pLowestThread->createSuspended();
+            pLowestThread->setPriority(osl_Thread_PriorityLowest);
+
+            pHighestThread->resume();
+            pAboveNormalThread->resume();
+            pNormalThread->resume();
+            pBelowNormalThread->resume();
+            pLowestThread->resume();
+
+            ThreadHelper::thread_sleep_tenth_sec(5);
+
+            pHighestThread->suspend();
+            pAboveNormalThread->suspend();
+            pNormalThread->suspend();
+            pBelowNormalThread->suspend();
+            pLowestThread->suspend();
+
+            termAndJoinThread(pHighestThread);
+            termAndJoinThread(pAboveNormalThread);
+            termAndJoinThread(pNormalThread);
+            termAndJoinThread(pBelowNormalThread);
+            termAndJoinThread(pLowestThread);
+
+            sal_Int32 nValueHighest = 0;
+            nValueHighest = pHighestThread->getValue();
+
+            sal_Int32 nValueAboveNormal = 0;
+            nValueAboveNormal = pAboveNormalThread->getValue();
+
+            sal_Int32 nValueNormal = 0;
+            nValueNormal = pNormalThread->getValue();
+
+            sal_Int32 nValueBelowNormal = 0;
+            nValueBelowNormal = pBelowNormalThread->getValue();
+
+            sal_Int32 nValueLowest = 0;
+            nValueLowest = pLowestThread->getValue();
+
+            printf("After 10 tenth seconds\n");
+            printf("nValue in Highest Prio Thread is     %d\n",nValueHighest);
+            printf("nValue in AboveNormal Prio Thread is %d\n",nValueAboveNormal);
+            printf("nValue in Normal Prio Thread is      %d\n",nValueNormal);
+            printf("nValue in BelowNormal Prio Thread is %d\n",nValueBelowNormal);
+            printf("nValue in Lowest Prio Thread is      %d\n",nValueLowest);
+
+            delete pHighestThread;
+            delete pAboveNormalThread;
+            delete pNormalThread;
+            delete pBelowNormalThread;
+            delete pLowestThread;
+
+            // LLA: this is not a save test, so we only check if all values not zero
+            // LLA: ASSERT_TRUE(// LLA:     nValueHighest > nValueAboveNormal &&
+            // LLA:     nValueAboveNormal > nValueNormal &&
+            // LLA:     nValueNormal > nValueBelowNormal &&
+            // LLA:     nValueBelowNormal > nValueLowest &&
+            // LLA:     nValueLowest > 0
+            // LLA:) << // LLA:     "SetPriority";
 
 // LLA: windows let starve threads with lower priority
 #ifndef WNT
-                CPPUNIT_ASSERT_MESSAGE(
-                    "SetPriority",
-                    nValueHighest     > 0 &&
-                    nValueAboveNormal > 0 &&
-                    nValueNormal      > 0 &&
-                    nValueBelowNormal > 0 &&
-                    nValueLowest      > 0
-                    );
+            ASSERT_TRUE(nValueHighest     > 0 &&
+                nValueAboveNormal > 0 &&
+                nValueNormal      > 0 &&
+                nValueBelowNormal > 0 &&
+                nValueLowest      > 0) << "SetPriority";
 #endif
-            }
-
-        void setPriority_004()
-            {
-                // initial 5 threads with different priorities
-                // OAddThread *pHighestThread = new OAddThread();
-                OAddThread *pAboveNormalThread = new OAddThread();
-                OAddThread *pNormalThread = new OAddThread();
-                OAddThread *pBelowNormalThread = new OAddThread();
-                OAddThread *pLowestThread = new OAddThread();
-
-                //Create them and start running at the same time
-                // pHighestThread->createSuspended();
-                // pHighestThread->setPriority(osl_Thread_PriorityHighest);
-
-                pAboveNormalThread->createSuspended();
-                pAboveNormalThread->setPriority(osl_Thread_PriorityAboveNormal);
-
-                pNormalThread->createSuspended();
-                pNormalThread->setPriority(osl_Thread_PriorityNormal);
-
-                pBelowNormalThread->createSuspended();
-                pBelowNormalThread->setPriority(osl_Thread_PriorityBelowNormal);
-
-                pLowestThread->createSuspended();
-                pLowestThread->setPriority(osl_Thread_PriorityLowest);
-
-                // pHighestThread->resume();
-                pAboveNormalThread->resume();
-                pNormalThread->resume();
-                pBelowNormalThread->resume();
-                pLowestThread->resume();
-
-                ThreadHelper::thread_sleep_tenth_sec(5);
-
-                // pHighestThread->suspend();
-                pAboveNormalThread->suspend();
-                pNormalThread->suspend();
-                pBelowNormalThread->suspend();
-                pLowestThread->suspend();
-
-                // termAndJoinThread(pHighestThread);
-                termAndJoinThread(pAboveNormalThread);
-                termAndJoinThread(pNormalThread);
-                termAndJoinThread(pBelowNormalThread);
-                termAndJoinThread(pLowestThread);
-
-                // sal_Int32 nValueHighest  = 0;
-                // nValueHighest =  pHighestThread->getValue();
-
-                sal_Int32 nValueAboveNormal = 0;
-                nValueAboveNormal = pAboveNormalThread->getValue();
-
-                sal_Int32 nValueNormal = 0;
-                nValueNormal = pNormalThread->getValue();
-
-                sal_Int32 nValueBelowNormal = 0;
-                nValueBelowNormal = pBelowNormalThread->getValue();
-
-                sal_Int32 nValueLowest = 0;
-                nValueLowest = pLowestThread->getValue();
+        }
 
-                t_print("After 5 tenth seconds\n");
-                // t_print("nValue in Highest Prio Thread  is     %d\n",nValueHighest);
-                t_print("nValue in AboveNormal Prio Thread is %d\n",nValueAboveNormal);
-                t_print("nValue in Normal Prio Thread is      %d\n",nValueNormal);
-                t_print("nValue in BelowNormal Prio Thread is %d\n",nValueBelowNormal);
-                t_print("nValue in Lowest Prio Thread is      %d\n",nValueLowest);
-
-                // delete pHighestThread;
-                delete pAboveNormalThread;
-                delete pNormalThread;
-                delete pBelowNormalThread;
-                delete pLowestThread;
-
-                // LLA: this is not a save test, so we only check if all values not zero
-                // LLA: CPPUNIT_ASSERT_MESSAGE(
-                // LLA:     "SetPriority",
-                // LLA:     nValueHighest > nValueAboveNormal &&
-                // LLA:     nValueAboveNormal > nValueNormal &&
-                // LLA:     nValueNormal > nValueBelowNormal &&
-                // LLA:     nValueBelowNormal > nValueLowest &&
-                // LLA:     nValueLowest > 0
-                // LLA:     );
+    TEST_F(setPriority, setPriority_004)
+        {
+            // initial 5 threads with different priorities
+            // OAddThread *pHighestThread = new OAddThread();
+            OAddThread *pAboveNormalThread = new OAddThread();
+            OAddThread *pNormalThread = new OAddThread();
+            OAddThread *pBelowNormalThread = new OAddThread();
+            OAddThread *pLowestThread = new OAddThread();
+
+            //Create them and start running at the same time
+            // pHighestThread->createSuspended();
+            // pHighestThread->setPriority(osl_Thread_PriorityHighest);
+
+            pAboveNormalThread->createSuspended();
+            pAboveNormalThread->setPriority(osl_Thread_PriorityAboveNormal);
+
+            pNormalThread->createSuspended();
+            pNormalThread->setPriority(osl_Thread_PriorityNormal);
+
+            pBelowNormalThread->createSuspended();
+            pBelowNormalThread->setPriority(osl_Thread_PriorityBelowNormal);
+
+            pLowestThread->createSuspended();
+            pLowestThread->setPriority(osl_Thread_PriorityLowest);
+
+            // pHighestThread->resume();
+            pAboveNormalThread->resume();
+            pNormalThread->resume();
+            pBelowNormalThread->resume();
+            pLowestThread->resume();
+
+            ThreadHelper::thread_sleep_tenth_sec(5);
+
+            // pHighestThread->suspend();
+            pAboveNormalThread->suspend();
+            pNormalThread->suspend();
+            pBelowNormalThread->suspend();
+            pLowestThread->suspend();
+
+            // termAndJoinThread(pHighestThread);
+            termAndJoinThread(pAboveNormalThread);
+            termAndJoinThread(pNormalThread);
+            termAndJoinThread(pBelowNormalThread);
+            termAndJoinThread(pLowestThread);
+
+            // sal_Int32 nValueHighest  = 0;
+            // nValueHighest =  pHighestThread->getValue();
+
+            sal_Int32 nValueAboveNormal = 0;
+            nValueAboveNormal = pAboveNormalThread->getValue();
+
+            sal_Int32 nValueNormal = 0;
+            nValueNormal = pNormalThread->getValue();
+
+            sal_Int32 nValueBelowNormal = 0;
+            nValueBelowNormal = pBelowNormalThread->getValue();
+
+            sal_Int32 nValueLowest = 0;
+            nValueLowest = pLowestThread->getValue();
+
+            printf("After 5 tenth seconds\n");
+            // printf("nValue in Highest Prio Thread  is     %d\n",nValueHighest);
+            printf("nValue in AboveNormal Prio Thread is %d\n",nValueAboveNormal);
+            printf("nValue in Normal Prio Thread is      %d\n",nValueNormal);
+            printf("nValue in BelowNormal Prio Thread is %d\n",nValueBelowNormal);
+            printf("nValue in Lowest Prio Thread is      %d\n",nValueLowest);
+
+            // delete pHighestThread;
+            delete pAboveNormalThread;
+            delete pNormalThread;
+            delete pBelowNormalThread;
+            delete pLowestThread;
+
+            // LLA: this is not a save test, so we only check if all values not zero
+            // LLA: ASSERT_TRUE(// LLA:     nValueHighest > nValueAboveNormal &&
+            // LLA:     nValueAboveNormal > nValueNormal &&
+            // LLA:     nValueNormal > nValueBelowNormal &&
+            // LLA:     nValueBelowNormal > nValueLowest &&
+            // LLA:     nValueLowest > 0
+            // LLA:) << // LLA:     "SetPriority";
 
 // LLA: windows let starve threads with lower priority
 #ifndef WNT
-                CPPUNIT_ASSERT_MESSAGE(
-                    "SetPriority",
-                    /* nValueHighest     > 0 &&  */
-                    nValueAboveNormal > 0 &&
-                    nValueNormal      > 0 &&
-                    nValueBelowNormal > 0 &&
-                    nValueLowest      > 0
-                    );
+            ASSERT_TRUE(/* nValueHighest     > 0 &&  */
+                nValueAboveNormal > 0 &&
+                nValueNormal      > 0 &&
+                nValueBelowNormal > 0 &&
+                nValueLowest      > 0) << "SetPriority";
 #endif
-            }
-        void setPriority_005()
-            {
-                // initial 5 threads with different priorities
-                // OAddThread *pHighestThread = new OAddThread();
-                // OAddThread *pAboveNormalThread = new OAddThread();
-                OAddThread *pNormalThread = new OAddThread();
-                OAddThread *pBelowNormalThread = new OAddThread();
-                OAddThread *pLowestThread = new OAddThread();
-
-                //Create them and start running at the same time
-                // pHighestThread->createSuspended();
-                // pHighestThread->setPriority(osl_Thread_PriorityHighest);
-
-                // pAboveNormalThread->createSuspended();
-                // pAboveNormalThread->setPriority(osl_Thread_PriorityAboveNormal);
-
-                pNormalThread->createSuspended();
-                pNormalThread->setPriority(osl_Thread_PriorityNormal);
-
-                pBelowNormalThread->createSuspended();
-                pBelowNormalThread->setPriority(osl_Thread_PriorityBelowNormal);
-
-                pLowestThread->createSuspended();
-                pLowestThread->setPriority(osl_Thread_PriorityLowest);
-
-                // pHighestThread->resume();
-                // pAboveNormalThread->resume();
-                pNormalThread->resume();
-                pBelowNormalThread->resume();
-                pLowestThread->resume();
-
-                ThreadHelper::thread_sleep_tenth_sec(5);
-
-                // pHighestThread->suspend();
-                // pAboveNormalThread->suspend();
-                pNormalThread->suspend();
-                pBelowNormalThread->suspend();
-                pLowestThread->suspend();
-
-                // termAndJoinThread(pHighestThread);
-                // termAndJoinThread(pAboveNormalThread);
-                termAndJoinThread(pNormalThread);
-                termAndJoinThread(pBelowNormalThread);
-                termAndJoinThread(pLowestThread);
-
-                // sal_Int32 nValueHighest  = 0;
-                // nValueHighest =  pHighestThread->getValue();
-
-                // sal_Int32 nValueAboveNormal = 0;
-                // nValueAboveNormal = pAboveNormalThread->getValue();
-
-                sal_Int32 nValueNormal = 0;
-                nValueNormal = pNormalThread->getValue();
-
-                sal_Int32 nValueBelowNormal = 0;
-                nValueBelowNormal = pBelowNormalThread->getValue();
-
-                sal_Int32 nValueLowest = 0;
-                nValueLowest = pLowestThread->getValue();
-
-                t_print("After 5 tenth seconds\n");
-                // t_print("nValue in Highest Prio Thread  is     %d\n",nValueHighest);
-                // t_print("nValue in AboveNormal  Prio Thread is %d\n",nValueAboveNormal);
-                t_print("nValue in Normal Prio Thread is      %d\n",nValueNormal);
-                t_print("nValue in BelowNormal Prio Thread is %d\n",nValueBelowNormal);
-                t_print("nValue in Lowest Prio Thread is      %d\n",nValueLowest);
-
-                // delete pHighestThread;
-                // delete pAboveNormalThread;
-                delete pNormalThread;
-                delete pBelowNormalThread;
-                delete pLowestThread;
-
-                // LLA: this is not a save test, so we only check if all values not zero
-                // LLA: CPPUNIT_ASSERT_MESSAGE(
-                // LLA:     "SetPriority",
-                // LLA:     nValueHighest > nValueAboveNormal &&
-                // LLA:     nValueAboveNormal > nValueNormal &&
-                // LLA:     nValueNormal > nValueBelowNormal &&
-                // LLA:     nValueBelowNormal > nValueLowest &&
-                // LLA:     nValueLowest > 0
-                // LLA:     );
+        }
+    TEST_F(setPriority, setPriority_005)
+        {
+            // initial 5 threads with different priorities
+            // OAddThread *pHighestThread = new OAddThread();
+            // OAddThread *pAboveNormalThread = new OAddThread();
+            OAddThread *pNormalThread = new OAddThread();
+            OAddThread *pBelowNormalThread = new OAddThread();
+            OAddThread *pLowestThread = new OAddThread();
+
+            //Create them and start running at the same time
+            // pHighestThread->createSuspended();
+            // pHighestThread->setPriority(osl_Thread_PriorityHighest);
+
+            // pAboveNormalThread->createSuspended();
+            // pAboveNormalThread->setPriority(osl_Thread_PriorityAboveNormal);
+
+            pNormalThread->createSuspended();
+            pNormalThread->setPriority(osl_Thread_PriorityNormal);
+
+            pBelowNormalThread->createSuspended();
+            pBelowNormalThread->setPriority(osl_Thread_PriorityBelowNormal);
+
+            pLowestThread->createSuspended();
+            pLowestThread->setPriority(osl_Thread_PriorityLowest);
+
+            // pHighestThread->resume();
+            // pAboveNormalThread->resume();
+            pNormalThread->resume();
+            pBelowNormalThread->resume();
+            pLowestThread->resume();
+
+            ThreadHelper::thread_sleep_tenth_sec(5);
+
+            // pHighestThread->suspend();
+            // pAboveNormalThread->suspend();
+            pNormalThread->suspend();
+            pBelowNormalThread->suspend();
+            pLowestThread->suspend();
+
+            // termAndJoinThread(pHighestThread);
+            // termAndJoinThread(pAboveNormalThread);
+            termAndJoinThread(pNormalThread);
+            termAndJoinThread(pBelowNormalThread);
+            termAndJoinThread(pLowestThread);
+
+            // sal_Int32 nValueHighest  = 0;
+            // nValueHighest =  pHighestThread->getValue();
+
+            // sal_Int32 nValueAboveNormal = 0;
+            // nValueAboveNormal = pAboveNormalThread->getValue();
+
+            sal_Int32 nValueNormal = 0;
+            nValueNormal = pNormalThread->getValue();
+
+            sal_Int32 nValueBelowNormal = 0;
+            nValueBelowNormal = pBelowNormalThread->getValue();
+
+            sal_Int32 nValueLowest = 0;
+            nValueLowest = pLowestThread->getValue();
+
+            printf("After 5 tenth seconds\n");
+            // printf("nValue in Highest Prio Thread  is     %d\n",nValueHighest);
+            // printf("nValue in AboveNormal  Prio Thread is %d\n",nValueAboveNormal);
+            printf("nValue in Normal Prio Thread is      %d\n",nValueNormal);
+            printf("nValue in BelowNormal Prio Thread is %d\n",nValueBelowNormal);
+            printf("nValue in Lowest Prio Thread is      %d\n",nValueLowest);
+
+            // delete pHighestThread;
+            // delete pAboveNormalThread;
+            delete pNormalThread;
+            delete pBelowNormalThread;
+            delete pLowestThread;
+
+            // LLA: this is not a save test, so we only check if all values not zero
+            // LLA: ASSERT_TRUE(// LLA:     nValueHighest > nValueAboveNormal &&
+            // LLA:     nValueAboveNormal > nValueNormal &&
+            // LLA:     nValueNormal > nValueBelowNormal &&
+            // LLA:     nValueBelowNormal > nValueLowest &&
+            // LLA:     nValueLowest > 0
+            // LLA:) << // LLA:     "SetPriority";
 
 // LLA: windows let starve threads with lower priority
 #ifndef WNT
-                CPPUNIT_ASSERT_MESSAGE(
-                    "SetPriority",
-                    /* nValueHighest     > 0 &&  */
-                    /* nValueAboveNormal > 0 &&  */
-                    nValueNormal      > 0 &&
-                    nValueBelowNormal > 0 &&
-                    nValueLowest      > 0
-                    );
+            ASSERT_TRUE(/* nValueHighest     > 0 &&  */
+                /* nValueAboveNormal > 0 &&  */
+                nValueNormal      > 0 &&
+                nValueBelowNormal > 0 &&
+                nValueLowest      > 0) << "SetPriority";
 #endif
-            }
-
+        }
+#endif // SOLARIS
 
-        CPPUNIT_TEST_SUITE(setPriority);
-#ifndef SOLARIS
-        CPPUNIT_TEST(setPriority_002);
-        CPPUNIT_TEST(setPriority_003);
-        CPPUNIT_TEST(setPriority_004);
-        CPPUNIT_TEST(setPriority_005);
-#endif
-        CPPUNIT_TEST(setPriority_001_1);
-        CPPUNIT_TEST(setPriority_001_2);
-        CPPUNIT_TEST(setPriority_001_3);
-        CPPUNIT_TEST(setPriority_001_4);
-        CPPUNIT_TEST(setPriority_001_5);
-        CPPUNIT_TEST_SUITE_END();
-    }; // class setPriority
 
     /** Test of the osl::Thread::getPriority method
     */
-    class getPriority : public CppUnit::TestFixture
+    class getPriority : public ::testing::Test
     {
     public:
         // initialise your test code values here.
-        void setUp()
+        void SetUp()
             {
             }
 
-        void tearDown()
+        void TearDown()
             {
             }
+    }; // class getPriority
 
-        // insert your test code here.
-        void getPriority_001()
-            {
-                OAddThread *pHighestThread = new OAddThread();
+    TEST_F(getPriority, getPriority_001)
+        {
+            OAddThread *pHighestThread = new OAddThread();
 
-                //Create them and start running at the same time
-                pHighestThread->create();
-                pHighestThread->setPriority(osl_Thread_PriorityHighest);
+            //Create them and start running at the same time
+            pHighestThread->create();
+            pHighestThread->setPriority(osl_Thread_PriorityHighest);
 
-                oslThreadPriority aPriority = pHighestThread->getPriority();
-                termAndJoinThread(pHighestThread);
-                delete pHighestThread;
+            oslThreadPriority aPriority = pHighestThread->getPriority();
+            termAndJoinThread(pHighestThread);
+            delete pHighestThread;
 
-                ThreadHelper::outputPriority(aPriority);
+            ThreadHelper::outputPriority(aPriority);
 
 // LLA: Priority settings may not work within some OS versions.
 #if ( defined WNT ) || ( defined SOLARIS )
-                CPPUNIT_ASSERT_MESSAGE(
-                    "getPriority",
-                    aPriority == osl_Thread_PriorityHighest
-                    );
+            ASSERT_TRUE(aPriority == osl_Thread_PriorityHighest) << "getPriority";
 #else
 // LLA: Linux
 // NO_PTHREAD_PRIORITY ???
-                CPPUNIT_ASSERT_MESSAGE(
-                    "getPriority",
-                    aPriority == osl_Thread_PriorityNormal
-                    );
+            ASSERT_TRUE(aPriority == osl_Thread_PriorityNormal) << "getPriority";
 #endif
-            }
-
-        void getPriority_002()
-            {
+        }
 
-            }
+    TEST_F(getPriority, getPriority_002)
+        {
 
-        CPPUNIT_TEST_SUITE(getPriority);
-        CPPUNIT_TEST(getPriority_001);
-        CPPUNIT_TEST(getPriority_002);
-        CPPUNIT_TEST_SUITE_END();
-    }; // class getPriority
+        }
 
 
-    class getIdentifier : public CppUnit::TestFixture
+    class getIdentifier : public ::testing::Test
     {
     public:
         // initialise your test code values here.
-        void setUp()
+        void SetUp()
             {
             }
 
-        void tearDown()
+        void TearDown()
             {
             }
+    }; // class getIdentifier
 
-        // insert your test code here.
-        void getIdentifier_001()
-            {
-
-            }
+    // insert your test code here.
+    TEST_F(getIdentifier, getIdentifier_001)
+        {
 
-        void getIdentifier_002()
-            {
+        }
 
-            }
+    TEST_F(getIdentifier, getIdentifier_002)
+        {
 
-        CPPUNIT_TEST_SUITE(getIdentifier);
-        CPPUNIT_TEST(getIdentifier_001);
-        CPPUNIT_TEST(getIdentifier_002);
-        CPPUNIT_TEST_SUITE_END();
-    }; // class getIdentifier
+        }
 
     /** Test of the osl::Thread::getCurrentIdentifier method
     */
-    class getCurrentIdentifier : public CppUnit::TestFixture
+    class getCurrentIdentifier : public ::testing::Test
     {
     public:
         // initialise your test code values here.
-        void setUp()
+        void SetUp()
             {
             }
 
-        void tearDown()
+        void TearDown()
             {
             }
+    }; // class getCurrentIdentifier
 
-        // insert your test code here.
-        void getCurrentIdentifier_001()
-            {
-                oslThreadIdentifier oId;
-                OCountThread* pCountThread = new OCountThread;
-                //OCountThread* pCountThread2 = new OCountThread;
-                pCountThread->create();
-                //pCountThread2->create();
-                pCountThread->setWait(3);
-                oId = Thread::getCurrentIdentifier();
-                oslThreadIdentifier oIdChild = pCountThread->getIdentifier();
-                //t_print("CurrentId is %ld, Child1 id is %ld, Child2 id is %ld\n",oId, oIdChild,pCountThread2->m_id );
-                termAndJoinThread(pCountThread);
-                delete pCountThread;
-                //termAndJoinThread(pCountThread2);
-                //delete pCountThread2;
+    // insert your test code here.
+    TEST_F(getCurrentIdentifier, getCurrentIdentifier_001)
+        {
+            oslThreadIdentifier oId;
+            OCountThread* pCountThread = new OCountThread;
+            //OCountThread* pCountThread2 = new OCountThread;
+            pCountThread->create();
+            //pCountThread2->create();
+            pCountThread->setWait(3);
+            oId = Thread::getCurrentIdentifier();
+            oslThreadIdentifier oIdChild = pCountThread->getIdentifier();
+            //printf("CurrentId is %ld, Child1 id is %ld, Child2 id is %ld\n",oId, oIdChild,pCountThread2->m_id );
+            termAndJoinThread(pCountThread);
+            delete pCountThread;
+            //termAndJoinThread(pCountThread2);
+            //delete pCountThread2;
 
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Get the identifier for the current active thread.",
-                    oId != oIdChild
-                    );
+            ASSERT_TRUE(oId != oIdChild) << "Get the identifier for the current active thread.";
 
-            }
+        }
 
-        void getCurrentIdentifier_002()
-            {
-            }
+    TEST_F(getCurrentIdentifier, getCurrentIdentifier_002)
+        {
+        }
 
-        CPPUNIT_TEST_SUITE(getCurrentIdentifier);
-        CPPUNIT_TEST(getCurrentIdentifier_001);
-        //CPPUNIT_TEST(getCurrentIdentifier_002);
-        CPPUNIT_TEST_SUITE_END();
-    }; // class getCurrentIdentifier
 
     /** Test of the osl::Thread::wait method
     */
-    class wait : public CppUnit::TestFixture
+    class wait : public ::testing::Test
     {
     public:
         // initialise your test code values here.
-        void setUp()
+        void SetUp()
             {
             }
 
-        void tearDown()
+        void TearDown()
             {
             }
+    }; // class wait
 
-        /** call wait in the run method
 
-            ALGORITHM:
-            tested thread wait nWaitSec seconds, main thread sleep (2) seconds,
-            then terminate the tested thread, due to the fact that the thread do a sleep(1) + wait(5)
-            it's finish after 6 seconds.
-        */
-        void wait_001()
-            {
-                OCountThread *aCountThread = new OCountThread();
-                sal_Int32 nWaitSec = 5;
-                aCountThread->setWait(nWaitSec);
-                // thread runs at least 5 seconds.
-                sal_Bool bRes = aCountThread->create();
-                CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
-
-                //record the time when the running begin
-                StopWatch aStopWatch;
-                aStopWatch.start();
-
-                // wait a little bit, to let the thread the time, to start
-                ThreadHelper::thread_sleep_tenth_sec( 4 );
-
-                // if wait works,
-                // this function returns, after 4 sec. later
-                termAndJoinThread(aCountThread);
-
-                // value should be one.
-                sal_Int32 nValue = aCountThread->getValue();
-
-                aStopWatch.stop();
-
-                // sal_uInt32 nSec  = aTimeVal_after.Seconds - aTimeVal_befor.Seconds;
-                double nTenthSec = aStopWatch.getTenthSec();
-                double nSec = aStopWatch.getSeconds();
-                delete aCountThread;
-                t_print("nTenthSec = %f \n", nTenthSec);
-                t_print("nSec = %f \n", nSec);
-                t_print("nValue = %d \n", nValue);
-
-                CPPUNIT_ASSERT_MESSAGE(
-                    "Wait: Blocks the calling thread for the given number of time.",
-                    nTenthSec >= 5 && nValue == 1
-                    );
+    /** call wait in the run method
 
-            }
+        ALGORITHM:
+        tested thread wait nWaitSec seconds, main thread sleep (2) seconds,
+        then terminate the tested thread, due to the fact that the thread do a sleep(1) + wait(5)
+        it's finish after 6 seconds.
+    */
+    TEST_F(wait, wait_001)
+        {
+            OCountThread *aCountThread = new OCountThread();
+            sal_Int32 nWaitSec = 5;
+            aCountThread->setWait(nWaitSec);
+            // thread runs at least 5 seconds.
+            sal_Bool bRes = aCountThread->create();
+            ASSERT_TRUE(bRes == sal_True) << "Can't start thread!";
+
+            //record the time when the running begin
+            StopWatch aStopWatch;
+            aStopWatch.start();
+
+            // wait a little bit, to let the thread the time, to start
+            ThreadHelper::thread_sleep_tenth_sec( 4 );
+
+            // if wait works,
+            // this function returns, after 4 sec. later
+            termAndJoinThread(aCountThread);
+
+            // value should be one.
+            sal_Int32 nValue = aCountThread->getValue();
+
+            aStopWatch.stop();
+
+            // sal_uInt32 nSec  = aTimeVal_after.Seconds - aTimeVal_befor.Seconds;
+            double nTenthSec = aStopWatch.getTenthSec();
+            double nSec = aStopWatch.getSeconds();
+            delete aCountThread;
+            printf("nTenthSec = %f \n", nTenthSec);
+            printf("nSec = %f \n", nSec);
+            printf("nValue = %d \n", nValue);
+
+            ASSERT_TRUE(nTenthSec >= 5 && nValue == 1) << "Wait: Blocks the calling thread for the given number of time.";
+
+        }
 // LLA: wait_001 does the same.
 // LLA:         /** wait then terminate the thread
 // LLA:
@@ -1812,7 +1676,7 @@ namespace osl_Thread
 // LLA:         wait nWaitSec seconds, and terminate when the wait does not finish
 // LLA:         Windows & UNX: thread terminates immediatlly
 // LLA:     */
-// LLA:     void wait_002()
+// LLA:     TEST_F(wait, wait_002)
 // LLA:     {
 // LLA:         OCountThread aThread;
 // LLA:
@@ -1820,7 +1684,7 @@ namespace osl_Thread
 // LLA:         aThread.setWait(nWaitSec);
 // LLA:
 // LLA:         sal_Bool bRes = aThread.create();
-// LLA:         CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
+// LLA:         ASSERT_TRUE(bRes == sal_True) << "Can't start thread!";
 // LLA:
 // LLA:         StopWatch aStopWatch;
 // LLA:         // TimeValue aTimeVal_befor;
@@ -1835,184 +1699,135 @@ namespace osl_Thread
 // LLA:         aStopWatch.stop();
 // LLA:         // sal_Int32 nSec = aTimeVal_after.Seconds  - aTimeVal_befor.Seconds;
 // LLA:         double nSec = aStopWatch.getSeconds();
-// LLA:         t_print("sec=%f\n", nSec);
-// LLA:         t_print("nValue = %d\n", nValue);
+// LLA:         printf("sec=%f\n", nSec);
+// LLA:         printf("nValue = %d\n", nValue);
 // LLA:
-// LLA:         CPPUNIT_ASSERT_MESSAGE(
-// LLA:             "Wait: Blocks the calling thread for the given number of time.",
-// LLA:             nSec < 1 && nValue == 0
-// LLA:         );
+// LLA:         ASSERT_TRUE(// LLA:             nSec < 1 && nValue == 0
+// LLA:) << // LLA:             "Wait: Blocks the calling thread for the given number of time.";
 // LLA:     }
-
-        CPPUNIT_TEST_SUITE(wait);
-        CPPUNIT_TEST(wait_001);
-        // LLA: CPPUNIT_TEST(wait_002);
-        CPPUNIT_TEST_SUITE_END();
-    }; // class wait
-
     /** osl::Thread::yield method: can not design good test scenario to test up to now
     */
-    class yield : public CppUnit::TestFixture
+    class yield : public ::testing::Test
     {
     public:
-        void setUp()
-            {
-            }
-
-        void tearDown()
+        void SetUp()
             {
             }
 
-        // insert your test code here.
-        void yield_001()
+        void TearDown()
             {
             }
-
-
-        CPPUNIT_TEST_SUITE(yield);
-        CPPUNIT_TEST(yield_001);
-        CPPUNIT_TEST_SUITE_END();
     }; // class yield
 
+    // insert your test code here.
+    TEST_F(yield, yield_001)
+        {
+        }
+
     /** Test of the osl::Thread::schedule method
     */
-    class schedule : public CppUnit::TestFixture
+    class schedule : public ::testing::Test
     {
     public:
         // initialise your test code values here.
-        void setUp()
+        void SetUp()
             {
             }
 
-        void tearDown()
+        void TearDown()
             {
             }
+    }; // class schedule
 
-        /** The requested thread will get terminate the next time schedule() is called.
-
-            Note: on UNX, if call suspend thread is not the to be suspended thread, the to be
-            suspended   thread will get suspended the next time schedule() is called,
-            while on w32, it's nothing with schedule.
+    /** The requested thread will get terminate the next time schedule() is called.
 
-            check if suspend and terminate work well via schedule
-        */
-        void schedule_001()
-            {
-                OAddThread* aThread = new OAddThread();
-                sal_Bool bRes = aThread->create();
-                CPPUNIT_ASSERT_MESSAGE ( "Can't start thread!", bRes == sal_True );
+        Note: on UNX, if call suspend thread is not the to be suspended thread, the to be
+        suspended   thread will get suspended the next time schedule() is called,
+        while on w32, it's nothing with schedule.
 
-                ThreadHelper::thread_sleep_tenth_sec(2);
-                aThread->suspend();
-                ThreadHelper::thread_sleep_tenth_sec(1);
-                sal_Int32 nValue = aThread->getValue();

[... 597 lines stripped ...]