Changeset 477 for library/tests/unittest-cpp/Posix
- Timestamp:
- 08/05/09 14:40:03 (16 years ago)
- Location:
- library/tests/unittest-cpp/Posix
- Files:
-
- 4 modified
Legend:
- Unmodified
- Added
- Removed
-
library/tests/unittest-cpp/Posix/SignalTranslator.cpp
r418 r477 7 7 namespace { 8 8 9 void SignalHandler(int sig) 10 { 11 siglongjmp(*SignalTranslator::s_jumpTarget, sig ); 9 void SignalHandler ( int sig ) { 10 siglongjmp ( *SignalTranslator::s_jumpTarget, sig ); 12 11 } 13 12 … … 15 14 16 15 17 SignalTranslator::SignalTranslator() 18 { 19 m_oldJumpTarget = s_jumpTarget; 20 s_jumpTarget = &m_currentJumpTarget; 16 SignalTranslator::SignalTranslator() { 17 m_oldJumpTarget = s_jumpTarget; 18 s_jumpTarget = &m_currentJumpTarget; 21 19 22 23 24 25 sigemptyset( &action.sa_mask );20 struct sigaction action; 21 action.sa_flags = 0; 22 action.sa_handler = SignalHandler; 23 sigemptyset ( &action.sa_mask ); 26 24 27 sigaction( SIGSEGV, &action, &m_old_SIGSEGV_action );28 sigaction( SIGFPE , &action, &m_old_SIGFPE_action);29 sigaction( SIGTRAP, &action, &m_old_SIGTRAP_action );30 sigaction( SIGBUS , &action, &m_old_SIGBUS_action);31 sigaction( SIGILL , &action, &m_old_SIGBUS_action);25 sigaction ( SIGSEGV, &action, &m_old_SIGSEGV_action ); 26 sigaction ( SIGFPE , &action, &m_old_SIGFPE_action ); 27 sigaction ( SIGTRAP, &action, &m_old_SIGTRAP_action ); 28 sigaction ( SIGBUS , &action, &m_old_SIGBUS_action ); 29 sigaction ( SIGILL , &action, &m_old_SIGBUS_action ); 32 30 } 33 31 34 SignalTranslator::~SignalTranslator() 35 { 36 sigaction( SIGILL , &m_old_SIGBUS_action , 0 ); 37 sigaction( SIGBUS , &m_old_SIGBUS_action , 0 ); 38 sigaction( SIGTRAP, &m_old_SIGTRAP_action, 0 ); 39 sigaction( SIGFPE , &m_old_SIGFPE_action , 0 ); 40 sigaction( SIGSEGV, &m_old_SIGSEGV_action, 0 ); 32 SignalTranslator::~SignalTranslator() { 33 sigaction ( SIGILL , &m_old_SIGBUS_action , 0 ); 34 sigaction ( SIGBUS , &m_old_SIGBUS_action , 0 ); 35 sigaction ( SIGTRAP, &m_old_SIGTRAP_action, 0 ); 36 sigaction ( SIGFPE , &m_old_SIGFPE_action , 0 ); 37 sigaction ( SIGSEGV, &m_old_SIGSEGV_action, 0 ); 41 38 42 39 s_jumpTarget = m_oldJumpTarget; 43 40 } 44 41 -
library/tests/unittest-cpp/Posix/SignalTranslator.h
r418 r477 7 7 namespace UnitTest { 8 8 9 class SignalTranslator 10 { 9 class SignalTranslator { 11 10 public: 12 13 11 SignalTranslator(); 12 ~SignalTranslator(); 14 13 15 14 static sigjmp_buf* s_jumpTarget; 16 15 17 16 private: 18 19 17 sigjmp_buf m_currentJumpTarget; 18 sigjmp_buf* m_oldJumpTarget; 20 19 21 22 23 24 25 26 20 struct sigaction m_old_SIGFPE_action; 21 struct sigaction m_old_SIGTRAP_action; 22 struct sigaction m_old_SIGSEGV_action; 23 struct sigaction m_old_SIGBUS_action; 24 struct sigaction m_old_SIGABRT_action; 25 struct sigaction m_old_SIGALRM_action; 27 26 }; 28 27 29 28 #if !defined (__GNUC__) 30 29 #define UNITTEST_EXTENSION 31 30 #else 32 31 #define UNITTEST_EXTENSION __extension__ 33 32 #endif 34 33 … … 36 35 UnitTest::SignalTranslator sig; \ 37 36 if (UNITTEST_EXTENSION sigsetjmp(*UnitTest::SignalTranslator::s_jumpTarget, 1) != 0) \ 38 throw ("Unhandled system exception"); 37 throw ("Unhandled system exception"); 39 38 40 39 } -
library/tests/unittest-cpp/Posix/TimeHelpers.cpp
r418 r477 4 4 namespace UnitTest { 5 5 6 Timer::Timer() 7 { 8 m_startTime.tv_sec = 0; 9 m_startTime.tv_usec = 0; 6 Timer::Timer() { 7 m_startTime.tv_sec = 0; 8 m_startTime.tv_usec = 0; 10 9 } 11 10 12 void Timer::Start() 13 { 14 gettimeofday(&m_startTime, 0); 11 void Timer::Start() { 12 gettimeofday ( &m_startTime, 0 ); 15 13 } 16 14 17 double Timer::GetTimeInMs() const 18 { 19 struct timeval currentTime; 20 gettimeofday(¤tTime, 0); 15 double Timer::GetTimeInMs() const { 16 struct timeval currentTime; 17 gettimeofday ( ¤tTime, 0 ); 21 18 22 19 double const dsecs = currentTime.tv_sec - m_startTime.tv_sec; 23 20 double const dus = currentTime.tv_usec - m_startTime.tv_usec; 24 21 25 return ( dsecs * 1000.0) + (dus / 1000.0);22 return ( dsecs * 1000.0 ) + ( dus / 1000.0 ); 26 23 } 27 24 28 void TimeHelpers::SleepMs(int ms) 29 { 30 usleep(ms * 1000); 25 void TimeHelpers::SleepMs ( int ms ) { 26 usleep ( ms * 1000 ); 31 27 } 32 28 -
library/tests/unittest-cpp/Posix/TimeHelpers.h
r418 r477 6 6 namespace UnitTest { 7 7 8 class Timer 9 { 8 class Timer { 10 9 public: 11 12 13 double GetTimeInMs() const; 10 Timer(); 11 void Start(); 12 double GetTimeInMs() const; 14 13 15 14 private: 16 struct timeval m_startTime; 15 struct timeval m_startTime; 17 16 }; 18 17 19 18 20 namespace TimeHelpers 21 { 22 void SleepMs (int ms); 19 namespace TimeHelpers { 20 void SleepMs ( int ms ); 23 21 } 24 22