couple of simple positive tests.
This is far from real unit testing, just simple cases are covered, but it's better than nothing. SVN revision: 46477
This commit is contained in:
parent
bb8ede02af
commit
6cd7135e5d
|
@ -3,13 +3,23 @@
|
|||
#endif
|
||||
|
||||
#include <Ecore.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "ecore_suite.h"
|
||||
|
||||
static int
|
||||
_timer_cb(void *data)
|
||||
_quit_cb(void *data)
|
||||
{
|
||||
Eina_Bool *val = data;
|
||||
*val = EINA_TRUE;
|
||||
ecore_main_loop_quit();
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
_dummy_cb(void *data)
|
||||
{
|
||||
return (int)(long)data;
|
||||
}
|
||||
|
||||
START_TEST(ecore_test_ecore_init)
|
||||
|
@ -26,17 +36,193 @@ END_TEST
|
|||
|
||||
START_TEST(ecore_test_ecore_main_loop)
|
||||
{
|
||||
Ecore_Timer *timer = NULL;
|
||||
Eina_Bool did = EINA_FALSE;
|
||||
Ecore_Timer *timer;
|
||||
int ret;
|
||||
|
||||
ret = ecore_init();
|
||||
fail_if(ret != 1);
|
||||
|
||||
timer = ecore_timer_add(0.5, _timer_cb, NULL);
|
||||
timer = ecore_timer_add(0.0, _quit_cb, &did);
|
||||
fail_if(timer == NULL);
|
||||
|
||||
ecore_main_loop_begin();
|
||||
|
||||
fail_if(did == EINA_FALSE);
|
||||
|
||||
ret = ecore_shutdown();
|
||||
fail_if(ret != 0);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(ecore_test_ecore_main_loop_idler)
|
||||
{
|
||||
Eina_Bool did = EINA_FALSE;
|
||||
Ecore_Idler *idler;
|
||||
int ret;
|
||||
|
||||
ret = ecore_init();
|
||||
fail_if(ret != 1);
|
||||
|
||||
idler = ecore_idler_add(_quit_cb, &did);
|
||||
fail_if(idler == NULL);
|
||||
|
||||
ecore_main_loop_begin();
|
||||
|
||||
fail_if(did == EINA_FALSE);
|
||||
|
||||
ret = ecore_shutdown();
|
||||
fail_if(ret != 0);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(ecore_test_ecore_main_loop_idle_enterer)
|
||||
{
|
||||
Eina_Bool did = EINA_FALSE;
|
||||
Ecore_Idle_Enterer *idle_enterer;
|
||||
int ret;
|
||||
|
||||
ret = ecore_init();
|
||||
fail_if(ret != 1);
|
||||
|
||||
idle_enterer = ecore_idle_enterer_add(_quit_cb, &did);
|
||||
fail_if(idle_enterer == NULL);
|
||||
|
||||
ecore_main_loop_begin();
|
||||
|
||||
fail_if(did == EINA_FALSE);
|
||||
|
||||
ret = ecore_shutdown();
|
||||
fail_if(ret != 0);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(ecore_test_ecore_main_loop_idle_exiter)
|
||||
{
|
||||
Eina_Bool did = EINA_FALSE;
|
||||
Ecore_Timer *timer;
|
||||
Ecore_Idle_Exiter *idle_exiter;
|
||||
int ret;
|
||||
|
||||
ret = ecore_init();
|
||||
fail_if(ret != 1);
|
||||
|
||||
/* make system exit idle */
|
||||
timer = ecore_timer_add(0.0, _dummy_cb, (void *)(long)0);
|
||||
fail_if(timer == NULL);
|
||||
|
||||
idle_exiter = ecore_idle_exiter_add(_quit_cb, &did);
|
||||
fail_if(idle_exiter == NULL);
|
||||
|
||||
ecore_main_loop_begin();
|
||||
|
||||
fail_if(did == EINA_FALSE);
|
||||
|
||||
ret = ecore_shutdown();
|
||||
fail_if(ret != 0);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(ecore_test_ecore_main_loop_timer)
|
||||
{
|
||||
Eina_Bool did = EINA_FALSE;
|
||||
Ecore_Timer *timer;
|
||||
double start, end, elapsed;
|
||||
int ret;
|
||||
|
||||
ret = ecore_init();
|
||||
fail_if(ret != 1);
|
||||
|
||||
timer = ecore_timer_add(2.0, _quit_cb, &did);
|
||||
fail_if(timer == NULL);
|
||||
|
||||
start = ecore_time_get();
|
||||
ecore_main_loop_begin();
|
||||
end = ecore_time_get();
|
||||
elapsed = end - start;
|
||||
|
||||
fail_if(did == EINA_FALSE);
|
||||
fail_if(elapsed < 2.0);
|
||||
fail_if(elapsed > 3.0); /* 1 second "error margin" */
|
||||
|
||||
ret = ecore_shutdown();
|
||||
fail_if(ret != 0);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
static int
|
||||
_fd_handler_cb(void *data, Ecore_Fd_Handler *handler __UNUSED__)
|
||||
{
|
||||
Eina_Bool *val = data;
|
||||
*val = EINA_TRUE;
|
||||
ecore_main_loop_quit();
|
||||
return 0;
|
||||
}
|
||||
|
||||
START_TEST(ecore_test_ecore_main_loop_fd_handler)
|
||||
{
|
||||
Eina_Bool did = EINA_FALSE;
|
||||
Ecore_Fd_Handler *fd_handler;
|
||||
int comm[2];
|
||||
int ret;
|
||||
|
||||
ret = ecore_init();
|
||||
fail_if(ret != 1);
|
||||
|
||||
ret = pipe(comm);
|
||||
fail_if(ret != 0);
|
||||
|
||||
fd_handler = ecore_main_fd_handler_add
|
||||
(comm[0], ECORE_FD_READ, _fd_handler_cb, &did, NULL, NULL);
|
||||
fail_if(fd_handler == NULL);
|
||||
|
||||
ret = write(comm[1], &did, 1);
|
||||
fail_if(ret != 1);
|
||||
|
||||
ecore_main_loop_begin();
|
||||
|
||||
close(comm[0]);
|
||||
close(comm[1]);
|
||||
|
||||
fail_if(did == EINA_FALSE);
|
||||
|
||||
ret = ecore_shutdown();
|
||||
fail_if(ret != 0);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
static int
|
||||
_event_handler_cb(void *data, int type __UNUSED__, void *event __UNUSED__)
|
||||
{
|
||||
Eina_Bool *val = data;
|
||||
*val = EINA_TRUE;
|
||||
ecore_main_loop_quit();
|
||||
return 0;
|
||||
}
|
||||
|
||||
START_TEST(ecore_test_ecore_main_loop_event)
|
||||
{
|
||||
Eina_Bool did = EINA_FALSE;
|
||||
Ecore_Event_Handler *handler;
|
||||
Ecore_Event *event;
|
||||
int ret, type;
|
||||
|
||||
ret = ecore_init();
|
||||
fail_if(ret != 1);
|
||||
|
||||
type = ecore_event_type_new();
|
||||
fail_if(type < 1);
|
||||
|
||||
handler = ecore_event_handler_add(type, _event_handler_cb, &did);
|
||||
fail_if(handler == NULL);
|
||||
|
||||
event = ecore_event_add(type, NULL, NULL, NULL);
|
||||
fail_if(event == NULL);
|
||||
|
||||
ecore_main_loop_begin();
|
||||
|
||||
fail_if(did == EINA_FALSE);
|
||||
|
||||
ret = ecore_shutdown();
|
||||
fail_if(ret != 0);
|
||||
}
|
||||
|
@ -46,4 +232,10 @@ void ecore_test_ecore(TCase *tc)
|
|||
{
|
||||
tcase_add_test(tc, ecore_test_ecore_init);
|
||||
tcase_add_test(tc, ecore_test_ecore_main_loop);
|
||||
tcase_add_test(tc, ecore_test_ecore_main_loop_idler);
|
||||
tcase_add_test(tc, ecore_test_ecore_main_loop_idle_enterer);
|
||||
tcase_add_test(tc, ecore_test_ecore_main_loop_idle_exiter);
|
||||
tcase_add_test(tc, ecore_test_ecore_main_loop_timer);
|
||||
tcase_add_test(tc, ecore_test_ecore_main_loop_fd_handler);
|
||||
tcase_add_test(tc, ecore_test_ecore_main_loop_event);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue