raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=4a97c7d387baecff848c18f2c90b52962ec882d9

commit 4a97c7d387baecff848c18f2c90b52962ec882d9
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Fri Mar 2 19:13:44 2018 +0900

    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...
---
 src/tests/eo/suite/eo_test_general.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/tests/eo/suite/eo_test_general.c 
b/src/tests/eo/suite/eo_test_general.c
index 18684f1ad2..a1e054c6ab 100644
--- a/src/tests/eo/suite/eo_test_general.c
+++ b/src/tests/eo/suite/eo_test_general.c
@@ -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);

-- 


Reply via email to