diff options
author | Mike Yuan <me@yhndnzj.com> | 2023-05-15 14:41:29 +0800 |
---|---|---|
committer | Mike Yuan <me@yhndnzj.com> | 2023-05-15 15:04:38 +0800 |
commit | b5b1351317db64de1f2c944ec153208ba8174079 (patch) | |
tree | 58829cff86441ad5ce0978ed591f1fd5e85b7795 | |
parent | 38f901791f3c4b1cbd04b71323bbef2fdab65f83 (diff) | |
download | systemd-b5b1351317db64de1f2c944ec153208ba8174079.tar.gz |
test: add tests for UpheldBy= in [Install] section
-rw-r--r-- | src/test/test-install-root.c | 12 | ||||
-rw-r--r-- | test/fuzz/fuzz-unit-file/directives-all.service | 2 | ||||
-rw-r--r-- | test/testsuite-23.units/testsuite-23-upheldby-install.service | 9 | ||||
-rwxr-xr-x | test/units/testsuite-23.Upholds.sh | 5 |
4 files changed, 25 insertions, 3 deletions
diff --git a/src/test/test-install-root.c b/src/test/test-install-root.c index 55b8894ecc..80166b17c6 100644 --- a/src/test/test-install-root.c +++ b/src/test/test-install-root.c @@ -1135,6 +1135,9 @@ TEST(verify_alias) { verify_one(&plain_service, "alias.socket", -EXDEV, NULL); verify_one(&plain_service, "alias@.service", -EXDEV, NULL); verify_one(&plain_service, "alias@inst.service", -EXDEV, NULL); + + /* Setting WantedBy= and RequiredBy= through Alias= is supported for the sake of backwards + * compatibility. */ verify_one(&plain_service, "foo.target.wants/plain.service", 0, NULL); verify_one(&plain_service, "foo.target.wants/plain.socket", -EXDEV, NULL); verify_one(&plain_service, "foo.target.wants/plain@.service", -EXDEV, NULL); @@ -1143,9 +1146,14 @@ TEST(verify_alias) { verify_one(&plain_service, "foo.target.requires/plain.socket", -EXDEV, NULL); verify_one(&plain_service, "foo.target.requires/plain@.service", -EXDEV, NULL); verify_one(&plain_service, "foo.target.requires/service", -EXDEV, NULL); - verify_one(&plain_service, "foo.target.conf/plain.service", -EXDEV, NULL); - verify_one(&plain_service, "foo.service/plain.service", -EXDEV, NULL); /* missing dir suffix */ verify_one(&plain_service, "asdf.requires/plain.service", -EXDEV, NULL); /* invalid unit name component */ + /* The newly-added UpheldBy= (.upholds/) and other suffixes should be rejected */ + verify_one(&plain_service, "foo.target.upholds/plain.service", -EXDEV, NULL); + verify_one(&plain_service, "foo.target.upholds/plain.socket", -EXDEV, NULL); + verify_one(&plain_service, "foo.target.upholds/plain@.service", -EXDEV, NULL); + verify_one(&plain_service, "foo.target.upholds/service", -EXDEV, NULL); + verify_one(&plain_service, "foo.service/plain.service", -EXDEV, NULL); /* missing dir suffix */ + verify_one(&plain_service, "foo.target.conf/plain.service", -EXDEV, NULL); verify_one(&bare_template, "alias.service", -EXDEV, NULL); verify_one(&bare_template, "alias.socket", -EXDEV, NULL); diff --git a/test/fuzz/fuzz-unit-file/directives-all.service b/test/fuzz/fuzz-unit-file/directives-all.service index 8450d024e6..818fb28dbf 100644 --- a/test/fuzz/fuzz-unit-file/directives-all.service +++ b/test/fuzz/fuzz-unit-file/directives-all.service @@ -269,6 +269,8 @@ Type= USBFunctionDescriptors= USBFunctionStrings= Unit= +UpheldBy= +Upholds= User= WakeSystem= WantedBy= diff --git a/test/testsuite-23.units/testsuite-23-upheldby-install.service b/test/testsuite-23.units/testsuite-23-upheldby-install.service new file mode 100644 index 0000000000..a4562077db --- /dev/null +++ b/test/testsuite-23.units/testsuite-23-upheldby-install.service @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +[Unit] +Description=Unit that sets UpheldBy= through [Install] + +[Service] +ExecStart=/bin/sleep infinity + +[Install] +UpheldBy=testsuite-23-retry-uphold.service diff --git a/test/units/testsuite-23.Upholds.sh b/test/units/testsuite-23.Upholds.sh index 21db258e1d..bce4d7205b 100755 --- a/test/units/testsuite-23.Upholds.sh +++ b/test/units/testsuite-23.Upholds.sh @@ -30,6 +30,8 @@ done systemctl stop testsuite-23-uphold.service +systemctl enable testsuite-23-upheldby-install.service + # Idea is this: # 1. we start testsuite-23-retry-uphold.service # 2. which through Uphold= starts testsuite-23-retry-upheld.service @@ -42,12 +44,13 @@ systemctl stop testsuite-23-uphold.service rm -f /tmp/testsuite-23-retry-fail systemctl start testsuite-23-retry-uphold.service +systemctl is-active testsuite-23-upheldby-install.service while ! systemctl is-failed testsuite-23-retry-fail.service ; do sleep .5 done -systemctl is-active testsuite-23-retry-upheld.service && { echo 'unexpected success'; exit 1; } +(! systemctl is-active testsuite-23-retry-upheld.service) touch /tmp/testsuite-23-retry-fail |