summaryrefslogtreecommitdiff
path: root/src/test/test-execute.c
diff options
context:
space:
mode:
authorFilipe Brandenburger <filbranden@google.com>2015-11-08 10:37:05 -0800
committerFilipe Brandenburger <filbranden@google.com>2015-11-11 07:55:23 -0800
commit4c80d201ace0377312c27143afab04e9c9f1ee64 (patch)
tree1d17a615d8278d640961a11a9c8eb06bcb5fe77d /src/test/test-execute.c
parent4ad4beec7f927d1d592d85bba6af2f7ba106ad8b (diff)
test-execute: Add tests for new PassEnvironment= directive
Check the base case, plus erasing the list, listing the same variable name more than once and when variables are absent from the manager execution environment. Confirmed that `sudo ./test-execute` passes and that modifying the test cases (or the values of the set variables in test-execute.c) is enough to make the test cases fail.
Diffstat (limited to 'src/test/test-execute.c')
-rw-r--r--src/test/test-execute.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/test/test-execute.c b/src/test/test-execute.c
index e2ec53ee51..baf7926cab 100644
--- a/src/test/test-execute.c
+++ b/src/test/test-execute.c
@@ -168,6 +168,19 @@ static void test_exec_environmentfile(Manager *m) {
unlink("/tmp/test-exec_environmentfile.conf");
}
+static void test_exec_passenvironment(Manager *m) {
+ assert_se(setenv("VAR1", "word1 word2", 1) == 0);
+ assert_se(setenv("VAR2", "word3", 1) == 0);
+ assert_se(setenv("VAR3", "$word 5 6", 1) == 0);
+ test(m, "exec-passenvironment.service", 0, CLD_EXITED);
+ test(m, "exec-passenvironment-repeated.service", 0, CLD_EXITED);
+ test(m, "exec-passenvironment-empty.service", 0, CLD_EXITED);
+ assert_se(unsetenv("VAR1") == 0);
+ assert_se(unsetenv("VAR2") == 0);
+ assert_se(unsetenv("VAR3") == 0);
+ test(m, "exec-passenvironment-absent.service", 0, CLD_EXITED);
+}
+
static void test_exec_umask(Manager *m) {
test(m, "exec-umask-default.service", 0, CLD_EXITED);
test(m, "exec-umask-0177.service", 0, CLD_EXITED);
@@ -237,6 +250,7 @@ int main(int argc, char *argv[]) {
test_exec_group,
test_exec_environment,
test_exec_environmentfile,
+ test_exec_passenvironment,
test_exec_umask,
test_exec_runtimedirectory,
test_exec_capabilityboundingset,