efl: add test suite for efl_app

this moves existing tests out of the ecore suite and into a new one,
adds some checks to verify loop object parenting, and verifies compile
for Efl_Core.h and Efl_Net.h using EFL_NOLEGACY_API_SUPPORT
This commit is contained in:
Mike Blumenkrantz 2018-02-26 13:18:54 -05:00
parent 28fe00b94e
commit 3e94be5d73
4 changed files with 161 additions and 65 deletions

View File

@ -264,8 +264,8 @@ endif
if EFL_ENABLE_TESTS
check_PROGRAMS += tests/ecore/ecore_suite
TESTS += tests/ecore/ecore_suite
check_PROGRAMS += tests/ecore/ecore_suite tests/ecore/efl_app_suite
TESTS += tests/ecore/ecore_suite tests/ecore/efl_app_suite
tests_ecore_ecore_suite_SOURCES = \
tests/ecore/ecore_suite.c \
@ -324,6 +324,51 @@ tests_ecore_ecore_suite_DEPENDENCIES = \
@USE_ECORE_FB_INTERNAL_LIBS@ \
@USE_ECORE_INPUT_INTERNAL_LIBS@
tests_ecore_efl_app_suite_SOURCES = \
tests/ecore/efl_app_suite.c \
tests/ecore/efl_app_suite.h
tests_ecore_efl_app_suite_CPPFLAGS = -I$(top_builddir)/src/lib/efl \
-DTESTS_SRC_DIR=\"$(top_srcdir)/src/tests/ecore\" \
-DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/ecore\" \
@CHECK_CFLAGS@ \
@ECORE_CFLAGS@ \
@ECORE_AUDIO_CFLAGS@ \
@ECORE_FILE_CFLAGS@ \
@ECORE_X_CFLAGS@ \
@ECORE_IMF_CFLAGS@ \
@ECORE_EVAS_CFLAGS@ \
@ECORE_WAYLAND_CFLAGS@ \
@ECORE_WAYLAND_SRV_CFLAGS@ \
@ECORE_DRM_CFLAGS@ \
@ECORE_FB_CFLAGS@ \
@ECORE_INPUT_CFLAGS@
tests_ecore_efl_app_suite_LDADD = \
@CHECK_LIBS@ \
@USE_ECORE_LIBS@ \
@USE_ECORE_AUDIO_LIBS@ \
@USE_ECORE_FILE_LIBS@ \
@USE_ECORE_X_LIBS@ \
@USE_ECORE_IMF_LIBS@ \
@USE_ECORE_EVAS_LIBS@ \
@USE_ECORE_WAYLAND_LIBS@ \
@USE_ECORE_FB_LIBS@ \
@ECORE_WAYLAND_SRV_LIBS@ \
@ECORE_DRM_LIBS@ \
@USE_ECORE_INPUT_LIBS@
tests_ecore_efl_app_suite_DEPENDENCIES = \
@USE_ECORE_INTERNAL_LIBS@ \
@USE_ECORE_AUDIO_INTERNAL_LIBS@ \
@USE_ECORE_FILE_INTERNAL_LIBS@ \
@USE_ECORE_X_INTERNAL_LIBS@ \
@USE_ECORE_IMF_INTERNAL_LIBS@ \
@USE_ECORE_EVAS_INTERNAL_LIBS@ \
@USE_ECORE_WAYLAND_INTERNAL_LIBS@ \
@USE_ECORE_DRM_INTERNAL_LIBS@ \
@USE_ECORE_FB_INTERNAL_LIBS@ \
@USE_ECORE_INPUT_INTERNAL_LIBS@
if HAVE_ECORE_X
tests_ecore_ecore_suite_SOURCES += tests/ecore/ecore_test_ecore_x.c
endif

View File

@ -857,67 +857,6 @@ START_TEST(ecore_test_ecore_main_loop_poller_add_del)
}
END_TEST
START_TEST(ecore_test_efl_loop_register)
{
Efl_Object *t, *n;
ecore_init();
t = efl_provider_find(efl_app_main_loop_get(efl_app_get()), EFL_LOOP_CLASS);
fail_if(!efl_isa(t, EFL_LOOP_CLASS));
t = efl_provider_find(efl_app_main_loop_get(efl_app_get()), EFL_LOOP_TIMER_CLASS);
fail_if(t != NULL);
n = efl_add(EFL_LOOP_TIMER_CLASS, efl_app_main_loop_get(efl_app_get()));
fail_if(n != NULL);
n = efl_add(EFL_LOOP_TIMER_CLASS, efl_app_main_loop_get(efl_app_get()),
efl_loop_timer_interval_set(efl_added, 1.0));
efl_loop_register(efl_app_main_loop_get(efl_app_get()), EFL_LOOP_TIMER_CLASS, n);
t = efl_provider_find(efl_app_main_loop_get(efl_app_get()), EFL_LOOP_TIMER_CLASS);
fail_if(!efl_isa(t, EFL_LOOP_TIMER_CLASS));
fail_if(t != n);
efl_loop_unregister(efl_app_main_loop_get(efl_app_get()), EFL_LOOP_TIMER_CLASS, n);
t = efl_provider_find(efl_app_main_loop_get(efl_app_get()), EFL_LOOP_TIMER_CLASS);
fail_if(t != NULL);
ecore_shutdown();
}
END_TEST
START_TEST(ecore_test_efl_build_version)
{
const Efl_Version *ver;
Eo *app;
ecore_init();
app = efl_app_get();
fail_if(!efl_isa(app, EFL_APP_CLASS));
efl_build_version_set(EFL_VERSION_MAJOR, EFL_VERSION_MINOR, 0, 0, NULL, EFL_BUILD_ID);
ver = efl_app_build_efl_version_get(app);
fail_if(!ver);
fail_if(ver->major != EFL_VERSION_MAJOR);
fail_if(ver->minor != EFL_VERSION_MINOR);
fail_if(ver->micro != 0);
fail_if(ver->revision != 0);
fail_if(ver->flavor);
fail_if(!eina_streq(ver->build_id, EFL_BUILD_ID));
ver = efl_app_efl_version_get(app);
fail_if(!ver);
fail_if(ver->major != EFL_VERSION_MAJOR);
fail_if(ver->minor != EFL_VERSION_MINOR);
ecore_shutdown();
}
END_TEST
void ecore_test_ecore(TCase *tc)
{
tcase_add_test(tc, ecore_test_ecore_init);
@ -940,6 +879,4 @@ void ecore_test_ecore(TCase *tc)
tcase_add_test(tc, ecore_test_ecore_main_loop_poller_add_del);
tcase_add_test(tc, ecore_test_efl_loop_fd);
tcase_add_test(tc, ecore_test_efl_loop_fd_lifecycle);
tcase_add_test(tc, ecore_test_efl_loop_register);
tcase_add_test(tc, ecore_test_efl_build_version);
}

