mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-25 03:32:12 +01:00
Merge branch 'improve_gasyncqueue_tests' into 'main'
Improve test coverage of glib/tests/asyncqueue.c See merge request GNOME/glib!2403
This commit is contained in:
commit
1a1f05234e
@ -51,6 +51,41 @@ void test_async_queue_sort (void)
|
|||||||
|
|
||||||
g_async_queue_sort (q, compare_func, NULL);
|
g_async_queue_sort (q, compare_func, NULL);
|
||||||
|
|
||||||
|
if (g_test_undefined ())
|
||||||
|
{
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_push_sorted (NULL, GINT_TO_POINTER (1),
|
||||||
|
compare_func, NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_push_sorted_unlocked (NULL, GINT_TO_POINTER (1),
|
||||||
|
compare_func, NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_sort (NULL, compare_func, NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_sort (q, NULL, NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_sort_unlocked (NULL, compare_func, NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_sort_unlocked (q, NULL, NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
}
|
||||||
|
|
||||||
g_async_queue_push_sorted (q, GINT_TO_POINTER (1), compare_func, NULL);
|
g_async_queue_push_sorted (q, GINT_TO_POINTER (1), compare_func, NULL);
|
||||||
g_async_queue_push_sorted (q, GINT_TO_POINTER (8), compare_func, NULL);
|
g_async_queue_push_sorted (q, GINT_TO_POINTER (8), compare_func, NULL);
|
||||||
|
|
||||||
@ -183,11 +218,24 @@ test_async_queue_timed (void)
|
|||||||
gint64 start, end, diff;
|
gint64 start, end, diff;
|
||||||
gpointer val;
|
gpointer val;
|
||||||
|
|
||||||
|
g_get_current_time (&tv);
|
||||||
|
if (g_test_undefined ())
|
||||||
|
{
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_timed_pop (NULL, &tv);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_timed_pop_unlocked (NULL, &tv);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
}
|
||||||
|
|
||||||
q = g_async_queue_new ();
|
q = g_async_queue_new ();
|
||||||
|
|
||||||
start = g_get_monotonic_time ();
|
start = g_get_monotonic_time ();
|
||||||
val = g_async_queue_timeout_pop (q, G_USEC_PER_SEC / 10);
|
g_assert_null (g_async_queue_timeout_pop (q, G_USEC_PER_SEC / 10));
|
||||||
g_assert_null (val);
|
|
||||||
|
|
||||||
end = g_get_monotonic_time ();
|
end = g_get_monotonic_time ();
|
||||||
diff = end - start;
|
diff = end - start;
|
||||||
@ -197,24 +245,32 @@ test_async_queue_timed (void)
|
|||||||
*/
|
*/
|
||||||
g_assert_cmpint (diff, <, 2 * G_USEC_PER_SEC);
|
g_assert_cmpint (diff, <, 2 * G_USEC_PER_SEC);
|
||||||
|
|
||||||
|
g_async_queue_push (q, GINT_TO_POINTER (10));
|
||||||
|
val = g_async_queue_timed_pop (q, NULL);
|
||||||
|
g_assert_cmpint (GPOINTER_TO_INT (val), ==, 10);
|
||||||
|
g_assert_null (g_async_queue_try_pop (q));
|
||||||
|
|
||||||
start = end;
|
start = end;
|
||||||
g_get_current_time (&tv);
|
g_get_current_time (&tv);
|
||||||
g_time_val_add (&tv, G_USEC_PER_SEC / 10);
|
g_time_val_add (&tv, G_USEC_PER_SEC / 10);
|
||||||
val = g_async_queue_timed_pop (q, &tv);
|
g_assert_null (g_async_queue_timed_pop (q, &tv));
|
||||||
g_assert_null (val);
|
|
||||||
|
|
||||||
end = g_get_monotonic_time ();
|
end = g_get_monotonic_time ();
|
||||||
diff = end - start;
|
diff = end - start;
|
||||||
g_assert_cmpint (diff, >=, G_USEC_PER_SEC / 10);
|
g_assert_cmpint (diff, >=, G_USEC_PER_SEC / 10);
|
||||||
g_assert_cmpint (diff, <, 2 * G_USEC_PER_SEC);
|
g_assert_cmpint (diff, <, 2 * G_USEC_PER_SEC);
|
||||||
|
|
||||||
|
g_async_queue_push (q, GINT_TO_POINTER (10));
|
||||||
|
val = g_async_queue_timed_pop_unlocked (q, NULL);
|
||||||
|
g_assert_cmpint (GPOINTER_TO_INT (val), ==, 10);
|
||||||
|
g_assert_null (g_async_queue_try_pop (q));
|
||||||
|
|
||||||
start = end;
|
start = end;
|
||||||
g_get_current_time (&tv);
|
g_get_current_time (&tv);
|
||||||
g_time_val_add (&tv, G_USEC_PER_SEC / 10);
|
g_time_val_add (&tv, G_USEC_PER_SEC / 10);
|
||||||
g_async_queue_lock (q);
|
g_async_queue_lock (q);
|
||||||
val = g_async_queue_timed_pop_unlocked (q, &tv);
|
g_assert_null (g_async_queue_timed_pop_unlocked (q, &tv));
|
||||||
g_async_queue_unlock (q);
|
g_async_queue_unlock (q);
|
||||||
g_assert_null (val);
|
|
||||||
|
|
||||||
end = g_get_monotonic_time ();
|
end = g_get_monotonic_time ();
|
||||||
diff = end - start;
|
diff = end - start;
|
||||||
@ -231,6 +287,29 @@ test_async_queue_remove (void)
|
|||||||
|
|
||||||
q = g_async_queue_new ();
|
q = g_async_queue_new ();
|
||||||
|
|
||||||
|
if (g_test_undefined ())
|
||||||
|
{
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_remove (NULL, GINT_TO_POINTER (1));
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_remove (q, NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_remove_unlocked (NULL, GINT_TO_POINTER (1));
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_remove_unlocked (q, NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
}
|
||||||
|
|
||||||
g_async_queue_push (q, GINT_TO_POINTER (10));
|
g_async_queue_push (q, GINT_TO_POINTER (10));
|
||||||
g_async_queue_push (q, GINT_TO_POINTER (2));
|
g_async_queue_push (q, GINT_TO_POINTER (2));
|
||||||
g_async_queue_push (q, GINT_TO_POINTER (7));
|
g_async_queue_push (q, GINT_TO_POINTER (7));
|
||||||
@ -254,6 +333,29 @@ test_async_queue_push_front (void)
|
|||||||
|
|
||||||
q = g_async_queue_new ();
|
q = g_async_queue_new ();
|
||||||
|
|
||||||
|
if (g_test_undefined ())
|
||||||
|
{
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_push_front (NULL, GINT_TO_POINTER (1));
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_push_front (q, NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_push_front_unlocked (NULL, GINT_TO_POINTER (1));
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_push_front_unlocked (q, NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
}
|
||||||
|
|
||||||
g_async_queue_push (q, GINT_TO_POINTER (10));
|
g_async_queue_push (q, GINT_TO_POINTER (10));
|
||||||
g_async_queue_push (q, GINT_TO_POINTER (2));
|
g_async_queue_push (q, GINT_TO_POINTER (2));
|
||||||
g_async_queue_push (q, GINT_TO_POINTER (7));
|
g_async_queue_push (q, GINT_TO_POINTER (7));
|
||||||
@ -278,7 +380,104 @@ test_basics (void)
|
|||||||
|
|
||||||
destroy_count = 0;
|
destroy_count = 0;
|
||||||
|
|
||||||
|
if (g_test_undefined ())
|
||||||
|
{
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_length (NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_length_unlocked (NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_ref (NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_ref_unlocked (NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_unref (NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_unref_and_unlock (NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_lock (NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_unlock (NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_pop (NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_pop_unlocked (NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_try_pop (NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_try_pop_unlocked (NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_timeout_pop (NULL, 1);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_timeout_pop_unlocked (NULL, 1);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
}
|
||||||
|
|
||||||
q = g_async_queue_new_full (destroy_notify);
|
q = g_async_queue_new_full (destroy_notify);
|
||||||
|
|
||||||
|
if (g_test_undefined ())
|
||||||
|
{
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_push (NULL, GINT_TO_POINTER (1));
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_push (q, NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_push_unlocked (NULL, GINT_TO_POINTER (1));
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
|
||||||
|
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
|
||||||
|
"*assertion* failed*");
|
||||||
|
g_async_queue_push_unlocked (q, NULL);
|
||||||
|
g_test_assert_expected_messages ();
|
||||||
|
}
|
||||||
|
|
||||||
g_async_queue_lock (q);
|
g_async_queue_lock (q);
|
||||||
g_async_queue_ref (q);
|
g_async_queue_ref (q);
|
||||||
g_async_queue_unlock (q);
|
g_async_queue_unlock (q);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user