1*87d2adbcSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*87d2adbcSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*87d2adbcSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*87d2adbcSAndrew Rist * distributed with this work for additional information 6*87d2adbcSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*87d2adbcSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*87d2adbcSAndrew Rist * "License"); you may not use this file except in compliance 9*87d2adbcSAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*87d2adbcSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*87d2adbcSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*87d2adbcSAndrew Rist * software distributed under the License is distributed on an 15*87d2adbcSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*87d2adbcSAndrew Rist * KIND, either express or implied. See the License for the 17*87d2adbcSAndrew Rist * specific language governing permissions and limitations 18*87d2adbcSAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*87d2adbcSAndrew Rist *************************************************************/ 21*87d2adbcSAndrew Rist 22*87d2adbcSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir 25cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 26cdf0e10cSrcweir #include "precompiled_sal.hxx" 27cdf0e10cSrcweir // This is a test of helperfunctions 28cdf0e10cSrcweir 29cdf0e10cSrcweir #include <osl/time.h> 30cdf0e10cSrcweir #include <osl/thread.hxx> 31cdf0e10cSrcweir 32cdf0e10cSrcweir #include "stringhelper.hxx" 33cdf0e10cSrcweir 34cdf0e10cSrcweir #include <testshl/simpleheader.hxx> 35cdf0e10cSrcweir 36cdf0e10cSrcweir // void isJaBloed() 37cdf0e10cSrcweir // { 38cdf0e10cSrcweir // t_print("Ist ja echt bloed.\n"); 39cdf0e10cSrcweir // } 40cdf0e10cSrcweir 41cdf0e10cSrcweir inline sal_Int64 t_abs64(sal_Int64 _nValue) 42cdf0e10cSrcweir { 43cdf0e10cSrcweir // std::abs() seems to have some ambiguity problems (so-texas) 44cdf0e10cSrcweir // return abs(_nValue); 45cdf0e10cSrcweir t_print("t_abs64(%ld)\n", _nValue); 46cdf0e10cSrcweir // CPPUNIT_ASSERT(_nValue < 2147483647); 47cdf0e10cSrcweir 48cdf0e10cSrcweir if (_nValue < 0) 49cdf0e10cSrcweir { 50cdf0e10cSrcweir _nValue = -_nValue; 51cdf0e10cSrcweir } 52cdf0e10cSrcweir return _nValue; 53cdf0e10cSrcweir } 54cdf0e10cSrcweir 55cdf0e10cSrcweir void t_print64(sal_Int64 n) 56cdf0e10cSrcweir { 57cdf0e10cSrcweir if (n < 0) 58cdf0e10cSrcweir { 59cdf0e10cSrcweir // negativ 60cdf0e10cSrcweir printf("-"); 61cdf0e10cSrcweir n = -n; 62cdf0e10cSrcweir } 63cdf0e10cSrcweir if (n > 2147483647) 64cdf0e10cSrcweir { 65cdf0e10cSrcweir sal_Int64 n64 = n >> 32; 66cdf0e10cSrcweir sal_uInt32 n32 = n64 & 0xffffffff; 67cdf0e10cSrcweir printf("0x%.8x ", n32); 68cdf0e10cSrcweir n32 = n & 0xffffffff; 69cdf0e10cSrcweir printf("%.8x (64bit)", n32); 70cdf0e10cSrcweir } 71cdf0e10cSrcweir else 72cdf0e10cSrcweir { 73cdf0e10cSrcweir sal_uInt32 n32 = n & 0xffffffff; 74cdf0e10cSrcweir printf("0x%.8x (32bit) ", n32); 75cdf0e10cSrcweir } 76cdf0e10cSrcweir printf("\n"); 77cdf0e10cSrcweir } 78cdf0e10cSrcweir 79cdf0e10cSrcweir // ----------------------------------------------------------------------------- 80cdf0e10cSrcweir namespace testOfHelperFunctions 81cdf0e10cSrcweir { 82cdf0e10cSrcweir class test_t_abs64 : public CppUnit::TestFixture 83cdf0e10cSrcweir { 84cdf0e10cSrcweir public: 85cdf0e10cSrcweir void test0(); 86cdf0e10cSrcweir void test1_0(); 87cdf0e10cSrcweir void test1(); 88cdf0e10cSrcweir void test1_1(); 89cdf0e10cSrcweir void test2(); 90cdf0e10cSrcweir void test3(); 91cdf0e10cSrcweir void test4(); 92cdf0e10cSrcweir 93cdf0e10cSrcweir CPPUNIT_TEST_SUITE( test_t_abs64 ); 94cdf0e10cSrcweir CPPUNIT_TEST( test0 ); 95cdf0e10cSrcweir CPPUNIT_TEST( test1_0 ); 96cdf0e10cSrcweir CPPUNIT_TEST( test1 ); 97cdf0e10cSrcweir CPPUNIT_TEST( test1_1 ); 98cdf0e10cSrcweir CPPUNIT_TEST( test2 ); 99cdf0e10cSrcweir CPPUNIT_TEST( test3 ); 100cdf0e10cSrcweir CPPUNIT_TEST( test4 ); 101cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 102cdf0e10cSrcweir }; 103cdf0e10cSrcweir 104cdf0e10cSrcweir void test_t_abs64::test0() 105cdf0e10cSrcweir { 106cdf0e10cSrcweir // this values has an overrun! 107cdf0e10cSrcweir sal_Int32 n32 = 2147483648; 108cdf0e10cSrcweir t_print("n32 should be -2^31 is: %d\n", n32); 109cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("n32!=2147483648", n32 == -2147483648 ); 110cdf0e10cSrcweir } 111cdf0e10cSrcweir 112cdf0e10cSrcweir 113cdf0e10cSrcweir void test_t_abs64::test1_0() 114cdf0e10cSrcweir { 115cdf0e10cSrcweir sal_Int64 n; 116cdf0e10cSrcweir n = 1073741824; 117cdf0e10cSrcweir n <<= 9; 118cdf0e10cSrcweir t_print("Value of n is "); 119cdf0e10cSrcweir t_print64(n); 120cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("n=2^30 << 9", t_abs64(n) > 0 ); 121cdf0e10cSrcweir } 122cdf0e10cSrcweir 123cdf0e10cSrcweir void test_t_abs64::test1() 124cdf0e10cSrcweir { 125cdf0e10cSrcweir sal_Int64 n; 126cdf0e10cSrcweir n = 2147483648 << 8; 127cdf0e10cSrcweir t_print("Value of n is "); 128cdf0e10cSrcweir t_print64(n); 129cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("n=2^31 << 8", t_abs64(n) > 0 ); 130cdf0e10cSrcweir } 131cdf0e10cSrcweir void test_t_abs64::test1_1() 132cdf0e10cSrcweir { 133cdf0e10cSrcweir sal_Int64 n; 134cdf0e10cSrcweir n = sal_Int64(2147483648) << 8; 135cdf0e10cSrcweir t_print("Value of n is "); 136cdf0e10cSrcweir t_print64(n); 137cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("n=2^31 << 8", t_abs64(n) > 0 ); 138cdf0e10cSrcweir } 139cdf0e10cSrcweir 140cdf0e10cSrcweir void test_t_abs64::test2() 141cdf0e10cSrcweir { 142cdf0e10cSrcweir sal_Int64 n; 143cdf0e10cSrcweir n = 2147483648 << 1; 144cdf0e10cSrcweir t_print("Value of n is "); 145cdf0e10cSrcweir t_print64(n); 146cdf0e10cSrcweir 147cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("(2147483648 << 1) is != 0", n != 0 ); 148cdf0e10cSrcweir 149cdf0e10cSrcweir sal_Int64 n2 = 2147483648 * 2; 150cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("2147483648 * 2 is != 0", n2 != 0 ); 151cdf0e10cSrcweir 152cdf0e10cSrcweir sal_Int64 n3 = 4294967296LL; 153cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("4294967296 is != 0", n3 != 0 ); 154cdf0e10cSrcweir 155cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("n=2^31 << 1, n2 = 2^31 * 2, n3 = 2^32, all should equal!", n == n2 && n == n3 ); 156cdf0e10cSrcweir } 157cdf0e10cSrcweir 158cdf0e10cSrcweir 159cdf0e10cSrcweir void test_t_abs64::test3() 160cdf0e10cSrcweir { 161cdf0e10cSrcweir sal_Int64 n = 0; 162cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("n=0", t_abs64(n) == 0 ); 163cdf0e10cSrcweir 164cdf0e10cSrcweir n = 1; 165cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("n=1", t_abs64(n) > 0 ); 166cdf0e10cSrcweir 167cdf0e10cSrcweir n = 2147483647; 168cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("n=2^31 - 1", t_abs64(n) > 0 ); 169cdf0e10cSrcweir 170cdf0e10cSrcweir n = 2147483648; 171cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("n=2^31", t_abs64(n) > 0 ); 172cdf0e10cSrcweir } 173cdf0e10cSrcweir 174cdf0e10cSrcweir void test_t_abs64::test4() 175cdf0e10cSrcweir { 176cdf0e10cSrcweir sal_Int64 n = 0; 177cdf0e10cSrcweir n = -1; 178cdf0e10cSrcweir t_print("Value of n is -1 : "); 179cdf0e10cSrcweir t_print64(n); 180cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("n=-1", t_abs64(n) > 0 ); 181cdf0e10cSrcweir 182cdf0e10cSrcweir n = -2147483648; 183cdf0e10cSrcweir t_print("Value of n is -2^31 : "); 184cdf0e10cSrcweir t_print64(n); 185cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("n=-2^31", t_abs64(n) > 0 ); 186cdf0e10cSrcweir 187cdf0e10cSrcweir n = -8589934592LL; 188cdf0e10cSrcweir t_print("Value of n is -2^33 : "); 189cdf0e10cSrcweir t_print64(n); 190cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("n=-2^33", t_abs64(n) > 0 ); 191cdf0e10cSrcweir } 192cdf0e10cSrcweir 193cdf0e10cSrcweir 194cdf0e10cSrcweir // ----------------------------------------------------------------------------- 195cdf0e10cSrcweir class test_t_print : public CppUnit::TestFixture 196cdf0e10cSrcweir { 197cdf0e10cSrcweir public: 198cdf0e10cSrcweir void t_print_001(); 199cdf0e10cSrcweir 200cdf0e10cSrcweir CPPUNIT_TEST_SUITE( test_t_print ); 201cdf0e10cSrcweir CPPUNIT_TEST( t_print_001 ); 202cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 203cdf0e10cSrcweir }; 204cdf0e10cSrcweir 205cdf0e10cSrcweir void test_t_print::t_print_001( ) 206cdf0e10cSrcweir { 207cdf0e10cSrcweir t_print("This is only a test of some helper functions\n"); 208cdf0e10cSrcweir sal_Int32 nValue = 12345; 209cdf0e10cSrcweir t_print("a value %d (should be 12345)\n", nValue); 210cdf0e10cSrcweir 211cdf0e10cSrcweir rtl::OString sValue("foo bar"); 212cdf0e10cSrcweir t_print("a String '%s' (should be 'foo bar')\n", sValue.getStr()); 213cdf0e10cSrcweir 214cdf0e10cSrcweir rtl::OUString suValue(rtl::OUString::createFromAscii("a unicode string")); 215cdf0e10cSrcweir sValue <<= suValue; 216cdf0e10cSrcweir t_print("a String '%s'\n", sValue.getStr()); 217cdf0e10cSrcweir } 218cdf0e10cSrcweir 219cdf0e10cSrcweir 220cdf0e10cSrcweir class StopWatch 221cdf0e10cSrcweir { 222cdf0e10cSrcweir TimeValue m_aStartTime; 223cdf0e10cSrcweir TimeValue m_aEndTime; 224cdf0e10cSrcweir bool m_bStarted; 225cdf0e10cSrcweir public: 226cdf0e10cSrcweir StopWatch() 227cdf0e10cSrcweir :m_bStarted(false) 228cdf0e10cSrcweir { 229cdf0e10cSrcweir } 230cdf0e10cSrcweir 231cdf0e10cSrcweir void start() 232cdf0e10cSrcweir { 233cdf0e10cSrcweir m_bStarted = true; 234cdf0e10cSrcweir osl_getSystemTime(&m_aStartTime); 235cdf0e10cSrcweir } 236cdf0e10cSrcweir void stop() 237cdf0e10cSrcweir { 238cdf0e10cSrcweir osl_getSystemTime(&m_aEndTime); 239cdf0e10cSrcweir OSL_ENSURE(m_bStarted, "Not Started."); 240cdf0e10cSrcweir m_bStarted = false; 241cdf0e10cSrcweir } 242cdf0e10cSrcweir rtl::OString makeTwoDigits(rtl::OString const& _sStr) 243cdf0e10cSrcweir { 244cdf0e10cSrcweir rtl::OString sBack; 245cdf0e10cSrcweir if (_sStr.getLength() == 0) 246cdf0e10cSrcweir { 247cdf0e10cSrcweir sBack = "00"; 248cdf0e10cSrcweir } 249cdf0e10cSrcweir else 250cdf0e10cSrcweir { 251cdf0e10cSrcweir if (_sStr.getLength() == 1) 252cdf0e10cSrcweir { 253cdf0e10cSrcweir sBack = "0" + _sStr; 254cdf0e10cSrcweir } 255cdf0e10cSrcweir else 256cdf0e10cSrcweir { 257cdf0e10cSrcweir sBack = _sStr; 258cdf0e10cSrcweir } 259cdf0e10cSrcweir } 260cdf0e10cSrcweir return sBack; 261cdf0e10cSrcweir } 262cdf0e10cSrcweir rtl::OString makeThreeDigits(rtl::OString const& _sStr) 263cdf0e10cSrcweir { 264cdf0e10cSrcweir rtl::OString sBack; 265cdf0e10cSrcweir if (_sStr.getLength() == 0) 266cdf0e10cSrcweir { 267cdf0e10cSrcweir sBack = "000"; 268cdf0e10cSrcweir } 269cdf0e10cSrcweir else 270cdf0e10cSrcweir { 271cdf0e10cSrcweir if (_sStr.getLength() == 1) 272cdf0e10cSrcweir { 273cdf0e10cSrcweir sBack = "00" + _sStr; 274cdf0e10cSrcweir } 275cdf0e10cSrcweir else 276cdf0e10cSrcweir { 277cdf0e10cSrcweir if (_sStr.getLength() == 2) 278cdf0e10cSrcweir { 279cdf0e10cSrcweir sBack = "0" + _sStr; 280cdf0e10cSrcweir } 281cdf0e10cSrcweir else 282cdf0e10cSrcweir { 283cdf0e10cSrcweir sBack = _sStr; 284cdf0e10cSrcweir } 285cdf0e10cSrcweir } 286cdf0e10cSrcweir } 287cdf0e10cSrcweir return sBack; 288cdf0e10cSrcweir } 289cdf0e10cSrcweir 290cdf0e10cSrcweir void showTime(const rtl::OString & aWhatStr) 291cdf0e10cSrcweir { 292cdf0e10cSrcweir OSL_ENSURE(!m_bStarted, "Not Stopped."); 293cdf0e10cSrcweir 294cdf0e10cSrcweir sal_Int32 nSeconds = m_aEndTime.Seconds - m_aStartTime.Seconds; 295cdf0e10cSrcweir sal_Int32 nNanoSec = sal_Int32(m_aEndTime.Nanosec) - sal_Int32(m_aStartTime.Nanosec); 296cdf0e10cSrcweir // printf("Seconds: %d Nanosec: %d ", nSeconds, nNanoSec); 297cdf0e10cSrcweir if (nNanoSec < 0) 298cdf0e10cSrcweir { 299cdf0e10cSrcweir nNanoSec = 1000000000 + nNanoSec; 300cdf0e10cSrcweir nSeconds--; 301cdf0e10cSrcweir // printf(" NEW Seconds: %d Nanosec: %d\n", nSeconds, nNanoSec); 302cdf0e10cSrcweir } 303cdf0e10cSrcweir 304cdf0e10cSrcweir rtl::OString aStr = "Time for "; 305cdf0e10cSrcweir aStr += aWhatStr; 306cdf0e10cSrcweir aStr += " "; 307cdf0e10cSrcweir aStr += makeTwoDigits(rtl::OString::valueOf(nSeconds / 3600)); 308cdf0e10cSrcweir aStr += ":"; 309cdf0e10cSrcweir aStr += makeTwoDigits(rtl::OString::valueOf((nSeconds % 3600) / 60)); 310cdf0e10cSrcweir aStr += ":"; 311cdf0e10cSrcweir aStr += makeTwoDigits(rtl::OString::valueOf((nSeconds % 60))); 312cdf0e10cSrcweir aStr += ":"; 313cdf0e10cSrcweir aStr += makeThreeDigits(rtl::OString::valueOf((nNanoSec % 1000000000) / 1000000)); 314cdf0e10cSrcweir aStr += ":"; 315cdf0e10cSrcweir aStr += makeThreeDigits(rtl::OString::valueOf((nNanoSec % 1000000) / 1000)); 316cdf0e10cSrcweir aStr += ":"; 317cdf0e10cSrcweir aStr += makeThreeDigits(rtl::OString::valueOf((nNanoSec % 1000))); 318cdf0e10cSrcweir 319cdf0e10cSrcweir printf("%s\n", aStr.getStr()); 320cdf0e10cSrcweir // cout << aStr.getStr() << endl; 321cdf0e10cSrcweir } 322cdf0e10cSrcweir 323cdf0e10cSrcweir }; 324cdf0e10cSrcweir 325cdf0e10cSrcweir static sal_Bool isEqualTimeValue ( const TimeValue* time1, const TimeValue* time2) 326cdf0e10cSrcweir { 327cdf0e10cSrcweir if( time1->Seconds == time2->Seconds && 328cdf0e10cSrcweir time1->Nanosec == time2->Nanosec) 329cdf0e10cSrcweir return sal_True; 330cdf0e10cSrcweir else 331cdf0e10cSrcweir return sal_False; 332cdf0e10cSrcweir } 333cdf0e10cSrcweir 334cdf0e10cSrcweir static sal_Bool isGreaterTimeValue( const TimeValue* time1, const TimeValue* time2) 335cdf0e10cSrcweir { 336cdf0e10cSrcweir sal_Bool retval= sal_False; 337cdf0e10cSrcweir if ( time1->Seconds > time2->Seconds) 338cdf0e10cSrcweir retval= sal_True; 339cdf0e10cSrcweir else if ( time1->Seconds == time2->Seconds) 340cdf0e10cSrcweir { 341cdf0e10cSrcweir if( time1->Nanosec > time2->Nanosec) 342cdf0e10cSrcweir retval= sal_True; 343cdf0e10cSrcweir } 344cdf0e10cSrcweir return retval; 345cdf0e10cSrcweir } 346cdf0e10cSrcweir 347cdf0e10cSrcweir static sal_Bool isGreaterEqualTimeValue( const TimeValue* time1, const TimeValue* time2) 348cdf0e10cSrcweir { 349cdf0e10cSrcweir if( isEqualTimeValue( time1, time2) ) 350cdf0e10cSrcweir return sal_True; 351cdf0e10cSrcweir else if( isGreaterTimeValue( time1, time2)) 352cdf0e10cSrcweir return sal_True; 353cdf0e10cSrcweir else 354cdf0e10cSrcweir return sal_False; 355cdf0e10cSrcweir } 356cdf0e10cSrcweir 357cdf0e10cSrcweir bool isBTimeGreaterATime(TimeValue const& A, TimeValue const& B) 358cdf0e10cSrcweir { 359cdf0e10cSrcweir if (B.Seconds > A.Seconds) return true; 360cdf0e10cSrcweir if (B.Nanosec > A.Nanosec) return true; 361cdf0e10cSrcweir 362cdf0e10cSrcweir // lower or equal 363cdf0e10cSrcweir return false; 364cdf0e10cSrcweir } 365cdf0e10cSrcweir // ----------------------------------------------------------------------------- 366cdf0e10cSrcweir 367cdf0e10cSrcweir 368cdf0e10cSrcweir class test_TimeValues : public CppUnit::TestFixture 369cdf0e10cSrcweir { 370cdf0e10cSrcweir public: 371cdf0e10cSrcweir 372cdf0e10cSrcweir void t_time1(); 373cdf0e10cSrcweir void t_time2(); 374cdf0e10cSrcweir void t_time3(); 375cdf0e10cSrcweir 376cdf0e10cSrcweir CPPUNIT_TEST_SUITE( test_TimeValues ); 377cdf0e10cSrcweir CPPUNIT_TEST( t_time1 ); 378cdf0e10cSrcweir CPPUNIT_TEST( t_time2 ); 379cdf0e10cSrcweir CPPUNIT_TEST( t_time3 ); 380cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 381cdf0e10cSrcweir }; 382cdf0e10cSrcweir 383cdf0e10cSrcweir void test_TimeValues::t_time1() 384cdf0e10cSrcweir { 385cdf0e10cSrcweir StopWatch aWatch; 386cdf0e10cSrcweir aWatch.start(); 387cdf0e10cSrcweir TimeValue aTimeValue={3,0}; 388cdf0e10cSrcweir osl::Thread::wait(aTimeValue); 389cdf0e10cSrcweir aWatch.stop(); 390cdf0e10cSrcweir aWatch.showTime("Wait for 3 seconds"); 391cdf0e10cSrcweir } 392cdf0e10cSrcweir 393cdf0e10cSrcweir void test_TimeValues::t_time2() 394cdf0e10cSrcweir { 395cdf0e10cSrcweir t_print("Wait repeats 20 times.\n"); 396cdf0e10cSrcweir int i=0; 397cdf0e10cSrcweir while(i++<20) 398cdf0e10cSrcweir { 399cdf0e10cSrcweir StopWatch aWatch; 400cdf0e10cSrcweir aWatch.start(); 401cdf0e10cSrcweir TimeValue aTimeValue={0,1000 * 1000 * 500}; 402cdf0e10cSrcweir osl::Thread::wait(aTimeValue); 403cdf0e10cSrcweir aWatch.stop(); 404cdf0e10cSrcweir aWatch.showTime("wait for 500msec"); 405cdf0e10cSrcweir } 406cdf0e10cSrcweir } 407cdf0e10cSrcweir 408cdf0e10cSrcweir void test_TimeValues::t_time3() 409cdf0e10cSrcweir { 410cdf0e10cSrcweir t_print("Wait repeats 100 times.\n"); 411cdf0e10cSrcweir int i=0; 412cdf0e10cSrcweir while(i++<20) 413cdf0e10cSrcweir { 414cdf0e10cSrcweir StopWatch aWatch; 415cdf0e10cSrcweir aWatch.start(); 416cdf0e10cSrcweir TimeValue aTimeValue={0,1000*1000*100}; 417cdf0e10cSrcweir osl::Thread::wait(aTimeValue); 418cdf0e10cSrcweir aWatch.stop(); 419cdf0e10cSrcweir aWatch.showTime("wait for 100msec"); 420cdf0e10cSrcweir } 421cdf0e10cSrcweir } 422cdf0e10cSrcweir 423cdf0e10cSrcweir // void demoTimeValue() 424cdf0e10cSrcweir // { 425cdf0e10cSrcweir // TimeValue aStartTime, aEndTime; 426cdf0e10cSrcweir // osl_getSystemTime(&aStartTime); 427cdf0e10cSrcweir // // testSession(xORB, false); 428cdf0e10cSrcweir // osl_getSystemTime(&aEndTime); 429cdf0e10cSrcweir // 430cdf0e10cSrcweir // sal_Int32 nSeconds = aEndTime.Seconds - aStartTime.Seconds; 431cdf0e10cSrcweir // sal_Int32 nNanoSec = aEndTime.Nanosec - aStartTime.Nanosec; 432cdf0e10cSrcweir // if (nNanoSec < 0) 433cdf0e10cSrcweir // { 434cdf0e10cSrcweir // nNanoSec = 1000000000 - nNanoSec; 435cdf0e10cSrcweir // nSeconds++; 436cdf0e10cSrcweir // } 437cdf0e10cSrcweir // 438cdf0e10cSrcweir // // cout << "Time: " << nSeconds << ". " << nNanoSec << endl; 439cdf0e10cSrcweir // } 440cdf0e10cSrcweir 441cdf0e10cSrcweir 442cdf0e10cSrcweir } // namespace testOfHelperFunctions 443cdf0e10cSrcweir 444cdf0e10cSrcweir // ----------------------------------------------------------------------------- 445cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( testOfHelperFunctions::test_t_print, "helperFunctions" ); 446cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( testOfHelperFunctions::test_t_abs64, "helperFunctions" ); 447cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( testOfHelperFunctions::test_TimeValues, "helperFunctions" ); 448cdf0e10cSrcweir 449cdf0e10cSrcweir // ----------------------------------------------------------------------------- 450cdf0e10cSrcweir NOADDITIONAL; 451