Fix Timer unit test
authorPavel Labath <labath@google.com>
Thu, 3 Nov 2016 10:07:47 +0000 (10:07 +0000)
committerPavel Labath <labath@google.com>
Thu, 3 Nov 2016 10:07:47 +0000 (10:07 +0000)
I did not take into account that the output of the Dump function will be
non-deterministic. Fix that by increasing of the times, this also makes the test
check that the dump function sorts the output.

llvm-svn: 285892

lldb/unittests/Core/TimerTest.cpp

index 65cb153..8a2e1e3 100644 (file)
@@ -40,10 +40,8 @@ TEST(TimerTest, CategoryTimesNested) {
   {
     Timer t1("CAT1", "");
     std::this_thread::sleep_for(std::chrono::milliseconds(10));
-    {
-      Timer t2("CAT1", "");
-      std::this_thread::sleep_for(std::chrono::milliseconds(10));
-    }
+    Timer t2("CAT1", "");
+    std::this_thread::sleep_for(std::chrono::milliseconds(10));
   }
   StreamString ss;
   Timer::DumpCategoryTimes(&ss);
@@ -57,19 +55,18 @@ TEST(TimerTest, CategoryTimes2) {
   Timer::ResetCategoryTimes();
   {
     Timer t1("CAT1", "");
+    std::this_thread::sleep_for(std::chrono::milliseconds(100));
+    Timer t2("CAT2", "");
     std::this_thread::sleep_for(std::chrono::milliseconds(10));
-    {
-      Timer t2("CAT2", "");
-      std::this_thread::sleep_for(std::chrono::milliseconds(10));
-    }
   }
   StreamString ss;
   Timer::DumpCategoryTimes(&ss);
   double seconds1, seconds2;
   ASSERT_EQ(2, sscanf(ss.GetData(), "%lf sec for CAT1%*[\n ]%lf sec for CAT2",
-                      &seconds1, &seconds2));
-  EXPECT_LT(0.001, seconds1);
-  EXPECT_GT(0.1, seconds1);
+                      &seconds1, &seconds2))
+      << "String: " << ss.GetString();
+  EXPECT_LT(0.01, seconds1);
+  EXPECT_GT(1, seconds1);
   EXPECT_LT(0.001, seconds2);
   EXPECT_GT(0.1, seconds2);
 }