cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b5f2b695b76726b73d1705b77d656abf22563e4a
commit b5f2b695b76726b73d1705b77d656abf22563e4a Author: Cedric BAIL <ced...@osg.samsung.com> Date: Wed Oct 19 13:40:49 2016 -0700 ecore: test recursive case on efl_future. --- src/tests/ecore/ecore_test_promise.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/tests/ecore/ecore_test_promise.c b/src/tests/ecore/ecore_test_promise.c index 81ce2c2..ffd2300 100644 --- a/src/tests/ecore/ecore_test_promise.c +++ b/src/tests/ecore/ecore_test_promise.c @@ -1125,6 +1125,33 @@ START_TEST(efl_test_future_link) } END_TEST +static Efl_Future *recursive_future = NULL; + +static void +_then_cleanup(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED) +{ + efl_future_cancel(recursive_future); +} + +START_TEST(efl_test_recursive_mess) +{ + Efl_Promise *p; + Future_Ok done = { EINA_FALSE, EINA_FALSE, EINA_FALSE }; + + ecore_init(); + + p = efl_add(EFL_PROMISE_CLASS, ecore_main_loop_get()); + efl_future_use(&recursive_future, efl_promise_future_get(p)); + efl_future_then(recursive_future, _then_cleanup, _cancel, NULL, &done); + + efl_promise_value_set(p, &value[0], NULL); + + efl_del(p); + + ecore_shutdown(); +} +END_TEST + void ecore_test_ecore_promise(TCase *tc) { tcase_add_test(tc, ecore_test_promise); @@ -1155,4 +1182,5 @@ void ecore_test_ecore_promise(TCase *tc) tcase_add_test(tc, efl_test_promise_all); tcase_add_test(tc, efl_test_promise_race); tcase_add_test(tc, efl_test_future_link); + tcase_add_test(tc, efl_test_recursive_mess); } --