diff --git a/legacy/efreet/src/tests/ef_data_dirs.c b/legacy/efreet/src/tests/ef_data_dirs.c index d6c629b5ea..9f961095a3 100644 --- a/legacy/efreet/src/tests/ef_data_dirs.c +++ b/legacy/efreet/src/tests/ef_data_dirs.c @@ -1,4 +1,5 @@ #include "Efreet.h" +#include #include #include #include @@ -163,7 +164,9 @@ int ef_cb_efreet_data_dirs(void) { Eina_List *tmp, *l; - int ret = 1, i; + int ret = 1; + unsigned int i; + unsigned int ok; char dirs[128], *val; char *vals[] = {"/var/tmp/a", "/tmp/b", "/usr/local/share", "/etc", NULL}; char *def_vals[] = {PACKAGE_DATA_DIR, "/usr/share", "/usr/local/share", NULL}; @@ -180,25 +183,35 @@ ef_cb_efreet_data_dirs(void) efreet_init(); i = 0; + ok = 0; tmp = efreet_data_dirs_get(); - EINA_LIST_FOREACH(tmp, l, val) + for (i = 0; vals[i]; i++) { - if (!vals[i]) - { - printf("efreet_data_dirs_get() returned more values then it " - "should have given %s as input\n", dirs); - ret = 0; - break; - } + char *found; - if (strcmp(val, vals[i])) + found = eina_list_search_unsorted(tmp, EINA_COMPARE_CB(strcmp), vals[i]); + if (!ecore_file_exists(vals[i]) && found) { - printf("efreet_data_dirs_get() returned incorrect value (%s) when " - "%s set\n", val, dirs); + printf("efreet_data_dirs_get() includes non-existing dir (%s) when " + "%s set\n", vals[i], dirs); ret = 0; + continue; } - - i++; + if (ecore_file_exists(vals[i]) && !found) + { + printf("efreet_data_dirs_get() is missing dir (%s) when " + "%s set\n", vals[i], dirs); + ret = 0; + continue; + } + if (ecore_file_exists(vals[i]) && found) + ok++; + } + if (eina_list_count(tmp) != ok) + { + printf("efreet_data_dirs_get() returned more values then it " + "should have given %s as input\n", dirs); + ret = 0; } efreet_shutdown(); @@ -239,7 +252,9 @@ int ef_cb_efreet_config_dirs(void) { Eina_List *tmp, *l; - int ret = 1, i; + int ret = 1; + unsigned int i; + unsigned int ok; char dirs[128], *val; char *vals[] = {"/var/tmp/a", "/tmp/b", "/usr/local/share", "/etc", NULL}; char *def_vals[] = {"/etc/xdg", NULL}; @@ -257,25 +272,35 @@ ef_cb_efreet_config_dirs(void) efreet_init(); i = 0; + ok = 0; tmp = efreet_config_dirs_get(); - EINA_LIST_FOREACH(tmp, l, val) + for (i = 0; vals[i]; i++) { - if (!vals[i]) - { - printf("efreet_config_dirs_get() returned more values then it " - "should have given %s as input\n", dirs); - ret = 0; - break; - } + char *found; - if (strcmp(val, vals[i])) + found = eina_list_search_unsorted(tmp, EINA_COMPARE_CB(strcmp), vals[i]); + if (!ecore_file_exists(vals[i]) && found) { - printf("efreet_config_dirs_get() returned incorrect value (%s) when " - "%s set\n", val, dirs); + printf("efreet_data_dirs_get() includes non-existing dir (%s) when " + "%s set\n", vals[i], dirs); ret = 0; + continue; } - - i++; + if (ecore_file_exists(vals[i]) && !found) + { + printf("efreet_data_dirs_get() is missing dir (%s) when " + "%s set\n", vals[i], dirs); + ret = 0; + continue; + } + if (ecore_file_exists(vals[i]) && found) + ok++; + } + if (eina_list_count(tmp) != ok) + { + printf("efreet_data_dirs_get() returned more values then it " + "should have given %s as input\n", dirs); + ret = 0; } efreet_shutdown();