1 #ifndef UNITTEST_TIMECONSTRAINT_H 2 #define UNITTEST_TIMECONSTRAINT_H 3 4 #include "TimeHelpers.h" 5 #include "HelperMacros.h" 6 #include "TestDetails.h" 7 8 namespace UnitTest { 9 10 class TestResults; 11 12 class UNITTEST_LINKAGE TimeConstraint 13 { 14 public: 15 TimeConstraint(int ms, TestDetails const& details, int lineNumber); 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, 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 38