[glib] Add a few more tests
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] Add a few more tests
- Date: Tue, 4 Oct 2011 03:56:04 +0000 (UTC)
commit 823e32655e2fc4810dee34ba1bdd5553bb383a42
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Oct 3 23:55:02 2011 -0400
Add a few more tests
This brings test coverage for glist.c and glist.c to the
coveted 100% lines mark.
glib/tests/list.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++-
glib/tests/slist.c | 53 +++++++++++++++++++++++++++++++++++++++-
2 files changed, 119 insertions(+), 3 deletions(-)
---
diff --git a/glib/tests/list.c b/glib/tests/list.c
index cf65f93..648a70e 100644
--- a/glib/tests/list.c
+++ b/glib/tests/list.c
@@ -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 ();
}
diff --git a/glib/tests/slist.c b/glib/tests/slist.c
index 08bf17a..482d76a 100644
--- a/glib/tests/slist.c
+++ b/glib/tests/slist.c
@@ -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 ();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]