Fix Timer unit test

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
This commit is contained in:
Pavel Labath
2016-11-03 10:07:47 +00:00
parent bfa601f6b8
commit 174c578bfe

View 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);
}