diff --git a/src/Makefile_Ecore.am b/src/Makefile_Ecore.am index 1915225c59..b00095775d 100644 --- a/src/Makefile_Ecore.am +++ b/src/Makefile_Ecore.am @@ -330,6 +330,7 @@ tests_ecore_ecore_suite_DEPENDENCIES = \ tests_ecore_efl_app_suite_SOURCES = \ tests/ecore/efl_app_test_loop.c \ +tests/ecore/efl_app_test_loop_fd.c \ tests/ecore/efl_app_test_loop_timer.c \ tests/ecore/efl_app_suite.c \ tests/ecore/efl_app_suite.h diff --git a/src/tests/ecore/ecore_test_ecore.c b/src/tests/ecore/ecore_test_ecore.c index 3f68225956..7297b665a2 100644 --- a/src/tests/ecore/ecore_test_ecore.c +++ b/src/tests/ecore/ecore_test_ecore.c @@ -224,92 +224,6 @@ EFL_START_TEST(ecore_test_ecore_main_loop_fd_handler_valid_flags) } EFL_END_TEST -static void -_eo_read_cb(void *data, const Efl_Event *info EINA_UNUSED) -{ - Eina_Bool *did = data; - - *did = EINA_TRUE; - ecore_main_loop_quit(); -} - -EFL_START_TEST(ecore_test_efl_loop_fd) -{ - Eina_Bool did = EINA_FALSE; - Eo *fd; - int comm[2]; - int ret; - - ret = pipe(comm); - fail_if(ret != 0); - - fd = efl_add(EFL_LOOP_FD_CLASS, efl_main_loop_get(), - efl_loop_fd_set(efl_added, comm[0]), - efl_event_callback_add(efl_added, EFL_LOOP_FD_EVENT_READ, _eo_read_cb, &did)); - fail_if(fd == NULL); - - ret = write(comm[1], &did, 1); - fail_if(ret != 1); - - ecore_main_loop_begin(); - - close(comm[0]); - close(comm[1]); - - fail_if(did == EINA_FALSE); - -} -EFL_END_TEST - -static void -_efl_del_cb(void *data, const Efl_Event *ev EINA_UNUSED) -{ - Eina_Bool *dead = data; - - *dead = EINA_TRUE; -} - -EFL_START_TEST(ecore_test_efl_loop_fd_lifecycle) -{ - Eina_Bool did = EINA_FALSE; - Eina_Bool dead = EINA_FALSE; - Eo *fd; - int comm[2]; - int ret; - - efl_object_init(); - - ret = pipe(comm); - fail_if(ret != 0); - - fd = efl_add(EFL_LOOP_FD_CLASS, efl_main_loop_get(), - efl_loop_fd_set(efl_added, comm[0]), - efl_event_callback_add(efl_added, EFL_LOOP_FD_EVENT_READ, _eo_read_cb, &did), - efl_event_callback_add(efl_added, EFL_EVENT_DEL, _efl_del_cb, &dead)); - efl_ref(fd); - fail_if(fd == NULL); - - ret = write(comm[1], &did, 1); - fail_if(ret != 1); - - ecore_main_loop_begin(); - - close(comm[0]); - close(comm[1]); - - fail_if(did == EINA_FALSE); - fail_if(dead == EINA_TRUE); - - ecore_shutdown(); - ecore_init(); - - efl_del(fd); - fail_if(dead == EINA_FALSE); - - efl_object_shutdown(); -} -EFL_END_TEST - EFL_START_TEST(ecore_test_ecore_main_loop_fd_handler_activate_modify) { Eina_Bool did = EINA_FALSE; @@ -788,6 +702,4 @@ void ecore_test_ecore(TCase *tc) 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); } diff --git a/src/tests/ecore/efl_app_suite.c b/src/tests/ecore/efl_app_suite.c index f79e5f8b80..c92aa3ab7f 100644 --- a/src/tests/ecore/efl_app_suite.c +++ b/src/tests/ecore/efl_app_suite.c @@ -49,6 +49,7 @@ static const Efl_Test_Case etc[] = { { "App", efl_test_efl_app }, { "Loop", efl_app_test_efl_loop }, { "Loop_Timer", efl_app_test_efl_loop_timer }, + { "Loop_FD", efl_app_test_efl_loop_fd }, { NULL, NULL } }; diff --git a/src/tests/ecore/efl_app_suite.h b/src/tests/ecore/efl_app_suite.h index 391231dd32..b4fce48303 100644 --- a/src/tests/ecore/efl_app_suite.h +++ b/src/tests/ecore/efl_app_suite.h @@ -5,6 +5,7 @@ #include "../efl_check.h" void efl_app_test_efl_app(TCase *tc); void efl_app_test_efl_loop(TCase *tc); +void efl_app_test_efl_loop_fd(TCase *tc); void efl_app_test_efl_loop_timer(TCase *tc); #endif /* _EFL_APP_SUITE_H */ diff --git a/src/tests/ecore/efl_app_test_loop_fd.c b/src/tests/ecore/efl_app_test_loop_fd.c new file mode 100644 index 0000000000..4403933aa8 --- /dev/null +++ b/src/tests/ecore/efl_app_test_loop_fd.c @@ -0,0 +1,97 @@ +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#define EFL_NOLEGACY_API_SUPPORT +#include +#include +#include "efl_app_suite.h" +#include "../efl_check.h" + + +static void +_eo_read_cb(void *data, const Efl_Event *info EINA_UNUSED) +{ + Eina_Bool *did = data; + + *did = EINA_TRUE; + ecore_main_loop_quit(); +} + +EFL_START_TEST(ecore_test_efl_loop_fd) +{ + Eina_Bool did = EINA_FALSE; + Eo *fd; + int comm[2]; + int ret; + + ret = pipe(comm); + fail_if(ret != 0); + + fd = efl_add(EFL_LOOP_FD_CLASS, efl_main_loop_get(), + efl_loop_fd_set(efl_added, comm[0]), + efl_event_callback_add(efl_added, EFL_LOOP_FD_EVENT_READ, _eo_read_cb, &did)); + fail_if(fd == NULL); + + ret = write(comm[1], &did, 1); + fail_if(ret != 1); + + efl_loop_begin(efl_main_loop_get()); + + close(comm[0]); + close(comm[1]); + + fail_if(did == EINA_FALSE); + +} +EFL_END_TEST + +static void +_efl_del_cb(void *data, const Efl_Event *ev EINA_UNUSED) +{ + Eina_Bool *dead = data; + + *dead = EINA_TRUE; +} + +EFL_START_TEST(ecore_test_efl_loop_fd_lifecycle) +{ + Eina_Bool did = EINA_FALSE; + Eina_Bool dead = EINA_FALSE; + Eo *fd; + int comm[2]; + int ret; + + ret = pipe(comm); + fail_if(ret != 0); + + fd = efl_add(EFL_LOOP_FD_CLASS, efl_main_loop_get(), + efl_loop_fd_set(efl_added, comm[0]), + efl_event_callback_add(efl_added, EFL_LOOP_FD_EVENT_READ, _eo_read_cb, &did), + efl_event_callback_add(efl_added, EFL_EVENT_DEL, _efl_del_cb, &dead)); + fail_if(fd == NULL); + + ret = write(comm[1], &did, 1); + fail_if(ret != 1); + + efl_loop_begin(efl_main_loop_get()); + + close(comm[0]); + close(comm[1]); + + fail_if(did == EINA_FALSE); + fail_if(dead == EINA_TRUE); + + efl_del(fd); + fail_if(dead == EINA_FALSE); +} +EFL_END_TEST + + +void efl_app_test_efl_loop_fd(TCase *tc) +{ + tcase_add_test(tc, ecore_test_efl_loop_fd); + tcase_add_test(tc, ecore_test_efl_loop_fd_lifecycle); +}