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
|
#endif
|
||||||
|
|
||||||
#include <Ecore.h>
|
#include <Ecore.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "ecore_suite.h"
|
#include "ecore_suite.h"
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_timer_cb(void *data)
|
_quit_cb(void *data)
|
||||||
{
|
{
|
||||||
|
Eina_Bool *val = data;
|
||||||
|
*val = EINA_TRUE;
|
||||||
ecore_main_loop_quit();
|
ecore_main_loop_quit();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_dummy_cb(void *data)
|
||||||
|
{
|
||||||
|
return (int)(long)data;
|
||||||
}
|
}
|
||||||
|
|
||||||
START_TEST(ecore_test_ecore_init)
|
START_TEST(ecore_test_ecore_init)
|
||||||
|
@ -26,17 +36,193 @@ END_TEST
|
||||||
|
|
||||||
START_TEST(ecore_test_ecore_main_loop)
|
START_TEST(ecore_test_ecore_main_loop)
|
||||||
{
|
{
|
||||||
Ecore_Timer *timer = NULL;
|
Eina_Bool did = EINA_FALSE;
|
||||||
int ret;
|
Ecore_Timer *timer;
|
||||||
|
int ret;
|
||||||
|
|
||||||
ret = ecore_init();
|
ret = ecore_init();
|
||||||
fail_if(ret != 1);
|
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);
|
fail_if(timer == NULL);
|
||||||
|
|
||||||
ecore_main_loop_begin();
|
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();
|
ret = ecore_shutdown();
|
||||||
fail_if(ret != 0);
|
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_init);
|
||||||
tcase_add_test(tc, ecore_test_ecore_main_loop);
|
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