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