#include "UnitTest++/UnitTestPP.h" #include "UnitTest++/TestResults.h" #include "UnitTest++/TimeHelpers.h" #include "RecordingReporter.h" #include "ScopedCurrentTest.h" using namespace UnitTest; namespace { TEST(TimeConstraintSucceedsWithFastTest) { TestResults result; { ScopedCurrentTest scopedResult(result); TimeConstraint t(200, TestDetails("", "", "", 0)); TimeHelpers::SleepMs(5); } CHECK_EQUAL(0, result.GetFailureCount()); } TEST(TimeConstraintFailsWithSlowTest) { TestResults result; { ScopedCurrentTest scopedResult(result); TimeConstraint t(10, TestDetails("", "", "", 0)); TimeHelpers::SleepMs(20); } CHECK_EQUAL(1, result.GetFailureCount()); } TEST(TimeConstraintFailureIncludesCorrectData) { RecordingReporter reporter; TestResults result(&reporter); { ScopedCurrentTest scopedResult(result); TestDetails const details("testname", "suitename", "filename", 10); TimeConstraint t(10, details); TimeHelpers::SleepMs(20); } using namespace std; CHECK(strstr(reporter.lastFailedFile, "filename")); CHECK_EQUAL(10, reporter.lastFailedLine); CHECK(strstr(reporter.lastFailedTest, "testname")); } TEST(TimeConstraintFailureIncludesTimeoutInformation) { RecordingReporter reporter; TestResults result(&reporter); { ScopedCurrentTest scopedResult(result); TimeConstraint t(10, TestDetails("", "", "", 0)); TimeHelpers::SleepMs(20); } using namespace std; CHECK(strstr(reporter.lastFailedMessage, "ime constraint")); CHECK(strstr(reporter.lastFailedMessage, "under 10ms")); } }