diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-09-04 02:06:20 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-09-04 02:06:20 +0800 |
commit | ac3d88fc043d628979675dc3ef99ba5e1b4d58ca (patch) | |
tree | 6e122b7a4e119e3535b57df5cb7d17a8e034f46c /test/base/platform/unix/EventLoopTest.cpp | |
parent | 1b197ca9997eb407407e508eb199b1e6fae78926 (diff) | |
download | cru-ac3d88fc043d628979675dc3ef99ba5e1b4d58ca.tar.gz cru-ac3d88fc043d628979675dc3ef99ba5e1b4d58ca.tar.bz2 cru-ac3d88fc043d628979675dc3ef99ba5e1b4d58ca.zip |
Add unix event loop.
Diffstat (limited to 'test/base/platform/unix/EventLoopTest.cpp')
-rw-r--r-- | test/base/platform/unix/EventLoopTest.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/base/platform/unix/EventLoopTest.cpp b/test/base/platform/unix/EventLoopTest.cpp new file mode 100644 index 00000000..f5936b2a --- /dev/null +++ b/test/base/platform/unix/EventLoopTest.cpp @@ -0,0 +1,24 @@ +#include "cru/base/platform/unix/EventLoop.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 = 300; + 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); +} |