aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/tests/evas_suite.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--libraries/evas/src/tests/evas_suite.c104
1 files changed, 104 insertions, 0 deletions
diff --git a/libraries/evas/src/tests/evas_suite.c b/libraries/evas/src/tests/evas_suite.c
new file mode 100644
index 0000000..55f4123
--- /dev/null
+++ b/libraries/evas/src/tests/evas_suite.c
@@ -0,0 +1,104 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
5#include <stdlib.h>
6#include <stdio.h>
7
8#include <Evas.h>
9
10#include "evas_suite.h"
11
12typedef struct _Evas_Test_Case Evas_Test_Case;
13
14struct _Evas_Test_Case
15{
16 const char *test_case;
17 void (*build)(TCase *tc);
18};
19
20static const Evas_Test_Case etc[] = {
21 { "Evas", evas_test_init },
22 { "Object Textblock", evas_test_textblock },
23 { "Object Text", evas_test_text },
24 { "Callbacks", evas_test_callbacks },
25 { NULL, NULL }
26};
27
28static void
29_list_tests(void)
30{
31 const Evas_Test_Case *itr;
32
33 itr = etc;
34 fputs("Available Test Cases:\n", stderr);
35 for (; itr->test_case; itr++)
36 fprintf(stderr, "\t%s\n", itr->test_case);
37}
38static Eina_Bool
39_use_test(int argc, const char **argv, const char *test_case)
40{
41 if (argc < 1)
42 return 1;
43
44 for (; argc > 0; argc--, argv++)
45 if (strcmp(test_case, *argv) == 0)
46 return 1;
47 return 0;
48}
49
50static Suite *
51evas_suite_build(int argc, const char **argv)
52{
53 TCase *tc;
54 Suite *s;
55 int i;
56
57 s = suite_create("Evas");
58
59 for (i = 0; etc[i].test_case; ++i)
60 {
61 if (!_use_test(argc, argv, etc[i].test_case)) continue;
62 tc = tcase_create(etc[i].test_case);
63
64 etc[i].build(tc);
65
66 suite_add_tcase(s, tc);
67 tcase_set_timeout(tc, 0);
68 }
69
70 return s;
71}
72
73int
74main(int argc, char **argv)
75{
76 Suite *s;
77 SRunner *sr;
78 int i, failed_count;
79
80 for (i = 1; i < argc; i++)
81 if ((strcmp(argv[i], "-h") == 0) ||
82 (strcmp(argv[i], "--help") == 0))
83 {
84 fprintf(stderr, "Usage:\n\t%s [test_case1 .. [test_caseN]]\n",
85 argv[0]);
86 _list_tests();
87 return 0;
88 }
89 else if ((strcmp(argv[i], "-l") == 0) ||
90 (strcmp(argv[i], "--list") == 0))
91 {
92 _list_tests();
93 return 0;
94 }
95
96 s = evas_suite_build(argc - 1, (const char **)argv + 1);
97 sr = srunner_create(s);
98
99 srunner_run_all(sr, CK_ENV);
100 failed_count = srunner_ntests_failed(sr);
101 srunner_free(sr);
102
103 return (failed_count == 0) ? 0 : 255;
104}