85 lines
5.0 KiB
Diff
85 lines
5.0 KiB
Diff
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
|