diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 6abcd872..d3f9e2f9 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -46,6 +46,7 @@ set(TARGET_RESOURCE resource) set(TARGET_SIGNAL signal) set(TARGET_TCP tcp) set(TARGET_TIMER timer) +set(TARGET_TTY tty) set(TARGET_UDP udp) set(TARGET_UTIL util) set(TARGET_WORK work) @@ -175,6 +176,14 @@ target_include_directories(${TARGET_TIMER} PRIVATE ${COMMON_INCLUDE_DIRS}) target_link_libraries(${TARGET_TIMER} PRIVATE ${COMMON_LINK_LIBS}) add_test(NAME ${TARGET_TIMER} COMMAND ${TARGET_TIMER}) +# Test TARGET_TTY + +set(TARGET_TTY_SOURCES $ uvw/tty.cpp) +add_executable(${TARGET_TTY} ${TARGET_TTY_SOURCES}) +target_include_directories(${TARGET_TTY} PRIVATE ${COMMON_INCLUDE_DIRS}) +target_link_libraries(${TARGET_TTY} PRIVATE ${COMMON_LINK_LIBS}) +add_test(NAME ${TARGET_TTY} COMMAND ${TARGET_TTY}) + # Test TARGET_UDP set(TARGET_UDP_SOURCES $ uvw/udp.cpp) diff --git a/test/uvw/emitter.cpp b/test/uvw/emitter.cpp index 2aa4bbd9..9356795e 100644 --- a/test/uvw/emitter.cpp +++ b/test/uvw/emitter.cpp @@ -9,7 +9,7 @@ struct TestEmitter: uvw::Emitter { }; -TEST(Emitter, ClearAndClear) { +TEST(Emitter, EmptyAndClear) { TestEmitter emitter{}; ASSERT_TRUE(emitter.empty()); diff --git a/test/uvw/loop.cpp b/test/uvw/loop.cpp index 0298eefc..f83dd092 100644 --- a/test/uvw/loop.cpp +++ b/test/uvw/loop.cpp @@ -16,8 +16,7 @@ TEST(Loop, DefaultLoop) { } -TEST(Loop, PartiallyDone) { - +TEST(Loop, Functionalities) { auto loop = uvw::Loop::create(); auto handle = loop->resource(); auto req = loop->resource([]{}); diff --git a/test/uvw/resource.cpp b/test/uvw/resource.cpp index d04b6470..02e38baf 100644 --- a/test/uvw/resource.cpp +++ b/test/uvw/resource.cpp @@ -7,7 +7,7 @@ struct Res: uvw::Resource { }; -TEST(Resource, Basics) { +TEST(Resource, Functionalities) { ASSERT_FALSE(std::is_copy_constructible::value); ASSERT_FALSE(std::is_copy_assignable::value); diff --git a/test/uvw/tty.cpp b/test/uvw/tty.cpp new file mode 100644 index 00000000..1ea50278 --- /dev/null +++ b/test/uvw/tty.cpp @@ -0,0 +1,32 @@ +#include +#include + + +TEST(TTY, Functionalities) { + auto loop = uvw::Loop::getDefault(); + auto handle = loop->resource(uvw::StdOUT, false); + auto timer = loop->resource(); + + bool checkWriteEvent = false; + + handle->on([&checkWriteEvent](const auto &, auto &hndl){ + ASSERT_FALSE(checkWriteEvent); + checkWriteEvent = true; + hndl.close(); + }); + + timer->on([handle](const auto &, auto &hndl){ + auto data = std::make_unique('*'); + handle->write(std::move(data), 1); + hndl.close(); + }); + + ASSERT_TRUE(handle->reset()); + ASSERT_TRUE(handle->mode(uvw::TTYHandle::Mode::NORMAL)); + ASSERT_NO_THROW(handle->getWinSize()); + + timer->start(uvw::TimerHandle::Time{0}, uvw::TimerHandle::Time{0}); + loop->run(); + + ASSERT_TRUE(checkWriteEvent); +}