1 #include "UnitTest++/UnitTestPP.h" 2 #include "UnitTest++/TestResults.h" 3 #include "UnitTest++/TimeHelpers.h" 4 #include "RecordingReporter.h" 5 #include "ScopedCurrentTest.h" 6 7 using namespace UnitTest; 8 9 namespace 10 { 11 TEST(TimeConstraintSucceedsWithFastTest)12 TEST(TimeConstraintSucceedsWithFastTest) 13 { 14 TestResults result; 15 { 16 ScopedCurrentTest scopedResult(result); 17 TimeConstraint t(200, TestDetails("", "", "", 0), 0); 18 TimeHelpers::SleepMs(5); 19 } 20 CHECK_EQUAL(0, result.GetFailureCount()); 21 } 22 TEST(TimeConstraintFailsWithSlowTest)23 TEST(TimeConstraintFailsWithSlowTest) 24 { 25 TestResults result; 26 { 27 ScopedCurrentTest scopedResult(result); 28 TimeConstraint t(10, TestDetails("", "", "", 0),0); 29 TimeHelpers::SleepMs(20); 30 } 31 CHECK_EQUAL(1, result.GetFailureCount()); 32 } 33 TEST(TimeConstraintFailureIncludesCorrectData)34 TEST(TimeConstraintFailureIncludesCorrectData) 35 { 36 RecordingReporter reporter; 37 TestResults result(&reporter); 38 { 39 ScopedCurrentTest scopedResult(result); 40 41 TestDetails const details("testname", "suitename", "filename", 10); 42 TimeConstraint t(10, details,10); 43 TimeHelpers::SleepMs(20); 44 } 45 46 using namespace std; 47 48 CHECK(strstr(reporter.lastFailedFile, "filename")); 49 CHECK_EQUAL(10, reporter.lastFailedLine); 50 CHECK(strstr(reporter.lastFailedTest, "testname")); 51 } 52 TEST(TimeConstraintFailureIncludesTimeoutInformation)53 TEST(TimeConstraintFailureIncludesTimeoutInformation) 54 { 55 RecordingReporter reporter; 56 TestResults result(&reporter); 57 { 58 ScopedCurrentTest scopedResult(result); 59 TimeConstraint t(10, TestDetails("", "", "", 0),0); 60 TimeHelpers::SleepMs(20); 61 } 62 63 using namespace std; 64 65 CHECK(strstr(reporter.lastFailedMessage, "ime constraint")); 66 CHECK(strstr(reporter.lastFailedMessage, "under 10ms")); 67 } 68 69 } 70