test: add coverage for systemctl preset in test-systemctl-enable.sh

Repeats the enable/disable specifier-expansion check with 'systemctl
preset' instead. preset-all is intentionally not exercised here, since
$root accumulates unit files from earlier sections that are
deliberately invalid, and preset-all would trip on those unrelated
units.

(cherry picked from commit 65f62301c2)
This commit is contained in:
Daniel28972897 authored and Luca Boccassi committed 2026-09-09 10:08:19 +01:00
1 parent 59aabb1889
commit ee2b6cd366
1 file changed
+31 -1
+31 -1
View File
@@ -713,7 +713,37 @@ test ! -h "$root/etc/systemd/system/another-target@.target.wants/some-some-link7
test ! -h "$root/etc/systemd/system/target2@some-some-link7.target.requires/some-some-link7.socket"
test ! -h "$root/etc/systemd/system/another-target2@.target.requires/some-some-link7.socket"
# TODO: repeat the tests above for presets
: '-------specifiers in presets------------------------------------'
# Repeat the check above, but via 'systemctl preset' instead
# of calling enable/disable directly. We reuse the same unit file, which is
# currently disabled (no symlinks) from the block above.
mkdir -p "$root/etc/systemd/system-preset"
cat >"$root/etc/systemd/system-preset/99-test.preset" <<EOF
enable some-some-link7.socket
EOF
"$systemctl" --root="$root" preset 'some-some-link7.socket'
islink "$root/etc/systemd/system/target@some-some-link7.target.wants/some-some-link7.socket" "/etc/systemd/system/some-some-link7.socket"
islink "$root/etc/systemd/system/another-target@.target.wants/some-some-link7.socket" "/etc/systemd/system/some-some-link7.socket"
islink "$root/etc/systemd/system/target2@some-some-link7.target.requires/some-some-link7.socket" "/etc/systemd/system/some-some-link7.socket"
islink "$root/etc/systemd/system/another-target2@.target.requires/some-some-link7.socket" "/etc/systemd/system/some-some-link7.socket"
cat >"$root/etc/systemd/system-preset/99-test.preset" <<EOF
disable some-some-link7.socket
EOF
"$systemctl" --root="$root" preset 'some-some-link7.socket'
test ! -h "$root/etc/systemd/system/target@some-some-link7.target.wants/some-some-link7.socket"
test ! -h "$root/etc/systemd/system/another-target@.target.wants/some-some-link7.socket"
test ! -h "$root/etc/systemd/system/target2@some-some-link7.target.requires/some-some-link7.socket"
test ! -h "$root/etc/systemd/system/another-target2@.target.requires/some-some-link7.socket"
# Not testing preset-all here: $root has leftover units from earlier
# sections that are deliberately invalid, and preset-all trips on those.
# Clean up so later tests aren't affected by this preset file.
rm -f "$root/etc/systemd/system-preset/99-test.preset"
: '-------SYSTEMD_OS_RELEASE relative to root---------------------'
# check that os-release overwriting works as expected with root