cedric pushed a commit to branch master.
commit f21bcaccbb849b9e700f4b2f62bfd0c454a5b71b
Author: Sergii Kanaev <[email protected]>
Date: Tue Jul 9 10:23:00 2013 +0900
eina: improve test coverage for Eina_Clist.
Add tests for eina_clist_add_after, eina_clist_add_head, eina_clist_next
and eina_clist_add_tail.
---
src/tests/eina/eina_test_clist.c | 94 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 94 insertions(+)
diff --git a/src/tests/eina/eina_test_clist.c b/src/tests/eina/eina_test_clist.c
index 115afc2..ee8a5b6 100644
--- a/src/tests/eina/eina_test_clist.c
+++ b/src/tests/eina/eina_test_clist.c
@@ -49,10 +49,64 @@ static void free_list(void)
}
}
+static void add_string_after(const char *str_to_add)
+{
+ struct test_string *entry_to_add;
+
+ entry_to_add = malloc(sizeof(struct test_string));
+ assert(entry_to_add != NULL);
+
+ entry_to_add->string = str_to_add;
+
+ eina_clist_add_after(&string_list, &entry_to_add->entry);
+}
+
+static void add_string_head(const char *string_to_add)
+{
+ struct test_string *entry_to_add;
+
+ entry_to_add = malloc(sizeof(struct test_string));
+ assert(entry_to_add != NULL);
+
+ entry_to_add->string = string_to_add;
+
+ eina_clist_add_head(&string_list, &entry_to_add->entry);
+ fail_if(eina_clist_head(&string_list) != &entry_to_add->entry);
+}
+
+static void iterating_two_phase_with_add_head(int n, const char *str, int
n_ent)
+{
+ int i;
+ struct test_string *entries[n_ent];
+ Eina_Clist *tail;
+
+ tail = eina_clist_tail(&string_list);
+ entries[0] = malloc(sizeof(struct test_string));
+ assert(entries[0] != NULL);
+ entries[0]->string = str;
+ eina_clist_add_tail(&string_list, &entries[0]->entry);
+ n++;
+ fail_if(eina_clist_next(&string_list, tail) != &entries[0]->entry);
+ fail_if(eina_clist_tail(&string_list) != &entries[0]->entry);
+ for (i=1; i<n_ent; i++)
+ {
+ entries[i] = malloc(sizeof(struct test_string));
+ assert(entries[i] != NULL);
+ entries[i]->string = str;
+ eina_clist_add_tail(&string_list, &entries[i]->entry);
+ n++;
+ fail_if(eina_clist_count(&string_list) != n);
+ fail_if(eina_clist_tail(&string_list) != &entries[i]->entry);
+ fail_if(eina_clist_next(&string_list, &entries[i-1]->entry) !=
&entries[i]->entry);
+ };
+}
+
START_TEST(eina_clist_basic)
{
unsigned int n = 0;
+ fail_if(!eina_clist_empty(&string_list));
+
add_string("this");
n++;
add_string("is");
@@ -76,6 +130,46 @@ START_TEST(eina_clist_basic)
print_strings();
+ add_string_after("one\n");
+ n++;
+ add_string_after("two\n");
+ n++;
+ add_string_after("three\n");
+ n++;
+ add_string_after("four\n");
+ n++;
+ add_string_after("five\n");
+ n++;
+ add_string_after("six\n");
+ n++;
+ add_string_after("seven\n");
+ n++;
+ add_string_after("eight\n");
+ n++;
+
+ fail_if(eina_clist_count(&string_list) != n);
+
+ add_string_head("one2\n");
+ n++;
+ add_string_head("two2\n");
+ n++;
+ add_string_head("three2\n");
+ n++;
+ add_string_head("four2\n");
+ n++;
+ add_string_head("five2\n");
+ n++;
+ add_string_head("six2\n");
+ n++;
+ add_string_head("seven2\n");
+ n++;
+ add_string_head("eight2\n");
+ n++;
+
+ fail_if(eina_clist_count(&string_list) != n);
+
+ iterating_two_phase_with_add_head(n, "theString", 16);
+
free_list();
fail_if(eina_clist_count(&string_list) != 0);
--
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk