From 2d7e10363d7d209a605329ba692a3e788b37dc68 Mon Sep 17 00:00:00 2001 From: Lucas De Marchi Date: Mon, 14 Jan 2013 21:04:22 +0000 Subject: [PATCH] efl/efreet: remove clearenv usage This improves the tests on freebsd, which doesn't have clearenv() ( though this commit was untested on such environement). clearenv was rejected from POSIX so we better aim to stop its usage. However since tests use setenv() this may lead to leaks, but it's better a leak than a failing test. On Linux all tests that were passing continue to pass. SVN revision: 82779 --- configure.ac | 1 - src/tests/efreet/main.c | 40 ++++------------------------------------ 2 files changed, 4 insertions(+), 37 deletions(-) diff --git a/configure.ac b/configure.ac index 64196cbfba..f5d9631440 100644 --- a/configure.ac +++ b/configure.ac @@ -536,7 +536,6 @@ AC_SUBST([SSE3_CFLAGS]) AC_CHECK_FUNCS([\ backtrace \ backtrace_symbols \ -clearenv \ execvp \ fpathconf \ fstatat \ diff --git a/src/tests/efreet/main.c b/src/tests/efreet/main.c index 083374402a..8ba4f0a991 100644 --- a/src/tests/efreet/main.c +++ b/src/tests/efreet/main.c @@ -72,11 +72,10 @@ static Efreet_Test tests[] = { #endif {"Utils", ef_cb_utils}, {"Mime", ef_mime_cb_get}, - {NULL, NULL} + { } }; extern char **environ; -static Eina_List *environment = NULL; const char *ef_test_path_get(const char *component) { @@ -104,39 +103,12 @@ const char *ef_test_path_get(const char *component) return buf; } -void -environment_store(void) -{ - char *env; - char **e; -#ifdef HAVE_CLEARENV - EINA_LIST_FREE(environment, env) - free(env); - for (e = environ; *e; e++) - environment = eina_list_append(environment, strdup(*e)); -#endif -} - -void -environment_restore(void) -{ - Eina_List *l; - char *e; - if (!environment) return; -#ifdef HAVE_CLEARENV - clearenv(); - EINA_LIST_FOREACH(environment, l, e) - putenv(e); -#endif -} - int main(int argc, char ** argv) { int i, passed = 0, num_tests = 0; Eina_List *run = NULL; double total; - char *env; eina_init(); ecore_init(); @@ -160,7 +132,6 @@ main(int argc, char ** argv) } efreet_cache_update = 0; - environment_store(); for (i = 0; tests[i].name; i++) { int ret; @@ -182,21 +153,18 @@ main(int argc, char ** argv) printf("%s:\t\t", tests[i].name); fflush(stdout); start = ecore_time_get(); + + environ = NULL; ret = tests[i].cb(); + printf("%s in %.3f seconds\n", (ret ? "PASSED" : "FAILED"), ecore_time_get() - start); passed += ret; efreet_shutdown(); - environment_restore(); } printf("\n-----------------\n"); -#ifdef HAVE_CLEARENV - clearenv(); - EINA_LIST_FREE(environment, env) - free(env); -#endif printf("Passed %d of %d tests.\n", passed, num_tests); while (run)