tests - eo - found eo_signals test is wrong... amazing it passed before
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Fri, 2 Mar 2018 10:13:44 +0000 (19:13 +0900)
committerWonki Kim <wonki_.kim@samsung.com>
Tue, 10 Apr 2018 11:10:46 +0000 (20:10 +0900)
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...

src/tests/eo/suite/eo_test_general.c

index 18684f1..a1e054c 100644 (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);