]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: add coverage for systemctl preset in test-systemctl-enable.sh
authorDaniel28972897 <danyboy28sep@gmail.com>
Sun, 26 Jul 2026 04:36:01 +0000 (22:36 -0600)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 26 Jul 2026 06:10:33 +0000 (15:10 +0900)
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.

test/test-systemctl-enable.sh

index 3fc59f6f9ee86cc274b370b48dc385d2762d1c81..d099b6f41ebf35de76f10d15a14027cbed8f907f 100644 (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