forked from enlightenment/efl
Introduce check for unit testing framework of Elementary
Reviewers: seoz, tasn CC: tasn, cedric Differential Revision: https://phab.enlightenment.org/D91
This commit is contained in:
parent
7ee18e17f0
commit
c2f2c2101d
|
@ -38,6 +38,7 @@ elementary-*-doc.tar.bz2
|
|||
/ltmain.sh
|
||||
/missing
|
||||
/stamp-h1
|
||||
/test-driver
|
||||
core
|
||||
cscope.*
|
||||
tags
|
||||
|
|
|
@ -617,6 +617,17 @@ if test "x$want_elementary_debug" = "xyes"; then
|
|||
fi
|
||||
AC_SUBST(ELM_DEBUG_DEF)
|
||||
|
||||
AC_ARG_WITH([tests],
|
||||
[AC_HELP_STRING([--with-tests=none|regular],
|
||||
[choose elementary testing method: regular or none.(coverage will be supported)@<:@default=none@:>@])],
|
||||
[build_tests=${withval}],
|
||||
[build_tests=none])
|
||||
|
||||
if test "${build_tests}" = "regular"; then
|
||||
PKG_CHECK_MODULES([CHECK], [check >= 0.9.5])
|
||||
fi
|
||||
AM_CONDITIONAL([ENABLE_ELEMENTARY_TESTS], [test "${build_tests}" = "regular"])
|
||||
|
||||
ELM_ALLOCA_H_DEF="#undef"
|
||||
AC_CHECK_HEADER(alloca.h, [ELM_ALLOCA_H_DEF="#define"])
|
||||
AC_SUBST(ELM_ALLOCA_H_DEF)
|
||||
|
@ -714,6 +725,7 @@ src/modules/test_entry/Makefile
|
|||
src/modules/test_map/Makefile
|
||||
src/edje_externals/Makefile
|
||||
src/examples/Makefile
|
||||
src/tests/Makefile
|
||||
data/Makefile
|
||||
data/themes/Makefile
|
||||
data/images/Makefile
|
||||
|
@ -777,6 +789,12 @@ echo " CPPFLAGS.................: $CPPFLAGS"
|
|||
echo " CFLAGS...................: $CFLAGS"
|
||||
echo " LDFLAGS..................: $LDFLAGS"
|
||||
echo
|
||||
if test "${build_tests}" = "none"; then
|
||||
echo "Tests......................: no"
|
||||
else
|
||||
echo "Tests......................: make check"
|
||||
fi
|
||||
echo
|
||||
echo "Installation...............: make install (as root if needed, with 'su' or 'sudo')"
|
||||
echo " prefix...................: $prefix"
|
||||
echo
|
||||
|
|
|
@ -8,3 +8,7 @@ SUBDIRS += modules edje_externals
|
|||
endif
|
||||
|
||||
SUBDIRS += examples
|
||||
|
||||
if ENABLE_ELEMENTARY_TESTS
|
||||
SUBDIRS += tests
|
||||
endif
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
/elm_suite
|
||||
/check-results.xml
|
||||
/elm_suite.log
|
||||
/elm_suite.trs
|
||||
/test-suite.log
|
|
@ -0,0 +1,37 @@
|
|||
AUTOMAKE_OPTIONS = 1.4 foreign
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
TESTS = elm_suite
|
||||
check_PROGRAMS = elm_suite
|
||||
elm_suite_SOURCES = \
|
||||
elm_suite.c \
|
||||
elm_test_check.c \
|
||||
elm_test_init.c
|
||||
|
||||
elm_suite_CPPFLAGS = \
|
||||
-DTESTS_BUILD_DIR=\"${top_builddir}/src/tests\" \
|
||||
-I$(top_srcdir)/src/lib \
|
||||
-I$(top_builddir)/src/lib \
|
||||
@CHECK_CFLAGS@ \
|
||||
@ELEMENTARY_CFLAGS@ \
|
||||
@ELEMENTARY_X_CFLAGS@ \
|
||||
@ELEMENTARY_FB_CFLAGS@ \
|
||||
@ELEMENTARY_SDL_CFLAGS@ \
|
||||
@ELEMENTARY_WIN32_CFLAGS@ \
|
||||
@ELEMENTARY_WINCE_CFLAGS@ \
|
||||
@ELEMENTARY_ELOCATION_CFLAGS@ \
|
||||
@ELEMENTARY_EWEATHER_CFLAGS@ \
|
||||
@ELEMENTARY_WEB_CFLAGS@ \
|
||||
@ELEMENTARY_EMAP_CFLAGS@ \
|
||||
@ELEMENTARY_WAYLAND_CFLAGS@ \
|
||||
@EVIL_CFLAGS@
|
||||
|
||||
elm_suite_LDADD = \
|
||||
$(top_builddir)/src/lib/libelementary.la \
|
||||
@CHECK_LIBS@ \
|
||||
@ELEMENTARY_EWEATHER_LIBS@ \
|
||||
@ELEMENTARY_ELOCATION_LIBS@ \
|
||||
@ELEMENTARY_EMAP_LIBS@ \
|
||||
@ELEMENTARY_LIBS@ \
|
||||
@ELEMENTARY_WEB_LIBS@ \
|
||||
@my_libs@
|
|
@ -0,0 +1,59 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
# include "elementary_config.h"
|
||||
#endif
|
||||
|
||||
#include <Elementary.h>
|
||||
#include "elm_suite.h"
|
||||
|
||||
typedef struct _Elementary_Test_Case Elementary_Test_Case;
|
||||
|
||||
struct _Elementary_Test_Case
|
||||
{
|
||||
const char *test_case;
|
||||
void (*build)(TCase *tc);
|
||||
};
|
||||
|
||||
static const Elementary_Test_Case etc[] = {
|
||||
{ "Elementary", elm_test_init },
|
||||
{ "elm_check", elm_test_check },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
Suite *
|
||||
elm_suite()
|
||||
{
|
||||
TCase *tc;
|
||||
Suite *s;
|
||||
int i;
|
||||
|
||||
s = suite_create("Elementary");
|
||||
|
||||
for (i = 0; etc[i].test_case; ++i)
|
||||
{
|
||||
tc = tcase_create(etc[i].test_case);
|
||||
etc[i].build(tc);
|
||||
suite_add_tcase(s, tc);
|
||||
tcase_set_timeout(tc, 0);
|
||||
}
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc __UNUSED__, char **argv __UNUSED__)
|
||||
{
|
||||
int failed_count;
|
||||
Suite *s;
|
||||
SRunner *sr;
|
||||
|
||||
s = elm_suite();
|
||||
sr = srunner_create(s);
|
||||
|
||||
srunner_set_xml(sr, TESTS_BUILD_DIR "/check-results.xml");
|
||||
|
||||
srunner_run_all(sr, CK_ENV);
|
||||
failed_count = srunner_ntests_failed(sr);
|
||||
srunner_free(sr);
|
||||
|
||||
return (failed_count == 0) ? 0 : 255;
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
#ifndef _ELM_SUITE_H
|
||||
#define _ELM_SUITE_H
|
||||
|
||||
#include <check.h>
|
||||
|
||||
void elm_test_init(TCase *tc);
|
||||
void elm_test_check(TCase *tc);
|
||||
|
||||
#endif /* _ELM_SUITE_H */
|
|
@ -0,0 +1,56 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
# include "elementary_config.h"
|
||||
#endif
|
||||
|
||||
#include <Elementary.h>
|
||||
#include "elm_suite.h"
|
||||
|
||||
START_TEST (elm_check_onoff_text)
|
||||
{
|
||||
Evas_Object *win, *check;
|
||||
|
||||
elm_init(1, NULL);
|
||||
win = elm_win_add(NULL, "check", ELM_WIN_BASIC);
|
||||
|
||||
check = elm_check_add(win);
|
||||
elm_object_style_set(check, "toggle");
|
||||
elm_object_part_text_set(check, "on", "OnText");
|
||||
elm_object_part_text_set(check, "off", "OffText");
|
||||
|
||||
ck_assert_str_eq(elm_object_part_text_get(check, "on"), "OnText");
|
||||
ck_assert_str_eq(elm_object_part_text_get(check, "off"), "OffText");
|
||||
|
||||
elm_object_style_set(check, "default");
|
||||
ck_assert(elm_object_part_text_get(check, "on") == NULL);
|
||||
ck_assert(elm_object_part_text_get(check, "off") == NULL);
|
||||
|
||||
elm_shutdown();
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST (elm_check_state)
|
||||
{
|
||||
Evas_Object *win, *check;
|
||||
Eina_Bool state = EINA_TRUE;
|
||||
|
||||
elm_init(1, NULL);
|
||||
win = elm_win_add(NULL, "check", ELM_WIN_BASIC);
|
||||
|
||||
check = elm_check_add(win);
|
||||
elm_check_state_pointer_set(check, &state);
|
||||
ck_assert(elm_check_state_get(check) == EINA_TRUE);
|
||||
ck_assert(state == EINA_TRUE);
|
||||
|
||||
elm_check_state_set(check, EINA_FALSE);
|
||||
ck_assert(elm_check_state_get(check) == EINA_FALSE);
|
||||
ck_assert(state == EINA_FALSE);
|
||||
|
||||
elm_shutdown();
|
||||
}
|
||||
END_TEST
|
||||
|
||||
void elm_test_check(TCase *tc)
|
||||
{
|
||||
tcase_add_test(tc, elm_check_onoff_text);
|
||||
tcase_add_test(tc, elm_check_state);
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
# include "elementary_config.h"
|
||||
#endif
|
||||
|
||||
#include <Elementary.h>
|
||||
#include "elm_suite.h"
|
||||
|
||||
START_TEST (elm_main)
|
||||
{
|
||||
ck_assert(elm_init(1, NULL) == 1);
|
||||
ck_assert(elm_shutdown() == 0);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
void elm_test_init(TCase *tc)
|
||||
{
|
||||
tcase_add_test(tc, elm_main);
|
||||
}
|
Loading…
Reference in New Issue