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);
 }

-- 


Reply via email to