tests: split ecore_test_ecore_main_loop_poller_add_del into separate tests

Summary:
unit tests should verify only small pieces of functionality to ensure
that they are testing what they claim to be testing

fix T6852
Depends on D5882

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6852

Differential Revision: https://phab.enlightenment.org/D5883
This commit is contained in:
Mike Blumenkrantz 2018-04-09 13:36:55 +02:00 committed by Stefan Schmidt
parent 853e2c43ca
commit a995a0c0fe
1 changed files with 56 additions and 36 deletions

View File

@ -20,7 +20,7 @@ static Eina_Bool
_quit_cb(void *data)
{
Eina_Bool *val = data;
*val = EINA_TRUE;
if (val) *val = EINA_TRUE;
ecore_main_loop_quit();
return EINA_FALSE;
}
@ -717,56 +717,74 @@ Eina_Bool _poller_handler(void *data)
return ECORE_CALLBACK_RENEW;
}
Eina_Bool _poller_loop(void *data)
static Eina_Bool
_poller_loop_add(void *data EINA_UNUSED)
{
int *res = data;
static Ecore_Poller *poll_ptr = NULL;
static int count = 0;
switch (count)
{
case 2:
poll_ptr = ecore_poller_add(ECORE_POLLER_CORE, 2, _poller_handler, res);
break;
case 6:
ecore_poller_poller_interval_set(poll_ptr, 1);
break;
case 10:
ecore_poller_del(poll_ptr);
break;
default:
// do nothing
break;
}
count++;
ecore_poller_add(ECORE_POLLER_CORE, 1, _quit_cb, NULL);
return ECORE_CALLBACK_RENEW;
}
EFL_START_TEST(ecore_test_ecore_main_loop_poller_add_del)
static Eina_Bool
_poller_loop_fail(void *data EINA_UNUSED)
{
int count_res = 0;
ecore_main_loop_quit();
ck_abort();
return ECORE_CALLBACK_RENEW;
}
Eina_Bool did = EINA_FALSE;
static Eina_Bool
_poller_loop_del(void *data)
{
static int count = 0;
if (count++ == 0)
ecore_poller_del(data);
else
ecore_main_loop_quit();
return ECORE_CALLBACK_RENEW;
}
static Eina_Bool
_poller_loop_modify(void *data)
{
ecore_poller_poller_interval_set(data, 1);
return EINA_FALSE;
}
EFL_START_TEST(ecore_test_ecore_main_loop_poller_add)
{
/* Create renewable main poller */
Ecore_Poller *poll_ptr = ecore_poller_add(ECORE_POLLER_CORE, 1, _poller_loop, &count_res);
/* One time processed poller */
ecore_poller_add(ECORE_POLLER_CORE, 16, _quit_cb, &did);
Ecore_Poller *poll_ptr = ecore_poller_add(ECORE_POLLER_CORE, 1, _poller_loop_add, NULL);
/* Enter main loop and wait for quit*/
ecore_main_loop_begin();
fprintf(stderr, "count_res: %i\n", count_res);
/* Validation call counter */
fail_if(6 != count_res);
/* Destroy renewable main poller */
ecore_poller_del(poll_ptr);
}
EFL_END_TEST
fail_if(did == EINA_FALSE);
EFL_START_TEST(ecore_test_ecore_main_loop_poller_del)
{
/* Create renewable main poller */
Ecore_Poller *poller = ecore_poller_add(ECORE_POLLER_CORE, 2, _poller_loop_fail, NULL);
ecore_poller_add(ECORE_POLLER_CORE, 1, _poller_loop_del, poller);
/* Enter main loop and wait for quit*/
ecore_main_loop_begin();
}
EFL_END_TEST
EFL_START_TEST(ecore_test_ecore_main_loop_poller_modify)
{
/* Create renewable main poller */
Ecore_Poller *poller = ecore_poller_add(ECORE_POLLER_CORE, 4, _quit_cb, NULL);
ecore_poller_add(ECORE_POLLER_CORE, 1, _poller_loop_modify, poller);
ecore_poller_add(ECORE_POLLER_CORE, 4, _poller_loop_fail, NULL);
/* Enter main loop and wait for quit*/
ecore_main_loop_begin();
}
EFL_END_TEST
@ -789,7 +807,9 @@ void ecore_test_ecore(TCase *tc)
#endif
tcase_add_test(tc, ecore_test_ecore_app);
tcase_add_test(tc, ecore_test_ecore_main_loop_poller);
tcase_add_test(tc, ecore_test_ecore_main_loop_poller_add_del);
tcase_add_test(tc, ecore_test_ecore_main_loop_poller_add);
tcase_add_test(tc, ecore_test_ecore_main_loop_poller_del);
tcase_add_test(tc, ecore_test_ecore_main_loop_poller_modify);
tcase_add_test(tc, ecore_test_efl_loop_fd);
tcase_add_test(tc, ecore_test_efl_loop_fd_lifecycle);
}