SynchronizedTestResult.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:3k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #ifndef SYNCHRONIZEDTESTRESULTDECORATOR_H
  2. #define SYNCHRONIZEDTESTRESULTDECORATOR_H
  3. #include <afxmt.h>
  4. #include "TestResultDecorator.h"
  5. class SynchronizedTestResult : public TestResultDecorator
  6. {
  7. public:
  8. SynchronizedTestResult (TestResult *result);
  9. ~SynchronizedTestResult ();
  10. bool shouldStop ();
  11. void addError (Test *test, CppUnitException *e);
  12. void addFailure (Test *test, CppUnitException *e);
  13. void startTest (Test *test);
  14. void endTest (Test *test);
  15. int runTests ();
  16. int testErrors  ();
  17. int testFailures ();
  18. bool wasSuccessful ();
  19. void stop ();
  20. vector<TestFailure *>& errors ();
  21. vector<TestFailure *>& failures ();
  22. private:
  23. CCriticalSection m_criticalSection;
  24. };
  25. // Constructor
  26. inline SynchronizedTestResult::SynchronizedTestResult (TestResult *result)
  27. : TestResultDecorator (result) {}
  28. // Destructor
  29. inline SynchronizedTestResult::~SynchronizedTestResult ()
  30. {}
  31. // Returns whether the test should stop
  32. inline bool SynchronizedTestResult::shouldStop ()
  33. { CSingleLock sync (&m_criticalSection, TRUE); return m_result->shouldStop (); }
  34. // Adds an error to the list of errors. The passed in exception
  35. // caused the error
  36. inline void SynchronizedTestResult::addError (Test *test, CppUnitException *e)
  37. { CSingleLock sync (&m_criticalSection, TRUE); m_result->addError (test, e); }
  38. // Adds a failure to the list of failures. The passed in exception
  39. // caused the failure.
  40. inline void SynchronizedTestResult::addFailure (Test *test, CppUnitException *e)
  41. { CSingleLock sync (&m_criticalSection, TRUE); m_result->addFailure (test, e); }
  42. // Informs the result that a test will be started.
  43. inline void SynchronizedTestResult::startTest (Test *test)
  44. { CSingleLock sync (&m_criticalSection, TRUE); m_result->startTest (test); }
  45.   
  46. // Informs the result that a test was completed.
  47. inline void SynchronizedTestResult::endTest (Test *test)
  48. { CSingleLock sync (&m_criticalSection, TRUE); m_result->endTest (test); }
  49. // Gets the number of run tests.
  50. inline int SynchronizedTestResult::runTests ()
  51. { CSingleLock sync (&m_criticalSection, TRUE); return m_result->runTests (); }
  52. // Gets the number of detected errors.
  53. inline int SynchronizedTestResult::testErrors ()
  54. { CSingleLock sync (&m_criticalSection, TRUE); return m_result->testErrors (); }
  55. // Gets the number of detected failures.
  56. inline int SynchronizedTestResult::testFailures ()
  57. { CSingleLock sync (&m_criticalSection, TRUE); return m_result->testFailures (); }
  58. // Returns whether the entire test was successful or not.
  59. inline bool SynchronizedTestResult::wasSuccessful ()
  60. { CSingleLock sync (&m_criticalSection, TRUE); return m_result->wasSuccessful (); }
  61. // Marks that the test run should stop.
  62. inline void SynchronizedTestResult::stop ()
  63. { CSingleLock sync (&m_criticalSection, TRUE); m_result->stop (); }
  64. // Returns a vector of the errors.
  65. inline vector<TestFailure *>& SynchronizedTestResult::errors ()
  66. { CSingleLock sync (&m_criticalSection, TRUE); return m_result->errors (); }
  67. // Returns a vector of the failures.
  68. inline vector<TestFailure *>& SynchronizedTestResult::failures ()
  69. { CSingleLock sync (&m_criticalSection, TRUE); return m_result->failures (); }
  70. #endif