diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2019-12-18 17:15:09 +0100 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2019-12-18 21:45:42 +0100 |
commit | 9ccc66b90004a29c0790d58106857dc5e3377976 (patch) | |
tree | adea60e8c455f3d4842565a7db59593b75cc3fc1 /src/tests/eina | |
parent | 52aa2f629f9e63c22d9fa641daf30f9ff8f957ee (diff) | |
download | efl-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.c | 32 |
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); } |