forked from enlightenment/efl
ecore_con: use eina_future based timeout for tests.
This commit is contained in:
parent
2e9e751638
commit
7d229efda5
|
@ -97,23 +97,31 @@ _eina_test_safety_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const
|
||||||
} \
|
} \
|
||||||
while (0)
|
while (0)
|
||||||
|
|
||||||
static void
|
static Eina_Value
|
||||||
_timeout(void *data, const Efl_Event *event EINA_UNUSED)
|
_timeout(void *data,
|
||||||
|
const Eina_Value t,
|
||||||
|
const Eina_Future *dead EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Eina_Bool *did = data;
|
Eina_Bool *did = data;
|
||||||
|
|
||||||
|
if (t.type == EINA_VALUE_TYPE_ERROR)
|
||||||
|
return t;
|
||||||
|
|
||||||
*did = EINA_TRUE;
|
*did = EINA_TRUE;
|
||||||
ck_abort_msg("timed out!");
|
ck_abort_msg("timed out!");
|
||||||
|
|
||||||
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LOOP_WITH_TIMEOUT(t) \
|
#define LOOP_WITH_TIMEOUT(t) \
|
||||||
do \
|
do \
|
||||||
{ \
|
{ \
|
||||||
Eina_Bool _did_timeout = EINA_FALSE; \
|
Eina_Bool _did_timeout = EINA_FALSE; \
|
||||||
Efl_Future *_timeout_future = efl_loop_timeout(ecore_main_loop_get(), t, &_did_timeout); \
|
Eina_Future *_timeout_future = efl_loop_Eina_FutureXXX_timeout(ecore_main_loop_get(), t); \
|
||||||
efl_future_then(_timeout_future, _timeout, NULL, NULL, &_did_timeout); \
|
eina_future_then(_timeout_future, _timeout, &_did_timeout); \
|
||||||
mark_point(); \
|
mark_point(); \
|
||||||
ecore_main_loop_begin(); \
|
ecore_main_loop_begin(); \
|
||||||
if (!_did_timeout) efl_future_cancel(_timeout_future); \
|
if (!_did_timeout) eina_future_cancel(_timeout_future); \
|
||||||
else ck_abort_msg("Timed out!"); \
|
else ck_abort_msg("Timed out!"); \
|
||||||
} \
|
} \
|
||||||
while (0)
|
while (0)
|
||||||
|
|
Loading…
Reference in New Issue