diff options
author | Vincent Torri <vincent.torri@gmail.com> | 2012-11-14 20:12:53 +0000 |
---|---|---|
committer | Vincent Torri <vincent.torri@gmail.com> | 2012-11-14 20:12:53 +0000 |
commit | 80910393d6c88f55a8d02813a05481b298a6ef71 (patch) | |
tree | c55d60a98628be19a7336ef20a120e8ed78c7f54 /src/tests/evas/evas_suite.c | |
parent | 52e0d5417466418af18254cf40a2099dc5c6e2f0 (diff) | |
download | efl-80910393d6c88f55a8d02813a05481b298a6ef71.tar.gz |
merge: add evas tests and examples
SVN revision: 79300
Diffstat (limited to 'src/tests/evas/evas_suite.c')
-rw-r--r-- | src/tests/evas/evas_suite.c | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/src/tests/evas/evas_suite.c b/src/tests/evas/evas_suite.c new file mode 100644 index 0000000000..0d3300c560 --- /dev/null +++ b/src/tests/evas/evas_suite.c @@ -0,0 +1,106 @@ +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <stdlib.h> +#include <stdio.h> + +#include <Evas.h> + +#include "evas_suite.h" + +typedef struct _Evas_Test_Case Evas_Test_Case; + +struct _Evas_Test_Case +{ + const char *test_case; + void (*build)(TCase *tc); +}; + +static const Evas_Test_Case etc[] = { + { "Evas", evas_test_init }, + { "Object Textblock", evas_test_textblock }, + { "Object Text", evas_test_text }, + { "Callbacks", evas_test_callbacks }, + { NULL, NULL } +}; + +static void +_list_tests(void) +{ + const Evas_Test_Case *itr; + + itr = etc; + fputs("Available Test Cases:\n", stderr); + for (; itr->test_case; itr++) + fprintf(stderr, "\t%s\n", itr->test_case); +} +static Eina_Bool +_use_test(int argc, const char **argv, const char *test_case) +{ + if (argc < 1) + return 1; + + for (; argc > 0; argc--, argv++) + if (strcmp(test_case, *argv) == 0) + return 1; + return 0; +} + +static Suite * +evas_suite_build(int argc, const char **argv) +{ + TCase *tc; + Suite *s; + int i; + + s = suite_create("Evas"); + + for (i = 0; etc[i].test_case; ++i) + { + if (!_use_test(argc, argv, etc[i].test_case)) continue; + 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, char **argv) +{ + Suite *s; + SRunner *sr; + int i, failed_count; + + for (i = 1; i < argc; i++) + if ((strcmp(argv[i], "-h") == 0) || + (strcmp(argv[i], "--help") == 0)) + { + fprintf(stderr, "Usage:\n\t%s [test_case1 .. [test_caseN]]\n", + argv[0]); + _list_tests(); + return 0; + } + else if ((strcmp(argv[i], "-l") == 0) || + (strcmp(argv[i], "--list") == 0)) + { + _list_tests(); + return 0; + } + + evas_init(); + s = evas_suite_build(argc - 1, (const char **)argv + 1); + sr = srunner_create(s); + + srunner_run_all(sr, CK_ENV); + failed_count = srunner_ntests_failed(sr); + srunner_free(sr); + + evas_shutdown(); + return (failed_count == 0) ? 0 : 255; +} |