tests: split ecore poller tests into separate file

Summary:
ref T6850
Depends on D5900

Reviewers: stefan_schmidt

Subscribers: cedric

Maniphest Tasks: T6850

Differential Revision: https://phab.enlightenment.org/D5901
This commit is contained in:
Mike Blumenkrantz 2018-04-09 13:37:02 +02:00 committed by Stefan Schmidt
parent 88a6a3c769
commit 1bd52cc116
5 changed files with 171 additions and 144 deletions

View File

@ -277,6 +277,7 @@ tests/ecore/ecore_suite.c \
tests/ecore/ecore_test_ecore.c \
tests/ecore/ecore_test_ecore_imf.c \
tests/ecore/ecore_test_idle.c \
tests/ecore/ecore_test_poller.c \
tests/ecore/ecore_test_timer.c \
tests/ecore/ecore_test_ecore_evas.c \
tests/ecore/ecore_test_animator.c \

View File

@ -9,6 +9,7 @@
static const Efl_Test_Case etc[] = {
{ "Ecore", ecore_test_ecore },
{ "idle", ecore_test_ecore_idle },
{ "poller", ecore_test_ecore_idle },
#if HAVE_ECORE_X
{ "Ecore_X", ecore_test_ecore_x },
#endif

View File

@ -5,6 +5,7 @@
#include "../efl_check.h"
void ecore_test_ecore(TCase *tc);
void ecore_test_ecore_idle(TCase *tc);
void ecore_test_ecore_poller(TCase *tc);
void ecore_test_ecore_x(TCase *tc);
void ecore_test_ecore_imf(TCase *tc);
void ecore_test_ecore_audio(TCase *tc);

View File

@ -10,9 +10,6 @@
#include "ecore_suite.h"
#define FP_ERR (0.0000001)
#define CHECK_FP(a, b) ((a - b) < FP_ERR)
#define ECORE_EVENT_CUSTOM_1 1
#define ECORE_EVENT_CUSTOM_2 2
@ -471,143 +468,6 @@ EFL_START_TEST(ecore_test_ecore_app)
}
EFL_END_TEST
Eina_Bool _poller_cb(void *data)
{
int *val = data;
(*val)++;
return ECORE_CALLBACK_RENEW;
}
EFL_START_TEST(ecore_test_ecore_main_loop_poller)
{
Ecore_Poller *poll1_ptr = NULL;
int poll1_interval = 1;
int poll1_counter = 0;
Ecore_Poller *poll2_ptr = NULL;
int poll2_interval = 2;
int poll2_counter = 0;
Ecore_Poller *poll3_ptr = NULL;
int poll3_interval = 4;
int poll3_counter = 0;
Eina_Bool did = EINA_FALSE;
/* Check ECORE_POLLER_CORE poll interval */
double interval = 0.05;
ecore_poller_poll_interval_set(ECORE_POLLER_CORE, interval);
fail_unless(CHECK_FP(ecore_poller_poll_interval_get(ECORE_POLLER_CORE), interval));
/* Create three pollers with different poller interval */
poll1_ptr = ecore_poller_add(ECORE_POLLER_CORE, poll1_interval, _poller_cb, &poll1_counter);
poll2_ptr = ecore_poller_add(ECORE_POLLER_CORE, poll2_interval, _poller_cb, &poll2_counter);
poll3_ptr = ecore_poller_add(ECORE_POLLER_CORE, poll3_interval, _poller_cb, &poll3_counter);
/* Add one time processed quit poller */
ecore_poller_add(ECORE_POLLER_CORE, 8, _quit_cb, &did);
/* Enter main loop and wait 8 intervals for quit */
ecore_main_loop_begin();
/* Check each poller poll interval */
fail_if(ecore_poller_poller_interval_get(poll1_ptr) != poll1_interval);
fail_if(ecore_poller_poller_interval_get(poll2_ptr) != poll2_interval);
fail_if(ecore_poller_poller_interval_get(poll3_ptr) != poll3_interval);
/* Check each poller call counter */
ck_assert_int_eq(8, poll1_counter);
ck_assert_int_eq(4, poll2_counter);
ck_assert_int_eq(2, poll3_counter);
/* Destroy renewable pollers */
ecore_poller_del(poll3_ptr);
ecore_poller_del(poll2_ptr);
ecore_poller_del(poll1_ptr);
fail_if(did == EINA_FALSE);
}
EFL_END_TEST
Eina_Bool _poller_handler(void *data)
{
int *val = data;
(*val)++;
return ECORE_CALLBACK_RENEW;
}
static Eina_Bool
_poller_loop_add(void *data EINA_UNUSED)
{
ecore_poller_add(ECORE_POLLER_CORE, 1, _quit_cb, NULL);
return ECORE_CALLBACK_RENEW;
}
static Eina_Bool
_poller_loop_fail(void *data EINA_UNUSED)
{
ecore_main_loop_quit();
ck_abort();
return ECORE_CALLBACK_RENEW;
}
static Eina_Bool
_poller_loop_del(void *data)
{
static int count = 0;
if (count++ == 0)
ecore_poller_del(data);
else
ecore_main_loop_quit();
return ECORE_CALLBACK_RENEW;
}
static Eina_Bool
_poller_loop_modify(void *data)
{
ecore_poller_poller_interval_set(data, 1);
return EINA_FALSE;
}
EFL_START_TEST(ecore_test_ecore_main_loop_poller_add)
{
/* Create renewable main poller */
Ecore_Poller *poll_ptr = ecore_poller_add(ECORE_POLLER_CORE, 1, _poller_loop_add, NULL);
/* Enter main loop and wait for quit*/
ecore_main_loop_begin();
/* Destroy renewable main poller */
ecore_poller_del(poll_ptr);
}
EFL_END_TEST
EFL_START_TEST(ecore_test_ecore_main_loop_poller_del)
{
/* Create renewable main poller */
Ecore_Poller *poller = ecore_poller_add(ECORE_POLLER_CORE, 2, _poller_loop_fail, NULL);
ecore_poller_add(ECORE_POLLER_CORE, 1, _poller_loop_del, poller);
/* Enter main loop and wait for quit*/
ecore_main_loop_begin();
}
EFL_END_TEST
EFL_START_TEST(ecore_test_ecore_main_loop_poller_modify)
{
/* Create renewable main poller */
Ecore_Poller *poller = ecore_poller_add(ECORE_POLLER_CORE, 4, _quit_cb, NULL);
ecore_poller_add(ECORE_POLLER_CORE, 1, _poller_loop_modify, poller);
ecore_poller_add(ECORE_POLLER_CORE, 4, _poller_loop_fail, NULL);
/* Enter main loop and wait for quit*/
ecore_main_loop_begin();
}
EFL_END_TEST
void ecore_test_ecore(TCase *tc)
{
tcase_add_test(tc, ecore_test_ecore_init);
@ -621,8 +481,4 @@ void ecore_test_ecore(TCase *tc)
tcase_add_test(tc, ecore_test_ecore_main_loop_event_recursive);
#endif
tcase_add_test(tc, ecore_test_ecore_app);
tcase_add_test(tc, ecore_test_ecore_main_loop_poller);
tcase_add_test(tc, ecore_test_ecore_main_loop_poller_add);
tcase_add_test(tc, ecore_test_ecore_main_loop_poller_del);
tcase_add_test(tc, ecore_test_ecore_main_loop_poller_modify);
}

