eina: add test case for eina list reverse iterator
authorVivek Ellur <vivek.ellur@samsung.com>
Tue, 10 Nov 2015 00:17:24 +0000 (16:17 -0800)
committerCedric BAIL <cedric@osg.samsung.com>
Tue, 10 Nov 2015 00:17:26 +0000 (16:17 -0800)
Summary:
Added test case for eina_list_iterator_reversed_new function

Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>
Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3281

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
src/tests/eina/eina_test_iterator.c

index 4c14dec..5c4b88d 100644 (file)
@@ -287,6 +287,71 @@ START_TEST(eina_iterator_list_simple)
 }
 END_TEST
 
+static Eina_Bool
+eina_reverse_iterator_list_data_check(EINA_UNUSED const Eina_List *list,
+                              int *data,
+                              int *fdata)
+{
+   switch (*fdata)
+     {
+      case 0: fail_if(*data != 1337); break;
+
+      case 1: fail_if(*data != 1); break;
+
+      case 2: fail_if(*data != 42); break;
+
+      case 3: fail_if(*data != 6); break;
+
+      case 4: fail_if(*data != 9); break;
+
+      case 5: fail_if(*data != 7); break;
+
+      case 6: fail_if(*data != 81); break;
+     }
+
+   (*fdata)++;
+
+   return EINA_TRUE;
+}
+
+START_TEST(eina_reverse_iterator_list_simple)
+{
+   Eina_List *list = NULL;
+   Eina_Iterator *it;
+   int data[] = { 6, 9, 42, 1, 7, 1337, 81, 1664 };
+   int i = 0;
+
+   eina_init();
+
+   list = eina_list_append(list, &data[0]);
+   fail_if(list == NULL);
+
+   list = eina_list_prepend(list, &data[1]);
+   fail_if(list == NULL);
+
+   list = eina_list_append(list, &data[2]);
+   fail_if(list == NULL);
+
+   list = eina_list_append(list, &data[3]);
+   fail_if(list == NULL);
+
+   list = eina_list_prepend(list, &data[4]);
+   fail_if(list == NULL);
+
+   list = eina_list_append(list, &data[5]);
+   fail_if(list == NULL);
+
+   list = eina_list_prepend(list, &data[6]);
+   fail_if(list == NULL);
+
+   it = eina_list_iterator_reversed_new(list);
+   fail_if(!it);
+
+   eina_iterator_foreach(it, EINA_EACH_CB(eina_reverse_iterator_list_data_check), &i);
+   eina_iterator_free(it);
+}
+END_TEST
+
 typedef struct _Eina_Rbtree_Int Eina_Rbtree_Int;
 struct _Eina_Rbtree_Int
 {
@@ -461,5 +526,6 @@ eina_test_iterator(TCase *tc)
    tcase_add_test(tc, eina_iterator_hash_simple);
    tcase_add_test(tc, eina_iterator_inlist_simple);
    tcase_add_test(tc, eina_iterator_list_simple);
+   tcase_add_test(tc, eina_reverse_iterator_list_simple);
    tcase_add_test(tc, eina_iterator_rbtree_simple);
 }