diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index b6648859..f79f91c6 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -26,6 +26,7 @@ set(TARGET_CHECK check) set(TARGET_IDLE idle) set(TARGET_LOOP loop) set(TARGET_PREPARE prepare) +set(TARGET_SIGNAL signal) set(TARGET_TIMER timer) set(TARGET_WORK work) @@ -77,6 +78,14 @@ target_include_directories(${TARGET_PREPARE} PRIVATE ${COMMON_INCLUDE_DIRS}) target_link_libraries(${TARGET_PREPARE} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_PREPARE} COMMAND ${TARGET_PREPARE}) +# Test TARGET_SIGNAL + +set(TARGET_SIGNAL_SOURCES uvw/signal.cpp) +add_executable(${TARGET_SIGNAL} ${TARGET_SIGNAL_SOURCES}) +target_include_directories(${TARGET_SIGNAL} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_link_libraries(${TARGET_SIGNAL} PRIVATE ${COMMON_LINK_LIBS}) +add_test(NAME ${TARGET_SIGNAL} COMMAND ${TARGET_SIGNAL}) + # Test TARGET_TIMER set(TARGET_TIMER_SOURCES uvw/timer.cpp) diff --git a/test/uvw/signal.cpp b/test/uvw/signal.cpp new file mode 100644 index 00000000..c57a7e99 --- /dev/null +++ b/test/uvw/signal.cpp @@ -0,0 +1,24 @@ +#include +#include + + +TEST(Signal, Fake) { + auto loop = uvw::Loop::getDefault(); + auto handle = loop->resource(); + + auto l = [](const auto &, auto &) { ASSERT_FALSE(true); }; + handle->on(l); + handle->on(l); + + handle->start(42); + + ASSERT_EQ(42, handle->signal()); + + handle->stop(); + handle->close(); + + ASSERT_FALSE(handle->active()); + ASSERT_TRUE(handle->closing()); + + loop->run(); +}