tests: split efl_app promise tests into separate test cases

Summary:
each test case can run in parallel, so this provides a ~300% speedup

ref T6850
Depends on D5904

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6850

Differential Revision: https://phab.enlightenment.org/D5905
This commit is contained in:
Mike Blumenkrantz 2018-04-09 13:37:04 +02:00 committed by Stefan Schmidt
parent 43c420d3d0
commit 99f3f89f24
3 changed files with 29 additions and 9 deletions

View File

@ -51,6 +51,9 @@ static const Efl_Test_Case etc[] = {
{ "Loop_Timer", efl_app_test_efl_loop_timer },
{ "Loop_FD", efl_app_test_efl_loop_fd },
{ "Promise", efl_app_test_promise },
{ "Promise", efl_app_test_promise_2 },
{ "Promise", efl_app_test_promise_3 },
{ "Promise", efl_app_test_promise_safety },
{ NULL, NULL }
};

View File

@ -8,5 +8,8 @@ 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);
void efl_app_test_promise(TCase *tc);
void efl_app_test_promise_2(TCase *tc);
void efl_app_test_promise_3(TCase *tc);
void efl_app_test_promise_safety(TCase *tc);
#endif /* _EFL_APP_SUITE_H */

View File

@ -694,7 +694,7 @@ EFL_START_TEST(efl_test_promise_future_implicit_cancel)
The promise was resolved, but the mainloop is not running.
Since ecore_shutdown() will be called all the futures must be cancelled
*/
ecore_shutdown();
ck_assert_int_eq(ecore_shutdown(), 0);
//All the futures were cancelled at this point
fail_if(cancel_count != CHAIN_SIZE);
//Cancel should not be called, since we called eina_promise_resolve()
@ -1334,28 +1334,42 @@ promise_shutdown(void)
void efl_app_test_promise(TCase *tc)
{
tcase_add_checked_fixture(tc, promise_init, promise_shutdown);
tcase_add_test(tc, efl_test_timeout);
tcase_add_test(tc, efl_test_job);
tcase_add_test(tc, efl_test_idle);
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_race);
tcase_add_test(tc, efl_test_promise_future_ignore_error);
tcase_add_test(tc, efl_test_promise_future_success);
tcase_add_test(tc, efl_test_promise_future_failure);
}
void efl_app_test_promise_2(TCase *tc)
{
tcase_add_checked_fixture(tc, promise_init, promise_shutdown);
tcase_add_test(tc, efl_test_promise_future_chain_no_error);
tcase_add_test(tc, efl_test_promise_future_chain_error);
tcase_add_test(tc, efl_test_promise_future_cancel);
tcase_add_test(tc, efl_test_promise_future_implicit_cancel);
tcase_add_test(tc, efl_test_promise_future_inner_promise);
tcase_add_test(tc, efl_test_promise_future_inner_promise_fail);
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_race);
tcase_add_test(tc, efl_test_promise_future_ignore_error);
}
void efl_app_test_promise_3(TCase *tc)
{
tcase_add_checked_fixture(tc, promise_init, promise_shutdown);
tcase_add_test(tc, efl_test_timeout);
tcase_add_test(tc, efl_test_job);
tcase_add_test(tc, efl_test_idle);
tcase_add_test(tc, efl_test_promise_log);
//FIXME: We should move this to EO tests, however they depend on Ecore...
tcase_add_test(tc, efl_test_promise_eo);
tcase_add_test(tc, efl_test_promise_eo_link);
}
void efl_app_test_promise_safety(TCase *tc)
{
#ifdef EINA_SAFETY_CHECKS
tcase_add_checked_fixture(tc, promise_init, promise_shutdown);
tcase_add_test(tc, efl_test_promise_null);
tcase_add_test(tc, efl_test_promise_reject_resolve_null);
tcase_add_test(tc, efl_test_future_null);