G+Smo  24.08.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TimeConstraint.h
1 #ifndef UNITTEST_TIMECONSTRAINT_H
2 #define UNITTEST_TIMECONSTRAINT_H
3 
4 #include "TimeHelpers.h"
5 #include "HelperMacros.h"
6 
7 namespace UnitTest {
8 
9 class TestResults;
10 class TestDetails;
11 
12 class UNITTEST_LINKAGE TimeConstraint
13 {
14 public:
15  TimeConstraint(int ms, TestDetails const& details);
16  ~TimeConstraint();
17 
18 private:
19  void operator=(TimeConstraint const&);
20  TimeConstraint(TimeConstraint const&);
21 
22  Timer m_timer;
23  TestDetails const& m_details;
24  int const m_maxMs;
25 };
26 
27 #define UNITTEST_TIME_CONSTRAINT(ms) \
28  UnitTest::TimeConstraint unitTest__timeConstraint__(ms, UnitTest::TestDetails(m_details, __LINE__))
29 
30 #define UNITTEST_TIME_CONSTRAINT_EXEMPT() \
31  UNITTEST_MULTILINE_MACRO_BEGIN \
32  m_details.timeConstraintExempt = true; \
33  UNITTEST_MULTILINE_MACRO_END
34 
35 }
36 
37 #endif