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:
parent
7f8c67c996
commit
aeded6b0b5
@ -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
|
||||
|
@ -0,0 +1 @@
|
||||
../sysroot-usr.mount
|
@ -0,0 +1 @@
|
||||
../sysroot.mount
|
@ -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
|
@ -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
|
@ -0,0 +1 @@
|
||||
../mnt-requiredby.mount
|
@ -0,0 +1 @@
|
||||
../mnt-wantedby.mount
|
@ -0,0 +1,4 @@
|
||||
# Automatically generated by systemd-fstab-generator
|
||||
|
||||
[Unit]
|
||||
After=systemd-growfs@mnt-growfs.service
|
@ -0,0 +1 @@
|
||||
../mnt-after.mount
|
@ -0,0 +1 @@
|
||||
../mnt-automount1.automount
|
@ -0,0 +1 @@
|
||||
../mnt-before.mount
|
@ -0,0 +1 @@
|
||||
../mnt-growfs.mount
|
@ -0,0 +1 @@
|
||||
../mnt-mkfs.mount
|
@ -0,0 +1 @@
|
||||
../mnt-pcrfs.mount
|
@ -0,0 +1 @@
|
||||
../mnt-reqmounts.mount
|
@ -0,0 +1 @@
|
||||
../mnt-requires.mount
|
@ -0,0 +1 @@
|
||||
../mnt-rwonly.mount
|
@ -0,0 +1 @@
|
||||
../mnt-timeout.mount
|
@ -0,0 +1 @@
|
||||
../sysroot.mount
|
@ -0,0 +1 @@
|
||||
../mnt-automount2.automount
|
@ -0,0 +1 @@
|
||||
../mnt-nofail.mount
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -0,0 +1 @@
|
||||
../systemd-makefs@dev-sdx12.service
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
Loading…
x
Reference in New Issue
Block a user