From: Aki Tuomi Date: Thu, 22 Sep 2016 11:14:23 +0000 (+0300) Subject: lib: Add test for pending io without timeouts X-Git-Tag: 2.2.26~230 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b0f7c3f61fa428f14aceda64ca03a554dfb476ca;p=thirdparty%2Fdovecot%2Fcore.git lib: Add test for pending io without timeouts --- diff --git a/src/lib/test-ioloop.c b/src/lib/test-ioloop.c index a54af1e3fe..7dc09d170e 100644 --- a/src/lib/test-ioloop.c +++ b/src/lib/test-ioloop.c @@ -4,6 +4,7 @@ #include "net.h" #include "time-util.h" #include "ioloop.h" +#include "istream.h" #include @@ -98,8 +99,31 @@ static void test_ioloop_find_fd_conditions(void) test_end(); } +static void io_callback_pending_io(void *context ATTR_UNUSED) +{ + io_loop_stop(current_ioloop); +} + +static void test_ioloop_pending_io(void) +{ + test_begin("ioloop pending io"); + + struct istream *is = i_stream_create_from_data("data", 4); + struct ioloop *ioloop = io_loop_create(); + struct io *io = io_add_istream(is, io_callback_pending_io, NULL); + io_loop_set_current(ioloop); + io_set_pending(io); + io_loop_run(ioloop); + io_remove(&io); + i_stream_unref(&is); + io_loop_destroy(&ioloop); + + test_end(); +} + void test_ioloop(void) { test_ioloop_timeout(); test_ioloop_find_fd_conditions(); + test_ioloop_pending_io(); }