From ac3d88fc043d628979675dc3ef99ba5e1b4d58ca Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Thu, 4 Sep 2025 02:06:20 +0800 Subject: Add unix event loop. --- test/base/CMakeLists.txt | 2 +- test/base/platform/unix/EventLoopTest.cpp | 24 ++++++++++++++++++++++++ test/base/platform/unix/TimerTest.cpp | 24 ------------------------ 3 files changed, 25 insertions(+), 25 deletions(-) create mode 100644 test/base/platform/unix/EventLoopTest.cpp delete mode 100644 test/base/platform/unix/TimerTest.cpp (limited to 'test') diff --git a/test/base/CMakeLists.txt b/test/base/CMakeLists.txt index 5abba240..95313ccb 100644 --- a/test/base/CMakeLists.txt +++ b/test/base/CMakeLists.txt @@ -25,7 +25,7 @@ target_compile_definitions(CruBaseTest PRIVATE if (UNIX AND NOT EMSCRIPTEN) target_sources(CruBaseTest PRIVATE - platform/unix/TimerTest.cpp + platform/unix/EventLoopTest.cpp platform/unix/UnixFileTest.cpp platform/unix/UnixFileStreamTest.cpp ) 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 + +#include +#include + +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); +} diff --git a/test/base/platform/unix/TimerTest.cpp b/test/base/platform/unix/TimerTest.cpp deleted file mode 100644 index dc3cc1ba..00000000 --- a/test/base/platform/unix/TimerTest.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include "cru/base/platform/unix/Timer.h" - -#include - -#include -#include - -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); -} -- cgit v1.2.3