summaryrefslogtreecommitdiff
path: root/src/tests/eina
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2019-12-18 17:15:09 +0100
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2019-12-18 21:45:42 +0100
commit9ccc66b90004a29c0790d58106857dc5e3377976 (patch)
treeadea60e8c455f3d4842565a7db59593b75cc3fc1 /src/tests/eina
parent52aa2f629f9e63c22d9fa641daf30f9ff8f957ee (diff)
downloadefl-9ccc66b90004a29c0790d58106857dc5e3377976.tar.gz
eina_accessor: make carray accessor work properly
a accessor is not really helpfull if it operates like the carray accessor before this commit. What it was doing is to fill the content of the "current line" into the data pointer. In a carray the "current line" is the content of its carray-member. However, accessors like for inarray array list or inlist do work completly differently. They are returning the pointer to the "current line" not the value of the current line. The only case where this worked is efl_ui_format.c which was only tested with this accessor, and this accessor also only worked with this accessor. Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D10908
Diffstat (limited to 'src/tests/eina')
-rw-r--r--src/tests/eina/eina_test_accessor.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/tests/eina/eina_test_accessor.c b/src/tests/eina/eina_test_accessor.c
index 734d833205..62e77e06ee 100644
--- a/src/tests/eina/eina_test_accessor.c
+++ b/src/tests/eina/eina_test_accessor.c
@@ -230,7 +230,7 @@ EFL_START_TEST(eina_accessor_list_simple)
}
EFL_END_TEST
-EFL_START_TEST(eina_accessor_carray_simple)
+EFL_START_TEST(eina_accessor_carray_simple_ptr)
{
Eina_Accessor *it;
int data[] = { 6, 9, 42, 1, 7, 1337, 81, 1664 };
@@ -257,11 +257,41 @@ EFL_START_TEST(eina_accessor_carray_simple)
eina_accessor_free(it);
}
EFL_END_TEST
+
+EFL_START_TEST(eina_accessor_carray_simple)
+{
+ Eina_Accessor *it;
+ int data[] = { 6, 9, 42, 1, 7, 1337, 81, 1664 };
+ int *j, c;
+
+ it = EINA_C_ARRAY_ACCESSOR_PTR_NEW(data);
+
+ EINA_ACCESSOR_FOREACH(it, c, j)
+ {
+ ck_assert_int_eq(data[c], *j);
+ }
+
+ fail_if(eina_accessor_data_get(it, 5, (void **)&j) != EINA_TRUE);
+ fail_if(*j != 1337);
+ fail_if(eina_accessor_data_get(it, 3, (void **)&j) != EINA_TRUE);
+ fail_if(*j != 1);
+ fail_if(eina_accessor_data_get(it, 3, (void **)&j) != EINA_TRUE);
+ fail_if(*j != 1);
+ fail_if(eina_accessor_data_get(it, 1, (void **)&j) != EINA_TRUE);
+ fail_if(*j != 9);
+ fail_if(eina_accessor_data_get(it, 5, (void **)&j) != EINA_TRUE);
+ fail_if(*j != 1337);
+
+ eina_accessor_free(it);
+}
+EFL_END_TEST
+
void
eina_test_accessor(TCase *tc)
{
tcase_add_test(tc, eina_accessor_array_simple);
tcase_add_test(tc, eina_accessor_inlist_simple);
tcase_add_test(tc, eina_accessor_list_simple);
+ tcase_add_test(tc, eina_accessor_carray_simple_ptr);
tcase_add_test(tc, eina_accessor_carray_simple);
}