aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.de.marchi@gmail.com>2012-06-06 01:42:30 -0300
committerLucas De Marchi <lucas.de.marchi@gmail.com>2012-06-06 01:45:30 -0300
commit34db3f2d3e2438a2c173d051a8736083f63bd8c5 (patch)
tree47c3db9efe9c37404e7879dbabbaad86fcecda32
parentb8e344a6d2c9526a7476b78255185a96097f2629 (diff)
downloadkmod-34db3f2d3e2438a2c173d051a8736083f63bd8c5.tar.gz
testsuite: allow to export custom env vars
-rw-r--r--testsuite/testsuite.c4
-rw-r--r--testsuite/testsuite.h5
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;
};