Skip to content

Commit 7dbfdef

Browse files
yuwatakeszybz
authored andcommitted
test: add test cases for fstab-generator
(cherry picked from commit 8cc8a07)
1 parent c6e4d8d commit 7dbfdef

File tree

54 files changed

+244
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+244
-1
lines changed

meson.build

+8-1
Original file line numberDiff line numberDiff line change
@@ -2123,7 +2123,7 @@ executable(
21232123
install : true,
21242124
install_dir : systemgeneratordir)
21252125

2126-
executable(
2126+
exe = executable(
21272127
'systemd-fstab-generator',
21282128
'src/fstab-generator/fstab-generator.c',
21292129
include_directories : includes,
@@ -2132,6 +2132,13 @@ executable(
21322132
install : true,
21332133
install_dir : systemgeneratordir)
21342134

2135+
if want_tests != 'false'
2136+
test('test-fstab-generator',
2137+
test_fstab_generator_sh,
2138+
# https://github.com/mesonbuild/meson/issues/2681
2139+
args : exe.full_path())
2140+
endif
2141+
21352142
if conf.get('ENABLE_ENVIRONMENT_D') == 1
21362143
executable(
21372144
'30-systemd-environment-d-generator',

test/meson.build

+8
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ if install_tests
1212
install_subdir('test-execute',
1313
exclude_files : '.gitattributes',
1414
install_dir : testdata_dir)
15+
install_subdir('test-fstab-generator',
16+
exclude_files : '.gitattributes',
17+
install_dir : testdata_dir)
1518
install_subdir('test-path',
1619
exclude_files : '.gitattributes',
1720
install_dir : testdata_dir)
@@ -83,6 +86,7 @@ if install_tests
8386
install_dir : testdata_dir)
8487
endif
8588

89+
test_fstab_generator_sh = find_program('test-fstab-generator.sh')
8690
test_network_generator_conversion_sh = find_program('test-network-generator-conversion.sh')
8791
test_systemd_tmpfiles_py = find_program('test-systemd-tmpfiles.py')
8892
hwdb_test_sh = find_program('hwdb-test.sh')
@@ -127,6 +131,10 @@ if install_tests
127131
install_mode : 'rwxr-xr-x',
128132
install_dir : testsdir)
129133

134+
install_data('test-fstab-generator.sh',
135+
install_mode : 'rwxr-xr-x',
136+
install_dir : testsdir)
137+
130138
install_data('test-network-generator-conversion.sh',
131139
install_mode : 'rwxr-xr-x',
132140
install_dir : testsdir)

test/test-fstab-generator.sh

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#!/usr/bin/env bash
2+
# SPDX-License-Identifier: LGPL-2.1-or-later
3+
set -ex
4+
5+
if [[ -n "$1" ]]; then
6+
generator=$1
7+
elif [[ -x /usr/lib/systemd/system-generators/systemd-fstab-generator ]]; then
8+
generator=/usr/lib/systemd/system-generators/systemd-fstab-generator
9+
elif [[ -x /lib/systemd/system-generators/systemd-fstab-generator ]]; then
10+
generator=/lib/systemd/system-generators/systemd-fstab-generator
11+
else
12+
exit 1
13+
fi
14+
15+
src="$(dirname "$0")/testdata/test-fstab-generator"
16+
17+
for f in "$src"/test-*.input; do
18+
echo "*** Running $f"
19+
20+
(
21+
out=$(mktemp --tmpdir --directory "test-fstab-generator.XXXXXXXXXX")
22+
# shellcheck disable=SC2064
23+
trap "rm -rf '$out'" EXIT INT QUIT PIPE
24+
25+
# shellcheck disable=SC2046
26+
SYSTEMD_LOG_LEVEL=debug SYSTEMD_IN_INITRD=yes SYSTEMD_PROC_CMDLINE="fstab=no $(cat "$f")" $generator "$out" "$out" "$out"
27+
28+
if [[ -f "$out"/systemd-fsck-root.service ]]; then
29+
# For split-usr system
30+
sed -i -e 's:ExecStart=/lib/systemd/systemd-fsck:ExecStart=/usr/lib/systemd/systemd-fsck:' "$out"/systemd-fsck-root.service
31+
fi
32+
33+
if ! diff -u "$out" "${f%.input}.expected"; then
34+
echo "**** Unexpected output for $f"
35+
exit 1
36+
fi
37+
) || exit 1
38+
done
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* generated
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
root=/dev/nfs nfsroot=192.168.0.1:/nfsroot/root1:rw
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
root=dhcp
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
root=dhcp6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
root=nfs:/nfsroot/root1:rw
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
root=nfs4:/nfsroot/root1:rw
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
root=192.168.0.1:/nfsroot/root1:rw
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
root=[2001:db8::1]:/nfsroot/root1:rw
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
root=/nfsroot/root1:rw
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
root=cifs://username:[email protected]:/cifsroot
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
root=iscsi:username:password@servername::::tgt
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
root=live:http://example.com/liveboot.img
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Automatically generated by systemd-fstab-generator
2+
3+
[Unit]
4+
Requires=dev-sdx1.device
5+
After=dev-sdx1.device
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Automatically generated by systemd-fstab-generator
2+
3+
[Unit]
4+
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
5+
SourcePath=/proc/cmdline
6+
Before=initrd-root-fs.target
7+
Requires=systemd-fsck-root.service
8+
After=systemd-fsck-root.service
9+
10+
11+
[Mount]
12+
What=/dev/sdx1
13+
Where=/sysroot
14+
Options=ro
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Automatically generated by systemd-fstab-generator
2+
3+
[Unit]
4+
Description=File System Check on /dev/sdx1
5+
Documentation=man:systemd-fsck-root.service(8)
6+
DefaultDependencies=no
7+
BindsTo=dev-sdx1.device
8+
Conflicts=shutdown.target
9+
After=initrd-root-device.target local-fs-pre.target dev-sdx1.device
10+
Before=shutdown.target
11+
12+
[Service]
13+
Type=oneshot
14+
RemainAfterExit=yes
15+
ExecStart=/usr/lib/systemd/systemd-fsck /dev/sdx1
16+
TimeoutSec=0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
root=/dev/sdx1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Automatically generated by systemd-fstab-generator
2+
3+
[Unit]
4+
Requires=dev-disk-by\x2dlabel-Root.device
5+
After=dev-disk-by\x2dlabel-Root.device
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Automatically generated by systemd-fstab-generator
2+
3+
[Unit]
4+
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
5+
SourcePath=/proc/cmdline
6+
Before=initrd-root-fs.target
7+
Requires=systemd-fsck-root.service
8+
After=systemd-fsck-root.service
9+
After=blockdev@dev-disk-by\x2dlabel-Root.target
10+
11+
[Mount]
12+
What=/dev/disk/by-label/Root
13+
Where=/sysroot
14+
Options=ro
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Automatically generated by systemd-fstab-generator
2+
3+
[Unit]
4+
Description=File System Check on /dev/disk/by-label/Root
5+
Documentation=man:systemd-fsck-root.service(8)
6+
DefaultDependencies=no
7+
BindsTo=dev-disk-by\x2dlabel-Root.device
8+
Conflicts=shutdown.target
9+
After=initrd-root-device.target local-fs-pre.target dev-disk-by\x2dlabel-Root.device
10+
Before=shutdown.target
11+
12+
[Service]
13+
Type=oneshot
14+
RemainAfterExit=yes
15+
ExecStart=/usr/lib/systemd/systemd-fsck /dev/disk/by-label/Root
16+
TimeoutSec=0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
root=LABEL=Root
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Automatically generated by systemd-fstab-generator
2+
3+
[Unit]
4+
Requires=dev-disk-by\x2duuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.device
5+
After=dev-disk-by\x2duuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.device
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Automatically generated by systemd-fstab-generator
2+
3+
[Unit]
4+
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
5+
SourcePath=/proc/cmdline
6+
Before=initrd-root-fs.target
7+
Requires=systemd-fsck-root.service
8+
After=systemd-fsck-root.service
9+
After=blockdev@dev-disk-by\x2duuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.target
10+
11+
[Mount]
12+
What=/dev/disk/by-uuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7
13+
Where=/sysroot
14+
Options=ro
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Automatically generated by systemd-fstab-generator
2+
3+
[Unit]
4+
Description=File System Check on /dev/disk/by-uuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7
5+
Documentation=man:systemd-fsck-root.service(8)
6+
DefaultDependencies=no
7+
BindsTo=dev-disk-by\x2duuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.device
8+
Conflicts=shutdown.target
9+
After=initrd-root-device.target local-fs-pre.target dev-disk-by\x2duuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.device
10+
Before=shutdown.target
11+
12+
[Service]
13+
Type=oneshot
14+
RemainAfterExit=yes
15+
ExecStart=/usr/lib/systemd/systemd-fsck /dev/disk/by-uuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7
16+
TimeoutSec=0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
root=UUID=3f5ad593-4546-4a94-a374-bcfb68aa11f7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Automatically generated by systemd-fstab-generator
2+
3+
[Unit]
4+
Requires=dev-disk-by\x2dpartuuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.device
5+
After=dev-disk-by\x2dpartuuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.device
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Automatically generated by systemd-fstab-generator
2+
3+
[Unit]
4+
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
5+
SourcePath=/proc/cmdline
6+
Before=initrd-root-fs.target
7+
Requires=systemd-fsck-root.service
8+
After=systemd-fsck-root.service
9+
After=blockdev@dev-disk-by\x2dpartuuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.target
10+
11+
[Mount]
12+
What=/dev/disk/by-partuuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7
13+
Where=/sysroot
14+
Options=ro
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Automatically generated by systemd-fstab-generator
2+
3+
[Unit]
4+
Description=File System Check on /dev/disk/by-partuuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7
5+
Documentation=man:systemd-fsck-root.service(8)
6+
DefaultDependencies=no
7+
BindsTo=dev-disk-by\x2dpartuuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.device
8+
Conflicts=shutdown.target
9+
After=initrd-root-device.target local-fs-pre.target dev-disk-by\x2dpartuuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.device
10+
Before=shutdown.target
11+
12+
[Service]
13+
Type=oneshot
14+
RemainAfterExit=yes
15+
ExecStart=/usr/lib/systemd/systemd-fsck /dev/disk/by-partuuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7
16+
TimeoutSec=0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
root=PARTUUID=3f5ad593-4546-4a94-a374-bcfb68aa11f7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sysroot.mount
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Automatically generated by systemd-fstab-generator
2+
3+
[Unit]
4+
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
5+
SourcePath=/proc/cmdline
6+
Before=initrd-root-fs.target
7+
8+
[Mount]
9+
What=rootfs
10+
Where=/sysroot
11+
Type=tmpfs
12+
Options=rw
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
root=tmpfs

0 commit comments

Comments
 (0)