C_FILES = $(shell cat tslist)
-PKGS = eina ecore ecore-con eet ecore-file ecore-ipc check
+PKGS = eina ecore ecore-con eet ecore-file ecore-ipc check ecore-evas evas ecore-input ecore-imf ecore-fb ecore-buffer ecore-imf-evas
LDFLAGS = `pkg-config --libs $(PKGS)`
CFLAGS = -I. `pkg-config --cflags $(PKGS)`
-CFLAGS += -Wall
+CFLAGS += -Wall -lm
#TARGETS = $(C_FILES:%.c=tc-%)
TCS := $(shell ls -1 *.c | cut -d. -f1)
+RESOURCES := $(shell find . -name '*.o')
+
all: $(TCS)
%: %.c
- $(CC) -o $@ $< $(CFLAGS) $(LDFLAGS)
+ $(CC) -g -O0 -o $@ $< $(RESOURCES) $(CFLAGS) $(LDFLAGS)
clean:
rm -f $(TCS)
--- /dev/null
+#!/bin/bash
+
+function make_arr()
+{
+ for dir in */; do
+ cd $dir
+ for filename in *.o; do
+ echo $filename
+ if [[ "$filename" == "*.o" ]]; then
+ continue
+ elif [[ "$filename" =~ "eina_module_dummy" ]]; then
+ continue
+ fi
+ filename=(${filename//./ })
+ printf " { \"%s\", _%s },\n" $filename $filename >> "../"$HEADER_NAME
+ done
+ cd ..
+ done
+}
+
+function make_def()
+{
+ for dir in */; do
+ cd $dir
+ for filename in *.o; do
+ if [[ "$filename" == "*.o" ]]; then
+ continue
+ elif [[ "$filename" =~ "eina_module_dummy" ]]; then
+ continue
+ fi
+ filename=(${filename//./ })
+ printf "TCase *_%s();\n" $filename >> "../"$HEADER_NAME
+ done
+ cd ..
+ done
+}
+HEADER_NAME=utc_eina.h
+rm $HEADER_NAME
+touch $HEADER_NAME
+printf "#include <check.h>\n" >> $HEADER_NAME
+printf "#include \"../utc_negative_unitest.h\"\n\n" >> $HEADER_NAME
+
+make_def
+printf "const Efl_Test_Case %s[] = {\n" "utc" >> $HEADER_NAME
+make_arr
+printf " { NULL, NULL }\n" >> $HEADER_NAME
+printf "};" >> $HEADER_NAME
+
+make
+++ /dev/null
-#include <check.h>
-#include <Eina.h>
-#include <Ecore.h>
-
-static void
-setup(void)
-{
- printf(" ============ Startup ============ \n");
- ecore_init();
-}
-
-static void
-teardown(void)
-{
- printf(" ============ Cleanup ============ \n");
- ecore_shutdown();
-}
-
-Eina_Bool _idle_enterer_cb(void* data)
-{
- return ECORE_CALLBACK_CANCEL;
-}
-
-START_TEST(utc_ecore_idle_enterer_add_p)
-{
- Ecore_Idle_Enterer* eie;
-
-
- eie = ecore_idle_enterer_add(_idle_enterer_cb, NULL);
-
- if (eie == NULL)
- {
- ck_abort_msg("[TEST_FAIL]:: %s[%d] : Test has failed..", __FILE__, __LINE__);
- return;
- }
- ecore_idle_enterer_del(eie);
- printf("[TEST_PASS]:: %s[%d] : Test has passed..\n", __FILE__, __LINE__);
-}
-END_TEST
-
-START_TEST(utc_ecore_idle_enterer_add_n)
-{
- Ecore_Idle_Enterer* eie;
-
- /* Produce segfault */
- int* pointer = 12345;
- *(pointer) = 12345;
- /* ---- */
-
- eie = ecore_idle_enterer_add(NULL, NULL);
-
- if (eie != NULL)
- {
- ck_abort_msg("[TEST_FAIL]:: %s[%d] : Test has failed..", __FILE__, __LINE__);
- return;
- }
- printf("[TEST_PASS]:: %s[%d] : Test has passed..\n", __FILE__, __LINE__);
-}
-END_TEST
-Suite *
-test_suite(void)
-{
- Suite *suite = suite_create("template");
-
- TCase *tcase = tcase_create("TCase");
- tcase_set_timeout(tcase, 30);
- tcase_add_checked_fixture(tcase, setup, teardown);
- tcase_add_test(tcase, utc_ecore_idle_enterer_add_p);
- tcase_add_test(tcase, utc_ecore_idle_enterer_add_n);
- suite_add_tcase(suite, tcase);
-
- return suite;
-}
-
-int
-main()
-{
- int number_failed;
-
- Suite *suite = test_suite();
- SRunner *srunner = srunner_create(suite);
- srunner_set_log(srunner, "template.log");
- srunner_set_xml(srunner, "template.xml");
- srunner_run_all(srunner, CK_NORMAL);
- number_failed = srunner_ntests_failed(srunner);
- srunner_free(srunner);
-
- return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
-}
--- /dev/null
+#include <check.h>
+#include <Ecore.h>
+#include "utc_ecore.h"
+#include "utc_ecore_common.h"
+#include "../utc_negative_unitest.h"
+
+pid_t elm_main_pid;
+static char exception_list[100][100];
+
+static int
+test_case_validate(const char *tname)
+{
+ int i = 0;
+ for (i = 0; exception_list[i][0]; i++)
+ {
+ if (!strcmp(exception_list[i], tname)) return -1;
+ }
+
+ return 1;
+}
+
+static void
+tcase_get(Suite *s, const char **argv)
+{
+ int i;
+ FILE *fp;
+
+ if (argv[1])
+ {
+ for (i = 0; utc[i].test_case; i++)
+ {
+ if (!strcmp(argv[1], utc[i].test_case))
+ {
+ suite_add_tcase(s, utc[i].tc_get());
+ return;
+ }
+ }
+ }
+
+ fp = fopen("ecore_exception_list", "r");
+ if (fp)
+ {
+ for (i = 0; ; i++)
+ {
+ if (fscanf(fp, "%s", exception_list[i]) < 0)
+ {
+ exception_list[i][0] = 0;
+ break;
+ }
+ }
+ fclose(fp);
+ }
+ for (i = 0; utc[i].test_case; i++)
+ {
+ if (test_case_validate(utc[i].test_case) < 0) continue;
+ suite_add_tcase(s, utc[i].tc_get());
+ }
+ return;
+}
+
+int
+main(int argc, const char **argv)
+{
+ int number_failed;
+
+ elm_main_pid = getpid();
+
+ Suite *suite = suite_create("utc_ecore");
+ tcase_get(suite, argv);
+ SRunner *srunner = srunner_create(suite);
+ srunner_set_log(srunner, "utc_ecore.log");
+ srunner_set_xml(srunner, "utc_ecore.xml");
+ if (srunner_fork_status(srunner) == CK_FORK)
+ {
+ ecore_init();
+ signal(SIGCHLD, SIG_DFL);
+ }
+
+ srunner_run_all(srunner, CK_NORMAL);
+ number_failed = srunner_ntests_failed(srunner);
+ srunner_free(srunner);
+ ecore_shutdown();
+
+ return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+}
--- /dev/null
+
+#ifndef UTC_ECORE_COMMON_H_
+#define UTC_ECORE_COMMON_H_
+
+#include <stdlib.h>
+
+extern pid_t ecore_main_pid;
+
+#define UTC_ECORE_INIT() \
+ if (getpid() != elm_main_pid) ecore_fork_reset(); \
+ else ecore_init();
+
+#endif /* UTC_ECORE_COMMON_H_ */