From: Lucas De Marchi Date: Wed, 6 Jun 2012 04:42:30 +0000 (-0300) Subject: testsuite: allow to export custom env vars X-Git-Tag: v9~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=34db3f2d3e2438a2c173d051a8736083f63bd8c5;p=thirdparty%2Fkmod.git testsuite: allow to export custom env vars --- diff --git a/testsuite/testsuite.c b/testsuite/testsuite.c index 14af73ed..cc1d26bd 100644 --- a/testsuite/testsuite.c +++ b/testsuite/testsuite.c @@ -174,6 +174,7 @@ static void test_export_environ(const struct test *t) char *preload = NULL; size_t preloadlen = 0; size_t i; + const struct keyval *env; unsetenv("LD_PRELOAD"); @@ -207,6 +208,9 @@ static void test_export_environ(const struct test *t) setenv("LD_PRELOAD", preload, 1); free(preload); + + for (env = t->env_vars; env && env->key; env++) + setenv(env->key, env->val, 1); } static inline int test_run_child(const struct test *t, int fdout[2], diff --git a/testsuite/testsuite.h b/testsuite/testsuite.h index be3bfb85..e0825d5e 100644 --- a/testsuite/testsuite.h +++ b/testsuite/testsuite.h @@ -72,6 +72,10 @@ enum test_config { #define S_TC_INIT_MODULE_RETCODES "TESTSUITE_INIT_MODULE_RETCODES" #define S_TC_DELETE_MODULE_RETCODES "TESTSUITE_DELETE_MODULE_RETCODES" +struct keyval { + const char *key; + const char *val; +}; struct test { const char *name; @@ -83,6 +87,7 @@ struct test { testfunc func; const char *config[_TC_LAST]; const char *path; + const struct keyval *env_vars; bool need_spawn; bool expected_fail; };