tests: Use EO_CALLBACKS_ARRAY_DEFINE in all tests

This should make them work on Windows, too.
This commit is contained in:
Jean-Philippe Andre 2016-06-16 13:01:50 +09:00
parent da1e53820b
commit 2d995fdedc
2 changed files with 23 additions and 23 deletions

View 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);

View 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);