tests - eo - found eo_signals test is wrong... amazing it passed before

so it was listening for cb adds and dels... and or del of any cb
except the cb add/del catcher was done.. it would fail...

but ... the test actually added other cbs than this ... like:

   efl_event_callback_array_priority_add(obj, _eo_signals_callbacks(),
-100, (void *) 1);

a while array of cb's:

{ EV_A_CHANGED, _eo_signals_a_changed_cb },
{ EV_A_CHANGED, _eo_signals_a_changed_cb2 },
{ EV_A_CHANGED, _eo_signals_a_changed_never },
{ EFL_EVENT_DEL, _eo_signals_efl_del_cb });

none of which were _eo_signals_cb_added_deled. i am amazed it passed
before...

now switch its checks to check for itself and then check for anything
BUT itself...
This commit is contained in:
Carsten Haitzler 2018-03-02 19:13:44 +09:00
parent 6f31f36aa8
commit 4a97c7d387
1 changed files with 7 additions and 1 deletions

View File

@ -178,12 +178,17 @@ _eo_signals_efl_del_cb(void *_data EINA_UNUSED, const Efl_Event *event EINA_UNUS
_eo_signals_cb_flag |= 0x4;
}
static check_is_deled = 0;
void
_eo_signals_cb_added_deled(void *data, const Efl_Event *event)
{
const Efl_Callback_Array_Item_Full *callback_array = event->info;
fail_if(callback_array->func != _eo_signals_cb_added_deled);
if (check_is_deled)
fail_if(callback_array->func == _eo_signals_cb_added_deled);
else
fail_if(callback_array->func != _eo_signals_cb_added_deled);
}
EFL_CALLBACKS_ARRAY_DEFINE(_eo_signals_callbacks,
@ -202,6 +207,7 @@ START_TEST(eo_signals)
efl_event_callback_add(obj, EFL_EVENT_CALLBACK_ADD, _eo_signals_cb_added_deled, &_eo_signals_callbacks);
r = efl_event_callback_add(obj, EFL_EVENT_CALLBACK_DEL, _eo_signals_cb_added_deled, &_eo_signals_callbacks);
fail_if(!r);
check_is_deled = 1;
efl_event_callback_array_priority_add(obj, _eo_signals_callbacks(), -100, (void *) 1);
efl_event_callback_array_add(obj, _eo_signals_callbacks(), (void *) 3);
r = efl_event_callback_array_priority_add(obj, _eo_signals_callbacks(), -50, (void *) 2);