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 <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
This commit is contained in:
Bartosz Sosnowski 2017-11-20 20:35:02 +01:00 committed by Ben Noordhuis
parent 5486f6bd51
commit e99ac4c1f4
2 changed files with 20 additions and 0 deletions

View File

@ -28,6 +28,7 @@ TEST_DECLARE (run_once)
TEST_DECLARE (run_nowait) TEST_DECLARE (run_nowait)
TEST_DECLARE (loop_alive) TEST_DECLARE (loop_alive)
TEST_DECLARE (loop_close) TEST_DECLARE (loop_close)
TEST_DECLARE (loop_instant_close)
TEST_DECLARE (loop_stop) TEST_DECLARE (loop_stop)
TEST_DECLARE (loop_update_time) TEST_DECLARE (loop_update_time)
TEST_DECLARE (loop_backend_timeout) TEST_DECLARE (loop_backend_timeout)
@ -422,6 +423,7 @@ TASK_LIST_START
TEST_ENTRY (run_nowait) TEST_ENTRY (run_nowait)
TEST_ENTRY (loop_alive) TEST_ENTRY (loop_alive)
TEST_ENTRY (loop_close) TEST_ENTRY (loop_close)
TEST_ENTRY (loop_instant_close)
TEST_ENTRY (loop_stop) TEST_ENTRY (loop_stop)
TEST_ENTRY (loop_update_time) TEST_ENTRY (loop_update_time)
TEST_ENTRY (loop_backend_timeout) TEST_ENTRY (loop_backend_timeout)

View File

@ -55,3 +55,21 @@ TEST_IMPL(loop_close) {
return 0; 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;
}