summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric.bail@free.fr>2020-01-22 10:23:53 -0800
committerCedric BAIL <cedric.bail@free.fr>2020-01-31 10:11:32 -0800
commitc7508d3d521b548429c8f00e0018c3565a3c8299 (patch)
treef4c2400044450e5357d08f1174b2ae925726e907
parent373f2ad7974a064daabcc7ba74db8b553ecfc1e0 (diff)
downloadefl-c7508d3d521b548429c8f00e0018c3565a3c8299.tar.gz
eina: add test for eina_future_all_iterator.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D11181
-rw-r--r--src/tests/ecore/efl_app_test_promise.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/tests/ecore/efl_app_test_promise.c b/src/tests/ecore/efl_app_test_promise.c
index e1a74d6ab5..424c278704 100644
--- a/src/tests/ecore/efl_app_test_promise.c
+++ b/src/tests/ecore/efl_app_test_promise.c
@@ -775,6 +775,34 @@ EFL_START_TEST(efl_test_promise_future_all)
}
EFL_END_TEST
+EFL_START_TEST(efl_test_promise_future_all_iterator)
+{
+ Eina_Future *futures[11];
+ Eina_Iterator *it;
+ unsigned int i, futures_called = 0, len = EINA_C_ARRAY_LENGTH(futures);
+
+ fail_if(!ecore_init());
+ for (i = 0; i < len; i++)
+ {
+ Eina_Future *f;
+ if (i % 2 == 0)
+ f = _str_future_get();
+ else
+ f = _int_future_get();
+ fail_if(!f);
+ futures[i] = eina_future_then(f, _future_all_count, &futures_called);
+ fail_if(!futures[i]);
+ }
+
+ it = EINA_C_ARRAY_ITERATOR_NEW(futures);
+ fail_if(!eina_future_then(eina_future_all_iterator(it), _all_cb, &len));
+
+ ecore_main_loop_begin();
+ ecore_shutdown();
+ fail_if(futures_called != len);
+}
+EFL_END_TEST
+
EFL_START_TEST(efl_test_promise_future_race)
{
Race_Ctx ctx = { 0 };
@@ -1446,6 +1474,7 @@ void efl_app_test_promise(TCase *tc)
tcase_add_test(tc, efl_test_promise_future_convert);
tcase_add_test(tc, efl_test_promise_future_easy);
tcase_add_test(tc, efl_test_promise_future_all);
+ tcase_add_test(tc, efl_test_promise_future_all_iterator);
tcase_add_test(tc, efl_test_promise_future_race);
tcase_add_test(tc, efl_test_promise_future_ignore_error);
tcase_add_test(tc, efl_test_promise_future_success);