mirror of
https://github.com/systemd/systemd.git
synced 2025-03-31 14:50:15 +03:00
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.
This commit is contained in:
parent
4ad4beec7f
commit
4c80d201ac
@ -1546,6 +1546,10 @@ EXTRA_DIST += \
|
||||
test/test-execute/exec-environment-empty.service \
|
||||
test/test-execute/exec-environment-multiple.service \
|
||||
test/test-execute/exec-environment.service \
|
||||
test/test-execute/exec-passenvironment-absent.service \
|
||||
test/test-execute/exec-passenvironment-empty.service \
|
||||
test/test-execute/exec-passenvironment-repeated.service \
|
||||
test/test-execute/exec-passenvironment.service \
|
||||
test/test-execute/exec-group.service \
|
||||
test/test-execute/exec-ignoresigpipe-no.service \
|
||||
test/test-execute/exec-ignoresigpipe-yes.service \
|
||||
|
@ -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,
|
||||
|
7
test/test-execute/exec-passenvironment-absent.service
Normal file
7
test/test-execute/exec-passenvironment-absent.service
Normal file
@ -0,0 +1,7 @@
|
||||
[Unit]
|
||||
Description=Test for PassEnvironment with variables absent from the execution environment
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -x -c 'test "$${VAR1-unset}" = "unset" && test "$${VAR2-unset}" = "unset" && test "$${VAR3-unset}" = "unset"'
|
||||
Type=oneshot
|
||||
PassEnvironment=VAR1 VAR2 VAR3
|
8
test/test-execute/exec-passenvironment-empty.service
Normal file
8
test/test-execute/exec-passenvironment-empty.service
Normal file
@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Test for PassEnvironment and erasing the variable list
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -x -c 'test "$${VAR1-unset}" = "unset" && test "$${VAR2-unset}" = "unset" && test "$${VAR3-unset}" = "unset"'
|
||||
Type=oneshot
|
||||
PassEnvironment=VAR1 VAR2 VAR3
|
||||
PassEnvironment=
|
8
test/test-execute/exec-passenvironment-repeated.service
Normal file
8
test/test-execute/exec-passenvironment-repeated.service
Normal file
@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Test for PassEnvironment with a variable name repeated
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -x -c 'test "$$VAR1" = "word1 word2" && test "$$VAR2" = word3 && test "$$VAR3" = "\\$$word 5 6"'
|
||||
Type=oneshot
|
||||
PassEnvironment=VAR1 VAR2
|
||||
PassEnvironment=VAR1 VAR3
|
7
test/test-execute/exec-passenvironment.service
Normal file
7
test/test-execute/exec-passenvironment.service
Normal file
@ -0,0 +1,7 @@
|
||||
[Unit]
|
||||
Description=Test for PassEnvironment
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -x -c 'test "$$VAR1" = "word1 word2" && test "$$VAR2" = word3 && test "$$VAR3" = "\\$$word 5 6"'
|
||||
Type=oneshot
|
||||
PassEnvironment=VAR1 VAR2 VAR3
|
Loading…
x
Reference in New Issue
Block a user