From 4470aeabae3c2aca5c8075182addeb829b1502d4 Mon Sep 17 00:00:00 2001 From: superp00t Date: Sun, 30 Jul 2023 04:55:16 -0400 Subject: [PATCH] test(time): rudimentary tests for timekeeping --- test/Time.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 test/Time.cpp diff --git a/test/Time.cpp b/test/Time.cpp new file mode 100644 index 0000000..2d1ad8f --- /dev/null +++ b/test/Time.cpp @@ -0,0 +1,41 @@ +#include "bc/Time.hpp" +#include "bc/Process.hpp" +#include "test/Test.hpp" + +TEST_CASE("Blizzard::Time::FromUnixTime", "[time]") { + SECTION("convert zero Blizzard time from UNIX timestamp of Sat Jan 01 2000 00:00:00 GMT") { + auto stamp = Blizzard::Time::FromUnixTime(946684800); + REQUIRE(stamp == 0); + } +} + +TEST_CASE("Blizzard::Time::ToUnixTime", "[time]") { + SECTION("convert zero Blizzard timestamp to Unix timestamp of Sat Jan 01 2000 00:00:00 GMT+0000") { + auto stamp = Blizzard::Time::ToUnixTime(0); + REQUIRE(stamp == 946684800); + } +} + +TEST_CASE("Blizzard::Time::GetTimestamp", "[time]") { + SECTION("Get timestamp") { + auto now = Blizzard::Time::GetTimestamp(); + REQUIRE(now > 0); + } + + SECTION("Timestamp increases after 200 ms") { + auto t1 = Blizzard::Time::GetTimestamp(); + Blizzard::Process::Sleep(200); + auto t2 = Blizzard::Time::GetTimestamp(); + auto delta = t2 - t1; + REQUIRE(delta > 0); + REQUIRE(delta >= 180000000LL); + REQUIRE(delta <= 220000000LL); + } +} + +TEST_CASE("Blizzard::Time::Nanoseconds", "[time]") { + SECTION("Read wall clock") { + auto wctime = Blizzard::Time::Nanoseconds(); + REQUIRE(wctime > 0); + } +}