00001 #ifndef UNITTEST_TIMECONSTRAINT_H
00002 #define UNITTEST_TIMECONSTRAINT_H
00003
00004 #include "TimeHelpers.h"
00005
00006 namespace UnitTest {
00007
00008 class TestResults;
00009 class TestDetails;
00010
00011 class TimeConstraint
00012 {
00013 public:
00014 TimeConstraint(int ms, TestDetails const& details);
00015 ~TimeConstraint();
00016
00017 private:
00018 void operator=(TimeConstraint const&);
00019 TimeConstraint(TimeConstraint const&);
00020
00021 Timer m_timer;
00022 TestDetails const& m_details;
00023 int const m_maxMs;
00024 };
00025
00026 #define UNITTEST_TIME_CONSTRAINT(ms) \
00027 UnitTest::TimeConstraint unitTest__timeConstraint__(ms, UnitTest::TestDetails(m_details, __LINE__))
00028
00029 #define UNITTEST_TIME_CONSTRAINT_EXEMPT() do { m_timeConstraintExempt = true; } while (0)
00030
00031 }
00032
00033 #endif