X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tests%2Fasyncqueue-test.c;h=bdc53033ff07efaba2e8268aa853e0907957d4ab;hb=147c398cd05d71fb172d3788b9dc576c67141811;hp=eb38d9ec53458b787e46b5846485f7c68dcf4077;hpb=5e3c122e6c1fb35ed1a2cb0b76e62a519251fb33;p=platform%2Fupstream%2Fglib2.0.git diff --git a/tests/asyncqueue-test.c b/tests/asyncqueue-test.c index eb38d9e..bdc5303 100644 --- a/tests/asyncqueue-test.c +++ b/tests/asyncqueue-test.c @@ -1,5 +1,6 @@ #undef G_DISABLE_ASSERT #undef G_LOG_DOMAIN +#undef G_DISABLE_DEPRECATED #include #include @@ -103,7 +104,7 @@ sort_queue (gpointer user_data) static void enter_thread (gpointer data, gpointer user_data) { - gint len; + gint len G_GNUC_UNUSED; gint id; gulong ms; @@ -126,19 +127,68 @@ enter_thread (gpointer data, gpointer user_data) id, len)); } +static gint destroy_count = 0; + +static void +counting_destroy (gpointer item) +{ + destroy_count++; +} + +static void +basic_tests (void) +{ + GAsyncQueue *q; + gpointer item; + + destroy_count = 0; + + q = g_async_queue_new_full (counting_destroy); + g_async_queue_lock (q); + g_async_queue_ref (q); + g_async_queue_unlock (q); + g_async_queue_lock (q); + g_async_queue_ref_unlocked (q); + g_async_queue_unref_and_unlock (q); + + item = g_async_queue_try_pop (q); + g_assert (item == NULL); + + g_async_queue_lock (q); + item = g_async_queue_try_pop_unlocked (q); + g_async_queue_unlock (q); + g_assert (item == NULL); + + g_async_queue_push (q, GINT_TO_POINTER (1)); + g_async_queue_push (q, GINT_TO_POINTER (2)); + g_async_queue_push (q, GINT_TO_POINTER (3)); + g_assert_cmpint (destroy_count, ==, 0); + + g_async_queue_unref (q); + g_assert_cmpint (destroy_count, ==, 0); + + item = g_async_queue_pop (q); + g_assert_cmpint (GPOINTER_TO_INT (item), ==, 1); + g_assert_cmpint (destroy_count, ==, 0); + + g_async_queue_unref (q); + g_assert_cmpint (destroy_count, ==, 2); +} + int main (int argc, char *argv[]) { -#if defined(G_THREADS_ENABLED) && ! defined(G_THREADS_IMPL_NONE) gint i; gint max_threads = MAX_THREADS; gint max_unused_threads = MAX_THREADS; gint sort_multiplier = MAX_SORTS; gint sort_interval; - gchar *msg; + gchar *msg G_GNUC_UNUSED; g_thread_init (NULL); + basic_tests (); + PRINT_MSG (("creating async queue...")); async_queue = g_async_queue_new (); @@ -188,7 +238,6 @@ main (int argc, char *argv[]) main_loop = g_main_loop_new (NULL, FALSE); g_main_loop_run (main_loop); -#endif - + return EXIT_SUCCESS; }