1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-18 10:04:04 +03:00

test-fstab-generator: also test with SYSTEMD_IN_INITRD=no

This commit is contained in:
Yu Watanabe 2023-07-26 07:04:48 +09:00
parent 7f8c67c996
commit aeded6b0b5
44 changed files with 301 additions and 10 deletions

View File

@ -24,11 +24,12 @@ PATH=$PATH:/usr/sbin
export SYSTEMD_FORCE_MEASURE=0
test_one() (
local input out exp i j k dir fname expf
local initrd input out exp i j k dir fname expf
input=${1?}
initrd=${2?}
: "*** Running $input"
: "*** Running $input (initrd=$initrd)"
out=$(mktemp --tmpdir --directory "test-fstab-generator.XXXXXXXXXX")
# shellcheck disable=SC2064
@ -38,17 +39,21 @@ test_one() (
if [[ "${input##*/}" =~ swap ]] && systemd-detect-virt --container >/dev/null; then
exp="${exp}.container"
fi
if [[ "$initrd" == no ]]; then
exp="${exp}.sysroot"
fi
if [[ "${input##*/}" =~ \.fstab\.input ]]; then
SYSTEMD_LOG_LEVEL=debug SYSTEMD_IN_INITRD=yes SYSTEMD_SYSFS_CHECK=no SYSTEMD_PROC_CMDLINE="fstab=yes root=fstab" SYSTEMD_FSTAB="$input" SYSTEMD_SYSROOT_FSTAB="/dev/null" $generator "$out" "$out" "$out"
SYSTEMD_LOG_LEVEL=debug SYSTEMD_IN_INITRD="$initrd" SYSTEMD_SYSFS_CHECK=no SYSTEMD_PROC_CMDLINE="fstab=yes root=fstab" SYSTEMD_FSTAB="$input" SYSTEMD_SYSROOT_FSTAB="/dev/null" $generator "$out" "$out" "$out"
else
SYSTEMD_LOG_LEVEL=debug SYSTEMD_IN_INITRD=yes SYSTEMD_SYSFS_CHECK=no SYSTEMD_PROC_CMDLINE="fstab=no $(cat "$input")" $generator "$out" "$out" "$out"
SYSTEMD_LOG_LEVEL=debug SYSTEMD_IN_INITRD="$initrd" SYSTEMD_SYSFS_CHECK=no SYSTEMD_PROC_CMDLINE="fstab=no $(cat "$input")" $generator "$out" "$out" "$out"
fi
# The option x-systemd.growfs creates symlink to system's systemd-growfs@.service in .mount.wants directory.
# Also, when $initrd is no, symlink to systemd-remount-fs.service is created.
# The system that the test is currently running on may not have or may have outdated unit file.
# Let's replace the symlink with an empty file.
for i in "$out"/*/systemd-growfs@*.service; do
for i in "$out"/*/systemd-growfs@*.service "$out"/local-fs.target.wants/systemd-remount-fs.service; do
[[ -L "$i" ]] || continue
rm "$i"
touch "$i"
@ -80,16 +85,21 @@ test_one() (
fi
done
# We do not store empty directory.
if [[ -z "$(ls -A "$out")" && ! -d "$exp" ]]; then
return 0
fi
# We store empty files rather than dead 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 "$exp" -printf '%P\n' | sort); then
: "**** Unexpected output for $input"
: "**** Unexpected output for $input (initrd=$initrd)"
return 1
fi
# Check the main units.
if ! diff -u "$out" "$exp"; then
: "**** Unexpected output for $input"
: "**** Unexpected output for $input (initrd=$initrd)"
return 1
fi
@ -106,14 +116,14 @@ test_one() (
if [[ -L "$j" && ! -e "$j" ]]; then
# For dead symlink, we store an empty file.
if [[ ! -e "$expf" || -n "$(cat "$expf")" ]]; then
: "**** Unexpected symlink $j created by $input"
: "**** Unexpected symlink $j created by $input (initrd=$initrd)"
return 1
fi
continue
fi
if ! diff -u "$j" "$expf"; then
: "**** Unexpected output in $j for $input"
: "**** Unexpected output in $j for $input (initrd=$initrd)"
return 1
fi
done
@ -123,5 +133,6 @@ test_one() (
)
for f in "$src"/test-*.input; do
test_one "$f"
test_one "$f" yes
test_one "$f" no
done

View File

@ -0,0 +1,11 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
Before=local-fs.target
After=blockdev@dev-sdx2.target
[Mount]
What=/dev/sdx2
Where=/sysroot/usr

View File

@ -0,0 +1,13 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
Before=local-fs.target
Requires=systemd-fsck@dev-sdx1.service
After=systemd-fsck@dev-sdx1.service
After=blockdev@dev-sdx1.target
[Mount]
What=/dev/sdx1
Where=/sysroot

View File

@ -0,0 +1,4 @@
# Automatically generated by systemd-fstab-generator
[Unit]
After=systemd-growfs@mnt-growfs.service

View File

@ -0,0 +1,13 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
After=foo.service
Before=local-fs.target
After=blockdev@dev-sdx3.target
[Mount]
What=/dev/sdx3
Where=/mnt/after
Options=x-systemd.after=foo.service

View File

@ -0,0 +1,9 @@
# Automatically generated by systemd-fstab-generator
[Unit]
SourcePath=/etc/fstab
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
[Automount]
Where=/mnt/automount1
TimeoutIdleSec=30min

View File

@ -0,0 +1,12 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
Before=local-fs.target
After=blockdev@dev-sdx9.target
[Mount]
What=/dev/sdx9
Where=/mnt/automount1
Options=x-systemd.automount,x-systemd.idle-timeout=30m

View File

@ -0,0 +1,8 @@
# Automatically generated by systemd-fstab-generator
[Unit]
SourcePath=/etc/fstab
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
[Automount]
Where=/mnt/automount2

View File

@ -0,0 +1,11 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
After=blockdev@dev-sdx10.target
[Mount]
What=/dev/sdx10
Where=/mnt/automount2
Options=x-systemd.automount,nofail

View File

@ -0,0 +1,13 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
Before=foo.service
Before=local-fs.target
After=blockdev@dev-sdx4.target
[Mount]
What=/dev/sdx4
Where=/mnt/before
Options=x-systemd.before=foo.service

View File

@ -0,0 +1,12 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
Before=local-fs.target
After=blockdev@dev-sdx13.target
[Mount]
What=/dev/sdx13
Where=/mnt/growfs
Options=x-systemd.growfs

View File

@ -0,0 +1,13 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
Before=local-fs.target
After=blockdev@dev-sdx12.target
[Mount]
What=/dev/sdx12
Where=/mnt/mkfs
Type=ext4
Options=x-systemd.makefs

View File

@ -0,0 +1,12 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
Before=local-fs.target
After=blockdev@dev-sdx15.target
[Mount]
What=/dev/sdx15
Where=/mnt/noauto
Options=noauto

View File

@ -0,0 +1,11 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
After=blockdev@dev-sdx16.target
[Mount]
What=/dev/sdx16
Where=/mnt/nofail
Options=nofail

View File

@ -0,0 +1,12 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
Before=local-fs.target
After=blockdev@dev-sdx14.target
[Mount]
What=/dev/sdx14
Where=/mnt/pcrfs
Options=x-systemd.pcrfs

View File

@ -0,0 +1,13 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
RequiresMountsFor=/hoge
Before=local-fs.target
After=blockdev@dev-sdx6.target
[Mount]
What=/dev/sdx6
Where=/mnt/reqmounts
Options=x-systemd.requires-mounts-for=/hoge

View File

@ -0,0 +1,12 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
Before=local-fs.target
After=blockdev@dev-sdx8.target
[Mount]
What=/dev/sdx8
Where=/mnt/requiredby
Options=x-systemd.required-by=foo.service

View File

@ -0,0 +1,14 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
After=foo.service
Requires=foo.service
Before=local-fs.target
After=blockdev@dev-sdx5.target
[Mount]
What=/dev/sdx5
Where=/mnt/requires
Options=x-systemd.requires=foo.service

View File

@ -0,0 +1,13 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
Before=local-fs.target
After=blockdev@dev-sdx11.target
[Mount]
What=/dev/sdx11
Where=/mnt/rwonly
Options=x-systemd.rw-only
ReadWriteOnly=yes

View File

@ -0,0 +1,13 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
Before=local-fs.target
After=blockdev@dev-sdx2.target
[Mount]
What=/dev/sdx2
Where=/mnt/timeout
TimeoutSec=10min
Options=x-systemd.mount-timeout=10m

View File

@ -0,0 +1,12 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
Before=local-fs.target
After=blockdev@dev-sdx7.target
[Mount]
What=/dev/sdx7
Where=/mnt/wantedby
Options=x-systemd.wanted-by=foo.service

View File

@ -0,0 +1,13 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
Before=local-fs.target
Requires=systemd-fsck@dev-sdx1.service
After=systemd-fsck@dev-sdx1.service
After=blockdev@dev-sdx1.target
[Mount]
What=/dev/sdx1
Where=/sysroot

View File

@ -0,0 +1,18 @@
# Automatically generated by systemd-fstab-generator
[Unit]
Description=Make File System on %f
Documentation=man:systemd-makefs@.service(8)
DefaultDependencies=no
BindsTo=%i.device
After=%i.device
Before=systemd-fsck@%i.service mnt-mkfs.mount
Conflicts=shutdown.target
Before=shutdown.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/lib/systemd/systemd-makefs ext4 /dev/sdx12
TimeoutSec=infinity