| #include "TimeConstraint.h" |
| #include "TestResults.h" |
| #include "MemoryOutStream.h" |
| #include "CurrentTest.h" |
| |
| namespace UnitTest { |
| |
| |
| TimeConstraint::TimeConstraint(int ms, TestDetails const& details, int lineNumber) |
| : m_details(details, lineNumber) |
| , m_maxMs(ms) |
| { |
| m_timer.Start(); |
| } |
| |
| TimeConstraint::~TimeConstraint() |
| { |
| double const totalTimeInMs = m_timer.GetTimeInMs(); |
| if (totalTimeInMs > m_maxMs) |
| { |
| MemoryOutStream stream; |
| stream << "Time constraint failed. Expected to run test under " << m_maxMs << |
| "ms but took " << totalTimeInMs << "ms."; |
| |
| CurrentTest::Results()->OnTestFailure(m_details, stream.GetText()); |
| } |
| } |
| |
| } |