File: TimeConstraint.cpp

package info (click to toggle)
etlcpp 20.40.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 18,548 kB
  • sloc: cpp: 257,359; ansic: 10,566; sh: 1,730; asm: 301; python: 281; makefile: 24
file content (29 lines) | stat: -rw-r--r-- 721 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#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());
      }
   }

}