From c73e73c8743cc664460a8ae173f034481d94323f Mon Sep 17 00:00:00 2001 From: Bartosz Sosnowski Date: Wed, 6 Dec 2017 23:47:38 +0100 Subject: [PATCH] test: add threadpool init/teardown test Verify that quick setup and teardown of the threadpool doesn't cause crashes or hangs. PR-URL: https://github.com/libuv/libuv/pull/1639 Reviewed-By: Ben Noordhuis Reviewed-By: Colin Ihrig Reviewed-By: Santiago Gimeno --- test/test-list.h | 2 ++ test/test-loop-close.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/test/test-list.h b/test/test-list.h index 08a59991..bc75858f 100644 --- a/test/test-list.h +++ b/test/test-list.h @@ -28,6 +28,7 @@ TEST_DECLARE (run_once) TEST_DECLARE (run_nowait) TEST_DECLARE (loop_alive) TEST_DECLARE (loop_close) +TEST_DECLARE (loop_instant_close) TEST_DECLARE (loop_stop) TEST_DECLARE (loop_update_time) TEST_DECLARE (loop_backend_timeout) @@ -427,6 +428,7 @@ TASK_LIST_START TEST_ENTRY (run_nowait) TEST_ENTRY (loop_alive) TEST_ENTRY (loop_close) + TEST_ENTRY (loop_instant_close) TEST_ENTRY (loop_stop) TEST_ENTRY (loop_update_time) TEST_ENTRY (loop_backend_timeout) diff --git a/test/test-loop-close.c b/test/test-loop-close.c index 971c9d72..f0f3e627 100644 --- a/test/test-loop-close.c +++ b/test/test-loop-close.c @@ -55,3 +55,21 @@ TEST_IMPL(loop_close) { return 0; } + +static void loop_instant_close_work_cb(uv_work_t* req) { +} + +static void loop_instant_close_after_work_cb(uv_work_t* req, int status) { +} + +TEST_IMPL(loop_instant_close) { + static uv_loop_t loop; + static uv_work_t req; + ASSERT(0 == uv_loop_init(&loop)); + ASSERT(0 == uv_queue_work(&loop, + &req, + loop_instant_close_work_cb, + loop_instant_close_after_work_cb)); + MAKE_VALGRIND_HAPPY(); + return 0; +}