You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
5.0 KiB
84 lines
5.0 KiB
From 8bd34d04ce8ca0ec4a501973771634083180ecc0 Mon Sep 17 00:00:00 2001 |
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> |
|
Date: Tue, 15 Mar 2022 10:13:18 +0100 |
|
Subject: [PATCH] test-systemctl-enable: extend the test for repeated |
|
WantedBy/RequiredBy |
|
|
|
I was considering deduplicating the list of target units in |
|
WantedBy/RequiredBy. But to do this meaningfully, we'd need to do alias |
|
expansion first, i.e. after the initial parsing is done. This seems to be |
|
more trouble than it would be worth. |
|
|
|
Instead, I added tests that we're doing the right thing and creating symlinks |
|
as expected. For duplicate links, we create the link, and on the second time we |
|
see that the link is already there, so the output is correct. |
|
|
|
(cherry picked from commit 0c003e8305188f25429938c7c4d09c0a5dfc961b) |
|
|
|
Related: #2082131 |
|
--- |
|
test/test-systemctl-enable.sh | 22 ++++++++++++++++++---- |
|
1 file changed, 18 insertions(+), 4 deletions(-) |
|
|
|
diff --git a/test/test-systemctl-enable.sh b/test/test-systemctl-enable.sh |
|
index 0ed08a9da3..0a0123b9d7 100644 |
|
--- a/test/test-systemctl-enable.sh |
|
+++ b/test/test-systemctl-enable.sh |
|
@@ -285,39 +285,53 @@ test ! -h "$root/etc/systemd/system/services.target.wants/templ1@one.service" |
|
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@two.service" |
|
|
|
: -------template enablement w/ default instance-------------- |
|
-cat >>"$root/etc/systemd/system/templ1@.service" <<EOF |
|
+cat >"$root/etc/systemd/system/templ1@.service" <<EOF |
|
+[Install] |
|
+# check enablement with |
|
+WantedBy=services.target services.target |
|
+RequiredBy=other@templ1.target other@%p.target |
|
DefaultInstance=333 |
|
EOF |
|
-# FIXME: should we deduplicate the target? Right now we warn twice if WantedBy= is repeated. |
|
-# WantedBy=services.target services.target |
|
|
|
"$systemctl" --root="$root" enable 'templ1@.service' |
|
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service" |
|
islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "/etc/systemd/system/templ1@.service" |
|
+islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "/etc/systemd/system/templ1@.service" |
|
|
|
"$systemctl" --root="$root" enable 'templ1@one.service' |
|
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service" |
|
islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "/etc/systemd/system/templ1@.service" |
|
+islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "/etc/systemd/system/templ1@.service" |
|
islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "/etc/systemd/system/templ1@.service" |
|
+islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@one.service" "/etc/systemd/system/templ1@.service" |
|
|
|
"$systemctl" --root="$root" enable 'templ1@two.service' |
|
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service" |
|
islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "/etc/systemd/system/templ1@.service" |
|
+islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "/etc/systemd/system/templ1@.service" |
|
islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "/etc/systemd/system/templ1@.service" |
|
+islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@one.service" "/etc/systemd/system/templ1@.service" |
|
islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "/etc/systemd/system/templ1@.service" |
|
+islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@two.service" "/etc/systemd/system/templ1@.service" |
|
|
|
"$systemctl" --root="$root" disable 'templ1@one.service' |
|
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service" |
|
islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "/etc/systemd/system/templ1@.service" |
|
+islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "/etc/systemd/system/templ1@.service" |
|
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@one.service" |
|
+test ! -h "$root/etc/systemd/system/other@templ1.target.requires/templ1@one.service" |
|
islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "/etc/systemd/system/templ1@.service" |
|
+islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@two.service" "/etc/systemd/system/templ1@.service" |
|
|
|
-# disable both remaining links here |
|
+# disable remaining links here |
|
"$systemctl" --root="$root" disable 'templ1@.service' |
|
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service" |
|
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@333.service" |
|
+test ! -h "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" |
|
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@one.service" |
|
+test ! -h "$root/etc/systemd/system/other@templ1.target.requires/templ1@one.service" |
|
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@two.service" |
|
+test ! -h "$root/etc/systemd/system/other@templ1.target.requires/templ1@two.service" |
|
|
|
: -------template enablement for another template------------- |
|
cat >"$root/etc/systemd/system/templ2@.service" <<EOF
|
|
|