mirror of
https://github.com/systemd/systemd.git
synced 2024-12-04 15:53:41 +08:00
e683878c0f
Dangling symlinks get pruned when packaging up the installation directory. Just store empty files instead, and compare the names rather than the content for .requires/.wants - the filename is what is important anyway, the content is ignored. Fixes #22059
41 lines
1.5 KiB
Bash
Executable File
41 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
set -e
|
|
|
|
if [[ -n "$1" ]]; then
|
|
generator=$1
|
|
elif [[ -x /usr/lib/systemd/system-generators/systemd-fstab-generator ]]; then
|
|
generator=/usr/lib/systemd/system-generators/systemd-fstab-generator
|
|
elif [[ -x /lib/systemd/system-generators/systemd-fstab-generator ]]; then
|
|
generator=/lib/systemd/system-generators/systemd-fstab-generator
|
|
else
|
|
exit 1
|
|
fi
|
|
|
|
src="$(dirname "$0")/testdata/test-fstab-generator"
|
|
|
|
for f in "$src"/test-*.input; do
|
|
echo "*** Running $f"
|
|
|
|
(
|
|
out=$(mktemp --tmpdir --directory "test-fstab-generator.XXXXXXXXXX")
|
|
# shellcheck disable=SC2064
|
|
trap "rm -rf '$out'" EXIT INT QUIT PIPE
|
|
|
|
# shellcheck disable=SC2046
|
|
SYSTEMD_LOG_LEVEL=debug SYSTEMD_IN_INITRD=yes SYSTEMD_PROC_CMDLINE="fstab=no $(cat "$f")" $generator "$out" "$out" "$out"
|
|
|
|
if [[ -f "$out"/systemd-fsck-root.service ]]; then
|
|
# For split-usr system
|
|
sed -i -e 's:ExecStart=/lib/systemd/systemd-fsck:ExecStart=/usr/lib/systemd/systemd-fsck:' "$out"/systemd-fsck-root.service
|
|
fi
|
|
|
|
# We store empty files rather than symlinks, so that they don't get pruned when packaged up, so compare
|
|
# the list of filenames rather than their content
|
|
if ! diff -u <(find "$out" -printf '%P\n' | sort) <(find "${f%.input}.expected" -printf '%P\n' | sort); then
|
|
echo "**** Unexpected output for $f"
|
|
exit 1
|
|
fi
|
|
) || exit 1
|
|
done
|