tests: Use EO_CALLBACKS_ARRAY_DEFINE in all tests
authorJean-Philippe Andre <jp.andre@samsung.com>
Thu, 16 Jun 2016 04:01:50 +0000 (13:01 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Thu, 16 Jun 2016 04:10:34 +0000 (13:10 +0900)
This should make them work on Windows, too.

src/tests/emotion/emotion_test_main-eo.c
src/tests/eo/suite/eo_test_general.c

index f5b6702..c5adbe1 100644 (file)
@@ -597,7 +597,7 @@ video_obj_signal_frame_move_cb(void *data EINA_UNUSED, Evas_Object *o, const cha
      }
 }
 
-static const Eo_Callback_Array_Item emotion_object_test_callbacks[] = {
+EO_CALLBACKS_ARRAY_DEFINE(emotion_object_test_callbacks,
        { EMOTION_OBJECT_EVENT_FRAME_DECODE, video_obj_frame_decode_cb },
        { EMOTION_OBJECT_EVENT_FRAME_RESIZE, video_obj_frame_resize_cb },
        { EMOTION_OBJECT_EVENT_LENGTH_CHANGE, video_obj_length_change_cb },
@@ -608,9 +608,8 @@ static const Eo_Callback_Array_Item emotion_object_test_callbacks[] = {
        { EMOTION_OBJECT_EVENT_PROGRESS_CHANGE, video_obj_progress_cb },
        { EMOTION_OBJECT_EVENT_REF_CHANGE, video_obj_ref_cb },
        { EMOTION_OBJECT_EVENT_BUTTON_NUM_CHANGE, video_obj_button_num_cb },
-       { EMOTION_OBJECT_EVENT_BUTTON_CHANGE, video_obj_button_cb },
-       { NULL, NULL }
-};
+       { EMOTION_OBJECT_EVENT_BUTTON_CHANGE, video_obj_button_cb }
+);
 
 static void
 init_video_object(const char *module_filename, const char *filename)
@@ -653,7 +652,7 @@ init_video_object(const char *module_filename, const char *filename)
    edje_obj_size_min_calc(oe, &w, &h);
    efl_gfx_size_set(oe, w, h);
 
-   eo_event_callback_array_add(o, emotion_object_test_callbacks, oe);
+   eo_event_callback_array_add(o, emotion_object_test_callbacks(), oe);
 
    edje_obj_signal_callback_add(oe, "video_control", "play", video_obj_signal_play_cb, o);
    edje_obj_signal_callback_add(oe, "video_control", "pause", video_obj_signal_pause_cb, o);
index ddbe098..d92ce5c 100644 (file)
@@ -151,42 +151,43 @@ Eina_Bool
 _eo_signals_cb_added_deled(void *data, const Eo_Event *event)
 {
    const Eo_Callback_Array_Item *callback_array = event->info;
+   const Eo_Callback_Array_Item *(*callback_data)(void) = data;
 
-   fail_if((callback_array != data) &&
-         (callback_array->func != _eo_signals_cb_added_deled));
+   fail_if((callback_data() != callback_array) &&
+           (callback_array->func != _eo_signals_cb_added_deled));
 
    return EO_CALLBACK_CONTINUE;
 }
 
+EO_CALLBACKS_ARRAY_DEFINE(_eo_signals_callbacks,
+{ EV_A_CHANGED, _eo_signals_a_changed_cb },
+{ EV_A_CHANGED, _eo_signals_a_changed_cb2 },
+{ EV_A_CHANGED, _eo_signals_a_changed_never },
+{ EO_EVENT_DEL, _eo_signals_eo_del_cb });
+
 START_TEST(eo_signals)
 {
    eo_init();
-   static const Eo_Callback_Array_Item callbacks[] = {
-          { EV_A_CHANGED, _eo_signals_a_changed_cb },
-          { EV_A_CHANGED, _eo_signals_a_changed_cb2 },
-          { EV_A_CHANGED, _eo_signals_a_changed_never },
-          { EO_EVENT_DEL, _eo_signals_eo_del_cb },
-          { NULL, NULL }
-   };
+
    Eo *obj = eo_add(SIMPLE_CLASS, NULL);
    Eina_Bool r;
 
-   eo_event_callback_add(obj, EO_EVENT_CALLBACK_ADD, _eo_signals_cb_added_deled, callbacks);
-   r = eo_event_callback_add(obj, EO_EVENT_CALLBACK_DEL, _eo_signals_cb_added_deled, callbacks);
+   eo_event_callback_add(obj, EO_EVENT_CALLBACK_ADD, _eo_signals_cb_added_deled, &_eo_signals_callbacks);
+   r = eo_event_callback_add(obj, EO_EVENT_CALLBACK_DEL, _eo_signals_cb_added_deled, &_eo_signals_callbacks);
    fail_if(!r);
-   eo_event_callback_array_priority_add(obj, callbacks, -100, (void *) 1);
-   eo_event_callback_array_add(obj, callbacks, (void *) 3);
-   r = eo_event_callback_array_priority_add(obj, callbacks, -50, (void *) 2);
+   eo_event_callback_array_priority_add(obj, _eo_signals_callbacks(), -100, (void *) 1);
+   eo_event_callback_array_add(obj, _eo_signals_callbacks(), (void *) 3);
+   r = eo_event_callback_array_priority_add(obj, _eo_signals_callbacks(), -50, (void *) 2);
    fail_if(!r);
    simple_a_set(obj, 1);
    ck_assert_int_eq(_eo_signals_cb_flag, 0x3);
 
-   eo_event_callback_array_del(obj, callbacks, (void *) 1);
-   eo_event_callback_array_del(obj, callbacks, (void *) 2);
-   r = eo_event_callback_array_del(obj, callbacks, (void *) 3);
+   eo_event_callback_array_del(obj, _eo_signals_callbacks(), (void *) 1);
+   eo_event_callback_array_del(obj, _eo_signals_callbacks(), (void *) 2);
+   r = eo_event_callback_array_del(obj, _eo_signals_callbacks(), (void *) 3);
    fail_if(!r);
    /* Try to delete something that doesn't exist. */
-   r = eo_event_callback_array_del(obj, callbacks, (void *) 4);
+   r = eo_event_callback_array_del(obj, _eo_signals_callbacks(), (void *) 4);
    fail_if(r);
    _eo_signals_cb_flag = 0;
    simple_a_set(obj, 1);