View File

@ -0,0 +1,168 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#include <unistd.h>
#include <Eina.h>
#include <Ecore.h>
#include "ecore_suite.h"
#define FP_ERR (0.0000001)
#define CHECK_FP(a, b) ((a - b) < FP_ERR)
static Eina_Bool
_quit_cb(void *data)
{
Eina_Bool *val = data;
if (val) *val = EINA_TRUE;
ecore_main_loop_quit();
return EINA_FALSE;
}
Eina_Bool _poller_handler(void *data)
{
int *val = data;
(*val)++;
return ECORE_CALLBACK_RENEW;
}
static Eina_Bool
_poller_loop_add(void *data EINA_UNUSED)
{
ecore_poller_add(ECORE_POLLER_CORE, 1, _quit_cb, NULL);
return ECORE_CALLBACK_RENEW;
}
static Eina_Bool
_poller_loop_fail(void *data EINA_UNUSED)
{
ecore_main_loop_quit();
ck_abort();
return ECORE_CALLBACK_RENEW;
}
static Eina_Bool
_poller_loop_del(void *data)
{
static int count = 0;
if (count++ == 0)
ecore_poller_del(data);
else
ecore_main_loop_quit();
return ECORE_CALLBACK_RENEW;
}
static Eina_Bool
_poller_loop_modify(void *data)
{
ecore_poller_poller_interval_set(data, 1);
return EINA_FALSE;
}
EFL_START_TEST(ecore_test_ecore_main_loop_poller_add)
{
/* Create renewable main poller */
Ecore_Poller *poll_ptr = ecore_poller_add(ECORE_POLLER_CORE, 1, _poller_loop_add, NULL);
/* Enter main loop and wait for quit*/
ecore_main_loop_begin();
/* Destroy renewable main poller */
ecore_poller_del(poll_ptr);
}
EFL_END_TEST
EFL_START_TEST(ecore_test_ecore_main_loop_poller_del)
{
/* Create renewable main poller */
Ecore_Poller *poller = ecore_poller_add(ECORE_POLLER_CORE, 2, _poller_loop_fail, NULL);
ecore_poller_add(ECORE_POLLER_CORE, 1, _poller_loop_del, poller);
/* Enter main loop and wait for quit*/
ecore_main_loop_begin();
}
EFL_END_TEST
EFL_START_TEST(ecore_test_ecore_main_loop_poller_modify)
{
/* Create renewable main poller */
Ecore_Poller *poller = ecore_poller_add(ECORE_POLLER_CORE, 4, _quit_cb, NULL);
ecore_poller_add(ECORE_POLLER_CORE, 1, _poller_loop_modify, poller);
ecore_poller_add(ECORE_POLLER_CORE, 4, _poller_loop_fail, NULL);
/* Enter main loop and wait for quit*/
ecore_main_loop_begin();
}
EFL_END_TEST
Eina_Bool _poller_cb(void *data)
{
int *val = data;
(*val)++;
return ECORE_CALLBACK_RENEW;
}
EFL_START_TEST(ecore_test_ecore_main_loop_poller)
{
Ecore_Poller *poll1_ptr = NULL;
int poll1_interval = 1;
int poll1_counter = 0;
Ecore_Poller *poll2_ptr = NULL;
int poll2_interval = 2;
int poll2_counter = 0;
Ecore_Poller *poll3_ptr = NULL;
int poll3_interval = 4;
int poll3_counter = 0;
Eina_Bool did = EINA_FALSE;
/* Check ECORE_POLLER_CORE poll interval */
double interval = 0.05;
ecore_poller_poll_interval_set(ECORE_POLLER_CORE, interval);
fail_unless(CHECK_FP(ecore_poller_poll_interval_get(ECORE_POLLER_CORE), interval));
/* Create three pollers with different poller interval */
poll1_ptr = ecore_poller_add(ECORE_POLLER_CORE, poll1_interval, _poller_cb, &poll1_counter);
poll2_ptr = ecore_poller_add(ECORE_POLLER_CORE, poll2_interval, _poller_cb, &poll2_counter);
poll3_ptr = ecore_poller_add(ECORE_POLLER_CORE, poll3_interval, _poller_cb, &poll3_counter);
/* Add one time processed quit poller */
ecore_poller_add(ECORE_POLLER_CORE, 8, _quit_cb, &did);
/* Enter main loop and wait 8 intervals for quit */
ecore_main_loop_begin();
/* Check each poller poll interval */
fail_if(ecore_poller_poller_interval_get(poll1_ptr) != poll1_interval);
fail_if(ecore_poller_poller_interval_get(poll2_ptr) != poll2_interval);
fail_if(ecore_poller_poller_interval_get(poll3_ptr) != poll3_interval);
/* Check each poller call counter */
ck_assert_int_eq(8, poll1_counter);
ck_assert_int_eq(4, poll2_counter);
ck_assert_int_eq(2, poll3_counter);
/* Destroy renewable pollers */
ecore_poller_del(poll3_ptr);
ecore_poller_del(poll2_ptr);
ecore_poller_del(poll1_ptr);
fail_if(did == EINA_FALSE);
}
EFL_END_TEST
void ecore_test_ecore_poller(TCase *tc)
{
tcase_add_test(tc, ecore_test_ecore_main_loop_poller);
tcase_add_test(tc, ecore_test_ecore_main_loop_poller_add);
tcase_add_test(tc, ecore_test_ecore_main_loop_poller_del);
tcase_add_test(tc, ecore_test_ecore_main_loop_poller_modify);
}