8 #include "ecore_suite.h"
13 Eina_Bool *val = data;
15 ecore_main_loop_quit();
22 return (int)(long)data;
25 START_TEST(ecore_test_ecore_init)
32 ret = ecore_shutdown();
37 START_TEST(ecore_test_ecore_main_loop)
39 Eina_Bool did = EINA_FALSE;
46 timer = ecore_timer_add(0.0, _quit_cb, &did);
47 fail_if(timer == NULL);
49 ecore_main_loop_begin();
51 fail_if(did == EINA_FALSE);
53 ret = ecore_shutdown();
58 START_TEST(ecore_test_ecore_main_loop_idler)
60 Eina_Bool did = EINA_FALSE;
67 idler = ecore_idler_add(_quit_cb, &did);
68 fail_if(idler == NULL);
70 ecore_main_loop_begin();
72 fail_if(did == EINA_FALSE);
74 ret = ecore_shutdown();
79 START_TEST(ecore_test_ecore_main_loop_idle_enterer)
81 Eina_Bool did = EINA_FALSE;
82 Ecore_Idle_Enterer *idle_enterer;
88 idle_enterer = ecore_idle_enterer_add(_quit_cb, &did);
89 fail_if(idle_enterer == NULL);
91 ecore_main_loop_begin();
93 fail_if(did == EINA_FALSE);
95 ret = ecore_shutdown();
100 START_TEST(ecore_test_ecore_main_loop_idle_exiter)
102 Eina_Bool did = EINA_FALSE;
104 Ecore_Idle_Exiter *idle_exiter;
110 /* make system exit idle */
111 timer = ecore_timer_add(0.0, _dummy_cb, (void *)(long)0);
112 fail_if(timer == NULL);
114 idle_exiter = ecore_idle_exiter_add(_quit_cb, &did);
115 fail_if(idle_exiter == NULL);
117 ecore_main_loop_begin();
119 fail_if(did == EINA_FALSE);
121 ret = ecore_shutdown();
126 START_TEST(ecore_test_ecore_main_loop_timer)
128 Eina_Bool did = EINA_FALSE;
130 double start, end, elapsed;
136 timer = ecore_timer_add(2.0, _quit_cb, &did);
137 fail_if(timer == NULL);
139 start = ecore_time_get();
140 ecore_main_loop_begin();
141 end = ecore_time_get();
142 elapsed = end - start;
144 fail_if(did == EINA_FALSE);
145 fail_if(elapsed < 2.0);
146 fail_if(elapsed > 3.0); /* 1 second "error margin" */
148 ret = ecore_shutdown();
154 _fd_handler_cb(void *data, Ecore_Fd_Handler *handler __UNUSED__)
156 Eina_Bool *val = data;
158 ecore_main_loop_quit();
162 START_TEST(ecore_test_ecore_main_loop_fd_handler)
164 Eina_Bool did = EINA_FALSE;
165 Ecore_Fd_Handler *fd_handler;
175 fd_handler = ecore_main_fd_handler_add
176 (comm[0], ECORE_FD_READ, _fd_handler_cb, &did, NULL, NULL);
177 fail_if(fd_handler == NULL);
179 ret = write(comm[1], &did, 1);
182 ecore_main_loop_begin();
187 fail_if(did == EINA_FALSE);
189 ret = ecore_shutdown();
195 _event_handler_cb(void *data, int type __UNUSED__, void *event __UNUSED__)
197 Eina_Bool *val = data;
199 ecore_main_loop_quit();
203 START_TEST(ecore_test_ecore_main_loop_event)
205 Eina_Bool did = EINA_FALSE;
206 Ecore_Event_Handler *handler;
213 type = ecore_event_type_new();
216 handler = ecore_event_handler_add(type, _event_handler_cb, &did);
217 fail_if(handler == NULL);
219 event = ecore_event_add(type, NULL, NULL, NULL);
220 fail_if(event == NULL);
222 ecore_main_loop_begin();
224 fail_if(did == EINA_FALSE);
226 ret = ecore_shutdown();
231 void ecore_test_ecore(TCase *tc)
233 tcase_add_test(tc, ecore_test_ecore_init);
234 tcase_add_test(tc, ecore_test_ecore_main_loop);
235 tcase_add_test(tc, ecore_test_ecore_main_loop_idler);
236 tcase_add_test(tc, ecore_test_ecore_main_loop_idle_enterer);
237 tcase_add_test(tc, ecore_test_ecore_main_loop_idle_exiter);
238 tcase_add_test(tc, ecore_test_ecore_main_loop_timer);
239 tcase_add_test(tc, ecore_test_ecore_main_loop_fd_handler);
240 tcase_add_test(tc, ecore_test_ecore_main_loop_event);