diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-09-03 12:42:10 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-09-03 21:42:16 +0800 |
commit | 4e377b298ff126453270139cb498a43d12f6382d (patch) | |
tree | 4d7c43fef658a15462c27008f8c67253d0eb6e34 /test/base/platform/unix/TimerTest.cpp | |
parent | efa1266f10e90c0c46f47cc06645422142cb2d9f (diff) | |
download | cru-4e377b298ff126453270139cb498a43d12f6382d.tar.gz cru-4e377b298ff126453270139cb498a43d12f6382d.tar.bz2 cru-4e377b298ff126453270139cb498a43d12f6382d.zip |
UnixTimerFile test.
Diffstat (limited to 'test/base/platform/unix/TimerTest.cpp')
-rw-r--r-- | test/base/platform/unix/TimerTest.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/base/platform/unix/TimerTest.cpp b/test/base/platform/unix/TimerTest.cpp new file mode 100644 index 00000000..261cc6b2 --- /dev/null +++ b/test/base/platform/unix/TimerTest.cpp @@ -0,0 +1,24 @@ +#include "cru/base/platform/unix/Timer.h" + +#include <catch2/catch_test_macros.hpp> + +#include <poll.h> +#include <chrono> + +TEST_CASE("UnixTimerFile Work", "[unix][time]") { + using namespace cru; + using namespace cru::platform::unix; + + auto test_miliseconds = 100; + auto test_duration = std::chrono::milliseconds(test_miliseconds); + auto start = std::chrono::steady_clock::now(); + REQUIRE((std::chrono::steady_clock::now() - start) < test_duration); + + UnixTimerFile timer(test_duration); + + struct pollfd fds[1]; + fds[0].fd = timer.GetReadFd(); + fds[0].events = POLLIN; + REQUIRE(::poll(fds, 1, test_miliseconds * 2) == 1); + REQUIRE((std::chrono::steady_clock::now() - start) > test_duration); +} |