Add two timer ref count tests

This commit is contained in:
Ryan Dahl 2011-09-26 22:01:21 -07:00
parent 2c0179197f
commit 3e5aa06c49
2 changed files with 44 additions and 0 deletions

View File

@ -52,6 +52,8 @@ TEST_DECLARE (connection_fail_doesnt_auto_close)
TEST_DECLARE (shutdown_eof) TEST_DECLARE (shutdown_eof)
TEST_DECLARE (callback_stack) TEST_DECLARE (callback_stack)
TEST_DECLARE (timer) TEST_DECLARE (timer)
TEST_DECLARE (timer_ref)
TEST_DECLARE (timer_ref2)
TEST_DECLARE (timer_again) TEST_DECLARE (timer_again)
TEST_DECLARE (idle_starvation) TEST_DECLARE (idle_starvation)
TEST_DECLARE (loop_handles) TEST_DECLARE (loop_handles)
@ -154,6 +156,8 @@ TASK_LIST_START
TEST_HELPER (callback_stack, tcp4_echo_server) TEST_HELPER (callback_stack, tcp4_echo_server)
TEST_ENTRY (timer) TEST_ENTRY (timer)
TEST_ENTRY (timer_ref)
TEST_ENTRY (timer_ref2)
TEST_ENTRY (timer_again) TEST_ENTRY (timer_again)

View File

@ -130,3 +130,43 @@ TEST_IMPL(timer) {
return 0; return 0;
} }
TEST_IMPL(timer_ref) {
uv_timer_t never;
int r;
/* A timer just initialized should count as one reference. */
r = uv_timer_init(uv_default_loop(), &never);
ASSERT(r == 0);
/* One unref should set the loop ref count to zero. */
uv_unref(uv_default_loop());
/* Therefore this does not block */
uv_run(uv_default_loop());
return 0;
}
TEST_IMPL(timer_ref2) {
uv_timer_t never;
int r;
/* A timer just initialized should count as one reference. */
r = uv_timer_init(uv_default_loop(), &never);
ASSERT(r == 0);
/* We start the timer, this should not effect the ref count. */
r = uv_timer_start(&never, never_cb, 1000, 1000);
ASSERT(r == 0);
/* One unref should set the loop ref count to zero. */
uv_unref(uv_default_loop());
/* Therefore this does not block */
uv_run(uv_default_loop());
return 0;
}