| #ifndef UNITTEST_TIMECONSTRAINT_H |
| #define UNITTEST_TIMECONSTRAINT_H |
| |
| #include "TimeHelpers.h" |
| #include "HelperMacros.h" |
| #include "TestDetails.h" |
| |
| namespace UnitTest { |
| |
| class TestResults; |
| |
| class UNITTEST_LINKAGE TimeConstraint |
| { |
| public: |
| TimeConstraint(int ms, TestDetails const& details, int lineNumber); |
| ~TimeConstraint(); |
| |
| private: |
| void operator=(TimeConstraint const&); |
| TimeConstraint(TimeConstraint const&); |
| |
| Timer m_timer; |
| TestDetails const m_details; |
| int const m_maxMs; |
| }; |
| |
| #define UNITTEST_TIME_CONSTRAINT(ms) \ |
| UnitTest::TimeConstraint unitTest__timeConstraint__(ms, m_details, __LINE__) |
| |
| #define UNITTEST_TIME_CONSTRAINT_EXEMPT() \ |
| UNITTEST_MULTILINE_MACRO_BEGIN \ |
| m_details.timeConstraintExempt = true; \ |
| UNITTEST_MULTILINE_MACRO_END |
| |
| } |
| |
| #endif |