diff options
author | Lucas De Marchi <lucas.de.marchi@gmail.com> | 2012-06-06 01:42:30 -0300 |
---|---|---|
committer | Lucas De Marchi <lucas.de.marchi@gmail.com> | 2012-06-06 01:45:30 -0300 |
commit | 34db3f2d3e2438a2c173d051a8736083f63bd8c5 (patch) | |
tree | 47c3db9efe9c37404e7879dbabbaad86fcecda32 | |
parent | b8e344a6d2c9526a7476b78255185a96097f2629 (diff) | |
download | kmod-34db3f2d3e2438a2c173d051a8736083f63bd8c5.tar.gz |
testsuite: allow to export custom env vars
-rw-r--r-- | testsuite/testsuite.c | 4 | ||||
-rw-r--r-- | testsuite/testsuite.h | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/testsuite/testsuite.c b/testsuite/testsuite.c index 14af73e..cc1d26b 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 be3bfb8..e0825d5 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; }; |