Add a few more tests

This brings test coverage for glist.c and glist.c to the
coveted 100% lines mark.
This commit is contained in:
Matthias Clasen 2011-10-03 23:55:02 -04:00
parent 1fe4429318
commit 823e32655e
2 changed files with 119 additions and 3 deletions

View File

@ -185,6 +185,15 @@ test_list_concat (void)
g_assert (*((gint*) st->data) == i);
}
list2 = g_list_concat (NULL, list1);
g_assert_cmpint (g_list_length (list2), ==, 10);
list2 = g_list_concat (list1, NULL);
g_assert_cmpint (g_list_length (list2), ==, 10);
list2 = g_list_concat (NULL, NULL);
g_assert (list2 == NULL);
g_list_free (list1);
}
@ -235,9 +244,10 @@ test_list_remove_all (void)
g_assert_cmpint (g_list_length (list), ==, 20);
for (i = 0; i < 10; i++)
for (i = 0; i < 5; i++)
{
list = g_list_remove_all (list, &nums[i]);
list = g_list_remove_all (list, &nums[2 * i + 1]);
list = g_list_remove_all (list, &nums[8 - 2 * i]);
}
g_assert_cmpint (g_list_length (list), ==, 0);
@ -397,6 +407,59 @@ test_delete_link (void)
g_list_free (l);
}
static void
test_prepend (void)
{
GList *l, *l2;
l = NULL;
l = g_list_prepend (l, "c");
l = g_list_prepend (l, "a");
g_assert (l->data == (gpointer)"a");
g_assert (l->next->data == (gpointer)"c");
g_assert (l->next->next == NULL);
l2 = l->next;
l2 = g_list_prepend (l2, "b");
g_assert (l2->prev == l);
g_assert (l->data == (gpointer)"a");
g_assert (l->next->data == (gpointer)"b");
g_assert (l->next->next->data == (gpointer)"c");
g_assert (l->next->next->next == NULL);
g_list_free (l);
}
static void
test_position (void)
{
GList *l, *ll;
l = NULL;
l = g_list_append (l, "a");
l = g_list_append (l, "b");
l = g_list_append (l, "c");
ll = g_list_find (l, "a");
g_assert_cmpint (g_list_position (l, ll), ==, 0);
g_assert_cmpint (g_list_index (l, "a"), ==, 0);
ll = g_list_find (l, "b");
g_assert_cmpint (g_list_position (l, ll), ==, 1);
g_assert_cmpint (g_list_index (l, "b"), ==, 1);
ll = g_list_find (l, "c");
g_assert_cmpint (g_list_position (l, ll), ==, 2);
g_assert_cmpint (g_list_index (l, "c"), ==, 2);
ll = g_list_append (NULL, "d");
g_assert_cmpint (g_list_position (l, ll), ==, -1);
g_assert_cmpint (g_list_index (l, "d"), ==, -1);
g_list_free (l);
g_list_free (ll);
}
int
main (int argc, char *argv[])
{
@ -422,6 +485,8 @@ main (int argc, char *argv[])
g_test_add_func ("/list/free-full", test_free_full);
g_test_add_func ("/list/copy", test_list_copy);
g_test_add_func ("/list/delete-link", test_delete_link);
g_test_add_func ("/list/prepend", test_prepend);
g_test_add_func ("/list/position", test_position);
return g_test_run ();
}

View File

@ -206,7 +206,8 @@ test_slist_remove_all (void)
for (i = 0; i < 10; i++)
{
slist = g_slist_remove_all (slist, &nums[i]);
slist = g_slist_remove_all (slist, &nums[2 * i + 1]);
slist = g_slist_remove_all (slist, &nums[8 - 2 * i]);
}
g_assert_cmpint (g_slist_length (slist), ==, 0);
@ -240,6 +241,26 @@ test_slist_insert (void)
}
g_slist_free (slist);
slist = g_slist_insert (NULL, "a", 1);
g_assert (slist->data == (gpointer)"a");
g_assert (slist->next == NULL);
g_slist_free (slist);
slist = g_slist_append (NULL, "a");
slist = g_slist_append (slist, "b");
slist = g_slist_insert (slist, "c", 5);
g_assert (slist->next->next->data == (gpointer)"c");
g_assert (slist->next->next->next == NULL);
g_slist_free (slist);
slist = g_slist_append (NULL, "a");
slist = g_slist_insert_before (slist, slist, "b");
g_assert (slist->data == (gpointer)"b");
g_assert (slist->next->data == (gpointer)"a");
g_assert (slist->next->next == NULL);
g_slist_free (slist);
}
static gint
@ -272,9 +293,38 @@ test_slist_position (void)
g_assert_cmpint (g_slist_position (slist, st), ==, i);
}
st = g_slist_find_custom (slist, GINT_TO_POINTER (1000), find_num);
g_assert (st == NULL);
g_slist_free (slist);
}
static void
test_slist_concat (void)
{
GSList *s1, *s2, *s;
s1 = g_slist_append (NULL, "a");
s2 = g_slist_append (NULL, "b");
s = g_slist_concat (s1, s2);
g_assert (s->data == (gpointer)"a");
g_assert (s->next->data == (gpointer)"b");
g_assert (s->next->next == NULL);
g_slist_free (s);
s1 = g_slist_append (NULL, "a");
s = g_slist_concat (NULL, s1);
g_assert_cmpint (g_slist_length (s), ==, 1);
s = g_slist_concat (s1, NULL);
g_assert_cmpint (g_slist_length (s), ==, 1);
g_slist_free (s);
s = g_slist_concat (NULL, NULL);
g_assert (s == NULL);
}
int
main (int argc, char *argv[])
{
@ -296,6 +346,7 @@ main (int argc, char *argv[])
g_test_add_func ("/slist/remove-all", test_slist_remove_all);
g_test_add_func ("/slist/insert", test_slist_insert);
g_test_add_func ("/slist/position", test_slist_position);
g_test_add_func ("/slist/concat", test_slist_concat);
return g_test_run ();
}