3 #define EFREET_MODULE_LOG_DOM
4 #include "efreet_private.h"
5 #include "Efreet_Mime.h"
12 int ef_cb_efreet_data_home(void);
13 int ef_cb_efreet_config_home(void);
14 int ef_cb_efreet_cache_home(void);
15 int ef_cb_efreet_data_dirs(void);
16 int ef_cb_efreet_config_dirs(void);
17 int ef_cb_efreet_icon_theme(void);
18 int ef_cb_efreet_icon_theme_list(void);
19 int ef_cb_efreet_icon_match(void);
20 int ef_cb_ini_parse(void);
21 int ef_cb_ini_long_line(void);
22 int ef_cb_ini_garbage(void);
23 #if DEFAULT_VISIBILITY
24 int ef_cb_locale(void);
26 int ef_cb_desktop_parse(void);
27 int ef_cb_desktop_save(void);
28 int ef_cb_desktop_command_get(void);
29 int ef_cb_desktop_type_parse(void);
31 int ef_cb_desktop_file_id(void);
33 int ef_cb_menu_get(void);
34 int ef_cb_menu_with_slashes(void);
35 int ef_cb_menu_save(void);
37 int ef_cb_menu_edit(void);
39 int ef_cb_utils(void);
40 int ef_mime_cb_get(void);
42 typedef struct Efreet_Test Efreet_Test;
49 static Efreet_Test tests[] = {
50 {"Data Home", ef_cb_efreet_data_home},
51 {"Config Home", ef_cb_efreet_config_home},
52 {"Cache Home", ef_cb_efreet_cache_home},
53 {"Data Directories", ef_cb_efreet_data_dirs},
54 {"Config Directories", ef_cb_efreet_config_dirs},
55 {"Icon Theme Basic", ef_cb_efreet_icon_theme},
56 {"Icon Theme List", ef_cb_efreet_icon_theme_list},
57 {"Icon Matching", ef_cb_efreet_icon_match},
58 {"INI Parsing", ef_cb_ini_parse},
59 {"INI Long Line Parsing", ef_cb_ini_long_line},
60 {"INI Garbage Parsing", ef_cb_ini_garbage},
61 #if DEFAULT_VISIBILITY
62 {"Locale Parsing", ef_cb_locale},
64 {"Desktop Parsing", ef_cb_desktop_parse},
65 {"Desktop Type Parsing", ef_cb_desktop_type_parse},
66 {"Desktop Save", ef_cb_desktop_save},
67 {"Desktop Command", ef_cb_desktop_command_get},
69 {"Desktop File ID", ef_cb_desktop_file_id},
71 {"Menu Parsing", ef_cb_menu_get},
72 {"Menu Incorrect Names", ef_cb_menu_with_slashes},
73 {"Menu Save", ef_cb_menu_save},
75 {"Menu Edit", ef_cb_menu_edit},
77 {"Utils", ef_cb_utils},
78 {"Mime", ef_mime_cb_get},
82 extern char **environ;
83 static Eina_List *environment = NULL;
86 environment_store(void)
91 EINA_LIST_FREE(environment, env)
93 for (e = environ; *e; e++)
94 environment = eina_list_append(environment, strdup(*e));
99 environment_restore(void)
103 if (!environment) return;
106 EINA_LIST_FOREACH(environment, l, e)
112 main(int argc, char ** argv)
114 int i, passed = 0, num_tests = 0;
115 Eina_List *run = NULL;
122 total = ecore_time_get();
125 for (i = 1; i < argc; i++)
127 if ((!strcmp(argv[i], "-h")) ||
128 (!strcmp(argv[i], "--help")))
130 for (i = 0; tests[i].name; i++)
132 printf("%s\n", tests[i].name);
136 run = eina_list_append(run, argv[i]);
140 efreet_cache_update = 0;
142 for (i = 0; tests[i].name; i++)
147 /* we've been given specific tests and it isn't in the list */
148 if (run && !eina_list_search_unsorted(run, EINA_COMPARE_CB(strcasecmp),
154 printf("Error initializing Efreet\n");
160 printf("%s:\t\t", tests[i].name);
162 start = ecore_time_get();
164 printf("%s in %.3f seconds\n", (ret ? "PASSED" : "FAILED"),
165 ecore_time_get() - start);
169 environment_restore();
172 printf("\n-----------------\n");
175 EINA_LIST_FREE(environment, env)
178 printf("Passed %d of %d tests.\n", passed, num_tests);
181 run = eina_list_remove_list(run, run);
183 printf("Total run: %.3f seconds\n", ecore_time_get() - total);