View File

@ -0,0 +1,106 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#include <unistd.h>
#define EFL_NOLEGACY_API_SUPPORT
#include <Efl_Core.h>
#include <Efl_Net.h>
#include "efl_app_suite.h"
#include "../efl_check.h"
START_TEST(efl_app_test_efl_loop_register)
{
Efl_Object *t, *n, *parent;
ecore_init();
t = efl_provider_find(efl_app_main_loop_get(efl_app_get()), EFL_LOOP_CLASS);
fail_if(!efl_isa(t, EFL_LOOP_CLASS));
parent = efl_parent_get(t);
fail_if(!efl_isa(parent, EFL_APP_CLASS));
fail_if(parent != efl_app_get());
t = efl_provider_find(efl_app_main_loop_get(efl_app_get()), EFL_LOOP_TIMER_CLASS);
fail_if(t != NULL);
n = efl_add(EFL_LOOP_TIMER_CLASS, efl_app_main_loop_get(efl_app_get()));
fail_if(n != NULL);
n = efl_add(EFL_LOOP_TIMER_CLASS, efl_app_main_loop_get(efl_app_get()),
efl_loop_timer_interval_set(efl_added, 1.0));
efl_loop_register(efl_app_main_loop_get(efl_app_get()), EFL_LOOP_TIMER_CLASS, n);
t = efl_provider_find(efl_app_main_loop_get(efl_app_get()), EFL_LOOP_TIMER_CLASS);
fail_if(!efl_isa(t, EFL_LOOP_TIMER_CLASS));
fail_if(t != n);
efl_loop_unregister(efl_app_main_loop_get(efl_app_get()), EFL_LOOP_TIMER_CLASS, n);
t = efl_provider_find(efl_app_main_loop_get(efl_app_get()), EFL_LOOP_TIMER_CLASS);
fail_if(t != NULL);
ecore_shutdown();
}
END_TEST
START_TEST(efl_app_test_efl_build_version)
{
const Efl_Version *ver;
Eo *app;
ecore_init();
app = efl_app_get();
fail_if(!efl_isa(app, EFL_APP_CLASS));
efl_build_version_set(EFL_VERSION_MAJOR, EFL_VERSION_MINOR, 0, 0, NULL, EFL_BUILD_ID);
ver = efl_app_build_efl_version_get(app);
fail_if(!ver);
fail_if(ver->major != EFL_VERSION_MAJOR);
fail_if(ver->minor != EFL_VERSION_MINOR);
fail_if(ver->micro != 0);
fail_if(ver->revision != 0);
fail_if(ver->flavor);
fail_if(!eina_streq(ver->build_id, EFL_BUILD_ID));
ver = efl_app_efl_version_get(app);
fail_if(!ver);
fail_if(ver->major != EFL_VERSION_MAJOR);
fail_if(ver->minor != EFL_VERSION_MINOR);
ecore_shutdown();
}
END_TEST
void efl_test_efl_app(TCase *tc)
{
tcase_add_test(tc, efl_app_test_efl_loop_register);
tcase_add_test(tc, efl_app_test_efl_build_version);
}
static const Efl_Test_Case etc[] = {
{ "Efl_App", efl_test_efl_app },
{ NULL, NULL }
};
int
main(int argc, char **argv)
{
int failed_count;
if (!_efl_test_option_disp(argc, argv, etc))
return 0;
#ifdef NEED_RUN_IN_TREE
putenv("EFL_RUN_IN_TREE=1");
#endif
failed_count = _efl_suite_build_and_run(argc - 1, (const char **)argv + 1,
"Efl_App", etc);
return (failed_count == 0) ? 0 : 255;
}

View File

@ -0,0 +1,8 @@
#ifndef _EFL_APP_SUITE_H
#define _EFL_APP_SUITE_H
#include <check.h>
void efl_app_test_efl_app(TCase *tc);
#endif /* _EFL_APP_SUITE_H */