forked from enlightenment/efl
eina: add test cases for various eina_inarray functions
Summary: Added test cases for eina_inarray_search, eina_inarray_search_sorted, eina_inarray_foreach_remove and other functions Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com> Reviewers: cedric Reviewed By: cedric Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2504 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This commit is contained in:
parent
6b702af161
commit
c3a644acff
|
@ -389,6 +389,110 @@ START_TEST(eina_inarray_test_itr)
|
|||
}
|
||||
END_TEST
|
||||
|
||||
int
|
||||
cmp(const void *a, const void *b)
|
||||
{
|
||||
return *(int *)a - *(int *)b;
|
||||
}
|
||||
|
||||
int
|
||||
compare(const void *a, const void *b)
|
||||
{
|
||||
return *(int *)a > *(int *)b;
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
match_cb(const void *array EINA_UNUSED, void *p, void *user_data)
|
||||
{
|
||||
int *member = p;
|
||||
int *i = user_data;
|
||||
|
||||
if (*i == *member)
|
||||
return EINA_TRUE;
|
||||
else
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
START_TEST(eina_inarray_test_search)
|
||||
{
|
||||
Eina_Inarray *iarr;
|
||||
int i, ret, temp=92, ret1;
|
||||
int arr[] = {91, 95, 97, 93, 92, 94};
|
||||
int arr_size = sizeof(arr)/sizeof(arr[0]);
|
||||
unsigned int curr_len;
|
||||
Eina_Bool rval;
|
||||
|
||||
eina_init();
|
||||
|
||||
iarr = eina_inarray_new(sizeof(int), 0);
|
||||
|
||||
//search in empty array
|
||||
ret = eina_inarray_search(iarr, &temp, cmp);
|
||||
fail_if(ret != -1);
|
||||
|
||||
//search in single element array
|
||||
temp = 91;
|
||||
eina_inarray_push(iarr, &arr[0]);
|
||||
ret = eina_inarray_search(iarr, &temp, cmp);
|
||||
fail_if(ret != 0);
|
||||
|
||||
temp = 92;
|
||||
ret = eina_inarray_search(iarr, &temp, cmp);
|
||||
fail_if(ret != -1);
|
||||
|
||||
for (i = 1; i < arr_size; ++i)
|
||||
{
|
||||
ret = eina_inarray_push(iarr, &arr[i]);
|
||||
fail_unless(ret == i);
|
||||
}
|
||||
temp = 92;
|
||||
ret = eina_inarray_search(iarr, &temp, cmp);
|
||||
fail_if(ret != 4);
|
||||
|
||||
temp = 100;
|
||||
ret = eina_inarray_search(iarr, &temp, cmp);
|
||||
fail_if(ret != -1);
|
||||
|
||||
rval = eina_inarray_replace_at(iarr, 3, &temp);
|
||||
fail_if(rval != EINA_TRUE);
|
||||
ret = eina_inarray_search(iarr, &temp, cmp);
|
||||
fail_if(ret != 3);
|
||||
|
||||
rval = eina_inarray_replace_at(iarr, arr_size+1, &temp);
|
||||
fail_if(rval != EINA_FALSE);
|
||||
|
||||
ret = eina_inarray_remove(iarr, &temp);
|
||||
fail_if(ret != 3);
|
||||
|
||||
temp = 101;
|
||||
ret = eina_inarray_remove(iarr, &temp);
|
||||
fail_if(ret != -1);
|
||||
|
||||
eina_inarray_sort(iarr, compare);
|
||||
|
||||
temp = 92;
|
||||
ret = eina_inarray_search(iarr, &temp, cmp);
|
||||
ret1 = eina_inarray_search_sorted(iarr, &temp, cmp);
|
||||
fail_if(ret != ret1);
|
||||
|
||||
temp = 100;
|
||||
ret = eina_inarray_search(iarr, &temp, cmp);
|
||||
ret1 = eina_inarray_search_sorted(iarr, &temp, cmp);
|
||||
fail_if(ret != ret1);
|
||||
|
||||
temp = 105;
|
||||
ret = eina_inarray_push(iarr, &temp);
|
||||
ret = eina_inarray_push(iarr, &temp);
|
||||
ret = eina_inarray_push(iarr, &temp);
|
||||
curr_len = iarr->len;
|
||||
rval = eina_inarray_foreach_remove(iarr, match_cb, &temp);
|
||||
fail_if(iarr->len != curr_len-3);
|
||||
|
||||
eina_inarray_free(iarr);
|
||||
eina_shutdown();
|
||||
}
|
||||
END_TEST
|
||||
|
||||
void
|
||||
eina_test_inarray(TCase *tc)
|
||||
{
|
||||
|
@ -398,4 +502,5 @@ eina_test_inarray(TCase *tc)
|
|||
tcase_add_test(tc, eina_inarray_test_sort);
|
||||
tcase_add_test(tc, eina_inarray_test_reverse);
|
||||
tcase_add_test(tc, eina_inarray_test_itr);
|
||||
tcase_add_test(tc, eina_inarray_test_search);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue