Base: Use std::chrono for time handling

Replace platform specific implementations with standard C++ std::chrono.
As time_t is now 64-bit on all supported systems, use it to set the clock.
This commit is contained in:
Ladislav Michl
2023-11-15 10:28:15 +01:00
parent 7b70d3fc6f
commit a691d6fcdc
6 changed files with 66 additions and 229 deletions

View File

@@ -4,32 +4,32 @@
TEST(TimeInfo, TestDefault)
{
Base::TimeInfo ti;
EXPECT_EQ(ti.isNull(), false);
EXPECT_FALSE(ti.isNull());
}
TEST(TimeInfo, TestNull)
{
Base::TimeInfo ti(Base::TimeInfo::null());
EXPECT_EQ(ti.isNull(), true);
EXPECT_TRUE(ti.isNull());
}
TEST(TimeInfo, TestCompare)
{
Base::TimeInfo ti1;
Base::TimeInfo ti2;
ti2.setTime_t(ti1.getSeconds() + 1);
EXPECT_EQ(ti1 == ti1, true);
EXPECT_EQ(ti1 != ti2, true);
EXPECT_EQ(ti1 < ti2, true);
EXPECT_EQ(ti1 > ti2, false);
EXPECT_EQ(ti1 <= ti1, true);
EXPECT_EQ(ti1 >= ti1, true);
Base::TimeInfo ti2(ti1);
ti2 += std::chrono::seconds(1);
EXPECT_TRUE(ti1 == ti1);
EXPECT_TRUE(ti1 != ti2);
EXPECT_TRUE(ti1 < ti2);
EXPECT_FALSE(ti1 > ti2);
EXPECT_TRUE(ti1 <= ti1);
EXPECT_TRUE(ti1 >= ti1);
}
TEST(TimeInfo, TestDiffTime)
{
Base::TimeInfo ti1;
Base::TimeInfo ti2;
ti2.setTime_t(ti1.getSeconds() + 1);
EXPECT_EQ(Base::TimeInfo::diffTimeF(ti1, ti2), 1.0);
Base::TimeInfo ti2(ti1);
ti2 += std::chrono::seconds(1000);
EXPECT_FLOAT_EQ(Base::TimeInfo::diffTimeF(ti1, ti2), 1000.0);
}