summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2022-01-06 20:12:27 +0900
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2022-01-07 16:03:06 +0100
commit7dbfdefca31b2035e7c871f4e866442158429213 (patch)
tree42aa32256dc3050a0380c510483f6384f5077976
parentc6e4d8d9bd5d94f95d99b143540b86b020d64db1 (diff)
downloadsystemd-7dbfdefca31b2035e7c871f4e866442158429213.tar.gz
test: add test cases for fstab-generator
(cherry picked from commit 8cc8a073a834f3882b17115cd3e9a81f6a105898)
-rw-r--r--meson.build9
-rw-r--r--test/meson.build8
-rwxr-xr-xtest/test-fstab-generator.sh38
-rw-r--r--test/test-fstab-generator/.gitattributes1
l---------test/test-fstab-generator/test-01-dev-nfs.expected/initrd-usr-fs.target.requires/sysroot.mount1
-rw-r--r--test/test-fstab-generator/test-01-dev-nfs.input1
l---------test/test-fstab-generator/test-02-dhcp.expected/initrd-usr-fs.target.requires/sysroot.mount1
-rw-r--r--test/test-fstab-generator/test-02-dhcp.input1
l---------test/test-fstab-generator/test-03-dhcp6.expected/initrd-usr-fs.target.requires/sysroot.mount1
-rw-r--r--test/test-fstab-generator/test-03-dhcp6.input1
l---------test/test-fstab-generator/test-04-nfs.expected/initrd-usr-fs.target.requires/sysroot.mount1
-rw-r--r--test/test-fstab-generator/test-04-nfs.input1
l---------test/test-fstab-generator/test-05-nfs4.expected/initrd-usr-fs.target.requires/sysroot.mount1
-rw-r--r--test/test-fstab-generator/test-05-nfs4.input1
l---------test/test-fstab-generator/test-06-ipv4.expected/initrd-usr-fs.target.requires/sysroot.mount1
-rw-r--r--test/test-fstab-generator/test-06-ipv4.input1
l---------test/test-fstab-generator/test-07-ipv6.expected/initrd-usr-fs.target.requires/sysroot.mount1
-rw-r--r--test/test-fstab-generator/test-07-ipv6.input1
l---------test/test-fstab-generator/test-08-implicit-nfs.expected/initrd-usr-fs.target.requires/sysroot.mount1
-rw-r--r--test/test-fstab-generator/test-08-implicit-nfs.input1
l---------test/test-fstab-generator/test-09-cifs.expected/initrd-usr-fs.target.requires/sysroot.mount1
-rw-r--r--test/test-fstab-generator/test-09-cifs.input1
l---------test/test-fstab-generator/test-10-iscsi.expected/initrd-usr-fs.target.requires/sysroot.mount1
-rw-r--r--test/test-fstab-generator/test-10-iscsi.input1
l---------test/test-fstab-generator/test-11-live.expected/initrd-usr-fs.target.requires/sysroot.mount1
-rw-r--r--test/test-fstab-generator/test-11-live.input1
-rw-r--r--test/test-fstab-generator/test-12-dev-sdx.expected/initrd-root-device.target.d/50-root-device.conf5
l---------test/test-fstab-generator/test-12-dev-sdx.expected/initrd-root-fs.target.requires/sysroot.mount1
l---------test/test-fstab-generator/test-12-dev-sdx.expected/initrd-usr-fs.target.requires/sysroot.mount1
-rw-r--r--test/test-fstab-generator/test-12-dev-sdx.expected/sysroot.mount14
-rw-r--r--test/test-fstab-generator/test-12-dev-sdx.expected/systemd-fsck-root.service16
-rw-r--r--test/test-fstab-generator/test-12-dev-sdx.input1
-rw-r--r--test/test-fstab-generator/test-13-label.expected/initrd-root-device.target.d/50-root-device.conf5
l---------test/test-fstab-generator/test-13-label.expected/initrd-root-fs.target.requires/sysroot.mount1
l---------test/test-fstab-generator/test-13-label.expected/initrd-usr-fs.target.requires/sysroot.mount1
-rw-r--r--test/test-fstab-generator/test-13-label.expected/sysroot.mount14
-rw-r--r--test/test-fstab-generator/test-13-label.expected/systemd-fsck-root.service16
-rw-r--r--test/test-fstab-generator/test-13-label.input1
-rw-r--r--test/test-fstab-generator/test-14-uuid.expected/initrd-root-device.target.d/50-root-device.conf5
l---------test/test-fstab-generator/test-14-uuid.expected/initrd-root-fs.target.requires/sysroot.mount1
l---------test/test-fstab-generator/test-14-uuid.expected/initrd-usr-fs.target.requires/sysroot.mount1
-rw-r--r--test/test-fstab-generator/test-14-uuid.expected/sysroot.mount14
-rw-r--r--test/test-fstab-generator/test-14-uuid.expected/systemd-fsck-root.service16
-rw-r--r--test/test-fstab-generator/test-14-uuid.input1
-rw-r--r--test/test-fstab-generator/test-15-partuuid.expected/initrd-root-device.target.d/50-root-device.conf5
l---------test/test-fstab-generator/test-15-partuuid.expected/initrd-root-fs.target.requires/sysroot.mount1
l---------test/test-fstab-generator/test-15-partuuid.expected/initrd-usr-fs.target.requires/sysroot.mount1
-rw-r--r--test/test-fstab-generator/test-15-partuuid.expected/sysroot.mount14
-rw-r--r--test/test-fstab-generator/test-15-partuuid.expected/systemd-fsck-root.service16
-rw-r--r--test/test-fstab-generator/test-15-partuuid.input1
l---------test/test-fstab-generator/test-16-tmpfs.expected/initrd-root-fs.target.requires/sysroot.mount1
l---------test/test-fstab-generator/test-16-tmpfs.expected/initrd-usr-fs.target.requires/sysroot.mount1
-rw-r--r--test/test-fstab-generator/test-16-tmpfs.expected/sysroot.mount12
-rw-r--r--test/test-fstab-generator/test-16-tmpfs.input1
54 files changed, 244 insertions, 1 deletions
diff --git a/meson.build b/meson.build
index c6f71673f1..e07875a054 100644
--- a/meson.build
+++ b/meson.build
@@ -2123,7 +2123,7 @@ executable(
install : true,
install_dir : systemgeneratordir)
-executable(
+exe = executable(
'systemd-fstab-generator',
'src/fstab-generator/fstab-generator.c',
include_directories : includes,
@@ -2132,6 +2132,13 @@ executable(
install : true,
install_dir : systemgeneratordir)
+if want_tests != 'false'
+ test('test-fstab-generator',
+ test_fstab_generator_sh,
+ # https://github.com/mesonbuild/meson/issues/2681
+ args : exe.full_path())
+endif
+
if conf.get('ENABLE_ENVIRONMENT_D') == 1
executable(
'30-systemd-environment-d-generator',
diff --git a/test/meson.build b/test/meson.build
index 95e61f827c..8de1043e17 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -12,6 +12,9 @@ if install_tests
install_subdir('test-execute',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
+ install_subdir('test-fstab-generator',
+ exclude_files : '.gitattributes',
+ install_dir : testdata_dir)
install_subdir('test-path',
exclude_files : '.gitattributes',
install_dir : testdata_dir)
@@ -83,6 +86,7 @@ if install_tests
install_dir : testdata_dir)
endif
+test_fstab_generator_sh = find_program('test-fstab-generator.sh')
test_network_generator_conversion_sh = find_program('test-network-generator-conversion.sh')
test_systemd_tmpfiles_py = find_program('test-systemd-tmpfiles.py')
hwdb_test_sh = find_program('hwdb-test.sh')
@@ -127,6 +131,10 @@ if install_tests
install_mode : 'rwxr-xr-x',
install_dir : testsdir)
+ install_data('test-fstab-generator.sh',
+ install_mode : 'rwxr-xr-x',
+ install_dir : testsdir)
+
install_data('test-network-generator-conversion.sh',
install_mode : 'rwxr-xr-x',
install_dir : testsdir)
diff --git a/test/test-fstab-generator.sh b/test/test-fstab-generator.sh
new file mode 100755
index 0000000000..a27c397cce
--- /dev/null
+++ b/test/test-fstab-generator.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: LGPL-2.1-or-later
+set -ex
+
+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
+
+ if ! diff -u "$out" "${f%.input}.expected"; then
+ echo "**** Unexpected output for $f"
+ exit 1
+ fi
+ ) || exit 1
+done
diff --git a/test/test-fstab-generator/.gitattributes b/test/test-fstab-generator/.gitattributes
new file mode 100644
index 0000000000..6df434f423
--- /dev/null
+++ b/test/test-fstab-generator/.gitattributes
@@ -0,0 +1 @@
+* generated
diff --git a/test/test-fstab-generator/test-01-dev-nfs.expected/initrd-usr-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-01-dev-nfs.expected/initrd-usr-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-01-dev-nfs.expected/initrd-usr-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-01-dev-nfs.input b/test/test-fstab-generator/test-01-dev-nfs.input
new file mode 100644
index 0000000000..50a1230b74
--- /dev/null
+++ b/test/test-fstab-generator/test-01-dev-nfs.input
@@ -0,0 +1 @@
+root=/dev/nfs nfsroot=192.168.0.1:/nfsroot/root1:rw
diff --git a/test/test-fstab-generator/test-02-dhcp.expected/initrd-usr-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-02-dhcp.expected/initrd-usr-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-02-dhcp.expected/initrd-usr-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-02-dhcp.input b/test/test-fstab-generator/test-02-dhcp.input
new file mode 100644
index 0000000000..5aa159bafb
--- /dev/null
+++ b/test/test-fstab-generator/test-02-dhcp.input
@@ -0,0 +1 @@
+root=dhcp
diff --git a/test/test-fstab-generator/test-03-dhcp6.expected/initrd-usr-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-03-dhcp6.expected/initrd-usr-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-03-dhcp6.expected/initrd-usr-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-03-dhcp6.input b/test/test-fstab-generator/test-03-dhcp6.input
new file mode 100644
index 0000000000..f4c998ecdb
--- /dev/null
+++ b/test/test-fstab-generator/test-03-dhcp6.input
@@ -0,0 +1 @@
+root=dhcp6
diff --git a/test/test-fstab-generator/test-04-nfs.expected/initrd-usr-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-04-nfs.expected/initrd-usr-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-04-nfs.expected/initrd-usr-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-04-nfs.input b/test/test-fstab-generator/test-04-nfs.input
new file mode 100644
index 0000000000..6d2fb39db1
--- /dev/null
+++ b/test/test-fstab-generator/test-04-nfs.input
@@ -0,0 +1 @@
+root=nfs:/nfsroot/root1:rw
diff --git a/test/test-fstab-generator/test-05-nfs4.expected/initrd-usr-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-05-nfs4.expected/initrd-usr-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-05-nfs4.expected/initrd-usr-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-05-nfs4.input b/test/test-fstab-generator/test-05-nfs4.input
new file mode 100644
index 0000000000..0584069b96
--- /dev/null
+++ b/test/test-fstab-generator/test-05-nfs4.input
@@ -0,0 +1 @@
+root=nfs4:/nfsroot/root1:rw
diff --git a/test/test-fstab-generator/test-06-ipv4.expected/initrd-usr-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-06-ipv4.expected/initrd-usr-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-06-ipv4.expected/initrd-usr-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-06-ipv4.input b/test/test-fstab-generator/test-06-ipv4.input
new file mode 100644
index 0000000000..a486663024
--- /dev/null
+++ b/test/test-fstab-generator/test-06-ipv4.input
@@ -0,0 +1 @@
+root=192.168.0.1:/nfsroot/root1:rw
diff --git a/test/test-fstab-generator/test-07-ipv6.expected/initrd-usr-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-07-ipv6.expected/initrd-usr-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-07-ipv6.expected/initrd-usr-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-07-ipv6.input b/test/test-fstab-generator/test-07-ipv6.input
new file mode 100644
index 0000000000..92b292c3d8
--- /dev/null
+++ b/test/test-fstab-generator/test-07-ipv6.input
@@ -0,0 +1 @@
+root=[2001:db8::1]:/nfsroot/root1:rw
diff --git a/test/test-fstab-generator/test-08-implicit-nfs.expected/initrd-usr-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-08-implicit-nfs.expected/initrd-usr-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-08-implicit-nfs.expected/initrd-usr-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-08-implicit-nfs.input b/test/test-fstab-generator/test-08-implicit-nfs.input
new file mode 100644
index 0000000000..12aaa3fe90
--- /dev/null
+++ b/test/test-fstab-generator/test-08-implicit-nfs.input
@@ -0,0 +1 @@
+root=/nfsroot/root1:rw
diff --git a/test/test-fstab-generator/test-09-cifs.expected/initrd-usr-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-09-cifs.expected/initrd-usr-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-09-cifs.expected/initrd-usr-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-09-cifs.input b/test/test-fstab-generator/test-09-cifs.input
new file mode 100644
index 0000000000..9d4af6a835
--- /dev/null
+++ b/test/test-fstab-generator/test-09-cifs.input
@@ -0,0 +1 @@
+root=cifs://username:password@192.168.0.1:/cifsroot
diff --git a/test/test-fstab-generator/test-10-iscsi.expected/initrd-usr-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-10-iscsi.expected/initrd-usr-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-10-iscsi.expected/initrd-usr-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-10-iscsi.input b/test/test-fstab-generator/test-10-iscsi.input
new file mode 100644
index 0000000000..99327b1ff2
--- /dev/null
+++ b/test/test-fstab-generator/test-10-iscsi.input
@@ -0,0 +1 @@
+root=iscsi:username:password@servername::::tgt
diff --git a/test/test-fstab-generator/test-11-live.expected/initrd-usr-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-11-live.expected/initrd-usr-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-11-live.expected/initrd-usr-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-11-live.input b/test/test-fstab-generator/test-11-live.input
new file mode 100644
index 0000000000..81f60ab24b
--- /dev/null
+++ b/test/test-fstab-generator/test-11-live.input
@@ -0,0 +1 @@
+root=live:http://example.com/liveboot.img
diff --git a/test/test-fstab-generator/test-12-dev-sdx.expected/initrd-root-device.target.d/50-root-device.conf b/test/test-fstab-generator/test-12-dev-sdx.expected/initrd-root-device.target.d/50-root-device.conf
new file mode 100644
index 0000000000..47c4232223
--- /dev/null
+++ b/test/test-fstab-generator/test-12-dev-sdx.expected/initrd-root-device.target.d/50-root-device.conf
@@ -0,0 +1,5 @@
+# Automatically generated by systemd-fstab-generator
+
+[Unit]
+Requires=dev-sdx1.device
+After=dev-sdx1.device
diff --git a/test/test-fstab-generator/test-12-dev-sdx.expected/initrd-root-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-12-dev-sdx.expected/initrd-root-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-12-dev-sdx.expected/initrd-root-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-12-dev-sdx.expected/initrd-usr-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-12-dev-sdx.expected/initrd-usr-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-12-dev-sdx.expected/initrd-usr-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-12-dev-sdx.expected/sysroot.mount b/test/test-fstab-generator/test-12-dev-sdx.expected/sysroot.mount
new file mode 100644
index 0000000000..8f8ef48617
--- /dev/null
+++ b/test/test-fstab-generator/test-12-dev-sdx.expected/sysroot.mount
@@ -0,0 +1,14 @@
+# Automatically generated by systemd-fstab-generator
+
+[Unit]
+Documentation=man:fstab(5) man:systemd-fstab-generator(8)
+SourcePath=/proc/cmdline
+Before=initrd-root-fs.target
+Requires=systemd-fsck-root.service
+After=systemd-fsck-root.service
+After=blockdev@dev-sdx1.target
+
+[Mount]
+What=/dev/sdx1
+Where=/sysroot
+Options=ro
diff --git a/test/test-fstab-generator/test-12-dev-sdx.expected/systemd-fsck-root.service b/test/test-fstab-generator/test-12-dev-sdx.expected/systemd-fsck-root.service
new file mode 100644
index 0000000000..7f914fdd14
--- /dev/null
+++ b/test/test-fstab-generator/test-12-dev-sdx.expected/systemd-fsck-root.service
@@ -0,0 +1,16 @@
+# Automatically generated by systemd-fstab-generator
+
+[Unit]
+Description=File System Check on /dev/sdx1
+Documentation=man:systemd-fsck-root.service(8)
+DefaultDependencies=no
+BindsTo=dev-sdx1.device
+Conflicts=shutdown.target
+After=initrd-root-device.target local-fs-pre.target dev-sdx1.device
+Before=shutdown.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/lib/systemd/systemd-fsck /dev/sdx1
+TimeoutSec=0
diff --git a/test/test-fstab-generator/test-12-dev-sdx.input b/test/test-fstab-generator/test-12-dev-sdx.input
new file mode 100644
index 0000000000..8aa56b5774
--- /dev/null
+++ b/test/test-fstab-generator/test-12-dev-sdx.input
@@ -0,0 +1 @@
+root=/dev/sdx1
diff --git a/test/test-fstab-generator/test-13-label.expected/initrd-root-device.target.d/50-root-device.conf b/test/test-fstab-generator/test-13-label.expected/initrd-root-device.target.d/50-root-device.conf
new file mode 100644
index 0000000000..eada96c231
--- /dev/null
+++ b/test/test-fstab-generator/test-13-label.expected/initrd-root-device.target.d/50-root-device.conf
@@ -0,0 +1,5 @@
+# Automatically generated by systemd-fstab-generator
+
+[Unit]
+Requires=dev-disk-by\x2dlabel-Root.device
+After=dev-disk-by\x2dlabel-Root.device
diff --git a/test/test-fstab-generator/test-13-label.expected/initrd-root-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-13-label.expected/initrd-root-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-13-label.expected/initrd-root-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-13-label.expected/initrd-usr-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-13-label.expected/initrd-usr-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-13-label.expected/initrd-usr-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-13-label.expected/sysroot.mount b/test/test-fstab-generator/test-13-label.expected/sysroot.mount
new file mode 100644
index 0000000000..98698d5968
--- /dev/null
+++ b/test/test-fstab-generator/test-13-label.expected/sysroot.mount
@@ -0,0 +1,14 @@
+# Automatically generated by systemd-fstab-generator
+
+[Unit]
+Documentation=man:fstab(5) man:systemd-fstab-generator(8)
+SourcePath=/proc/cmdline
+Before=initrd-root-fs.target
+Requires=systemd-fsck-root.service
+After=systemd-fsck-root.service
+After=blockdev@dev-disk-by\x2dlabel-Root.target
+
+[Mount]
+What=/dev/disk/by-label/Root
+Where=/sysroot
+Options=ro
diff --git a/test/test-fstab-generator/test-13-label.expected/systemd-fsck-root.service b/test/test-fstab-generator/test-13-label.expected/systemd-fsck-root.service
new file mode 100644
index 0000000000..a1327396ca
--- /dev/null
+++ b/test/test-fstab-generator/test-13-label.expected/systemd-fsck-root.service
@@ -0,0 +1,16 @@
+# Automatically generated by systemd-fstab-generator
+
+[Unit]
+Description=File System Check on /dev/disk/by-label/Root
+Documentation=man:systemd-fsck-root.service(8)
+DefaultDependencies=no
+BindsTo=dev-disk-by\x2dlabel-Root.device
+Conflicts=shutdown.target
+After=initrd-root-device.target local-fs-pre.target dev-disk-by\x2dlabel-Root.device
+Before=shutdown.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/lib/systemd/systemd-fsck /dev/disk/by-label/Root
+TimeoutSec=0
diff --git a/test/test-fstab-generator/test-13-label.input b/test/test-fstab-generator/test-13-label.input
new file mode 100644
index 0000000000..75a3696c41
--- /dev/null
+++ b/test/test-fstab-generator/test-13-label.input
@@ -0,0 +1 @@
+root=LABEL=Root
diff --git a/test/test-fstab-generator/test-14-uuid.expected/initrd-root-device.target.d/50-root-device.conf b/test/test-fstab-generator/test-14-uuid.expected/initrd-root-device.target.d/50-root-device.conf
new file mode 100644
index 0000000000..67b84692b0
--- /dev/null
+++ b/test/test-fstab-generator/test-14-uuid.expected/initrd-root-device.target.d/50-root-device.conf
@@ -0,0 +1,5 @@
+# Automatically generated by systemd-fstab-generator
+
+[Unit]
+Requires=dev-disk-by\x2duuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.device
+After=dev-disk-by\x2duuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.device
diff --git a/test/test-fstab-generator/test-14-uuid.expected/initrd-root-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-14-uuid.expected/initrd-root-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-14-uuid.expected/initrd-root-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-14-uuid.expected/initrd-usr-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-14-uuid.expected/initrd-usr-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-14-uuid.expected/initrd-usr-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-14-uuid.expected/sysroot.mount b/test/test-fstab-generator/test-14-uuid.expected/sysroot.mount
new file mode 100644
index 0000000000..999acb0b23
--- /dev/null
+++ b/test/test-fstab-generator/test-14-uuid.expected/sysroot.mount
@@ -0,0 +1,14 @@
+# Automatically generated by systemd-fstab-generator
+
+[Unit]
+Documentation=man:fstab(5) man:systemd-fstab-generator(8)
+SourcePath=/proc/cmdline
+Before=initrd-root-fs.target
+Requires=systemd-fsck-root.service
+After=systemd-fsck-root.service
+After=blockdev@dev-disk-by\x2duuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.target
+
+[Mount]
+What=/dev/disk/by-uuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7
+Where=/sysroot
+Options=ro
diff --git a/test/test-fstab-generator/test-14-uuid.expected/systemd-fsck-root.service b/test/test-fstab-generator/test-14-uuid.expected/systemd-fsck-root.service
new file mode 100644
index 0000000000..5945560287
--- /dev/null
+++ b/test/test-fstab-generator/test-14-uuid.expected/systemd-fsck-root.service
@@ -0,0 +1,16 @@
+# Automatically generated by systemd-fstab-generator
+
+[Unit]
+Description=File System Check on /dev/disk/by-uuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7
+Documentation=man:systemd-fsck-root.service(8)
+DefaultDependencies=no
+BindsTo=dev-disk-by\x2duuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.device
+Conflicts=shutdown.target
+After=initrd-root-device.target local-fs-pre.target dev-disk-by\x2duuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.device
+Before=shutdown.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/lib/systemd/systemd-fsck /dev/disk/by-uuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7
+TimeoutSec=0
diff --git a/test/test-fstab-generator/test-14-uuid.input b/test/test-fstab-generator/test-14-uuid.input
new file mode 100644
index 0000000000..676246a8ba
--- /dev/null
+++ b/test/test-fstab-generator/test-14-uuid.input
@@ -0,0 +1 @@
+root=UUID=3f5ad593-4546-4a94-a374-bcfb68aa11f7
diff --git a/test/test-fstab-generator/test-15-partuuid.expected/initrd-root-device.target.d/50-root-device.conf b/test/test-fstab-generator/test-15-partuuid.expected/initrd-root-device.target.d/50-root-device.conf
new file mode 100644
index 0000000000..583f47c5a9
--- /dev/null
+++ b/test/test-fstab-generator/test-15-partuuid.expected/initrd-root-device.target.d/50-root-device.conf
@@ -0,0 +1,5 @@
+# Automatically generated by systemd-fstab-generator
+
+[Unit]
+Requires=dev-disk-by\x2dpartuuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.device
+After=dev-disk-by\x2dpartuuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.device
diff --git a/test/test-fstab-generator/test-15-partuuid.expected/initrd-root-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-15-partuuid.expected/initrd-root-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-15-partuuid.expected/initrd-root-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-15-partuuid.expected/initrd-usr-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-15-partuuid.expected/initrd-usr-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-15-partuuid.expected/initrd-usr-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-15-partuuid.expected/sysroot.mount b/test/test-fstab-generator/test-15-partuuid.expected/sysroot.mount
new file mode 100644
index 0000000000..d10fb6ef76
--- /dev/null
+++ b/test/test-fstab-generator/test-15-partuuid.expected/sysroot.mount
@@ -0,0 +1,14 @@
+# Automatically generated by systemd-fstab-generator
+
+[Unit]
+Documentation=man:fstab(5) man:systemd-fstab-generator(8)
+SourcePath=/proc/cmdline
+Before=initrd-root-fs.target
+Requires=systemd-fsck-root.service
+After=systemd-fsck-root.service
+After=blockdev@dev-disk-by\x2dpartuuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.target
+
+[Mount]
+What=/dev/disk/by-partuuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7
+Where=/sysroot
+Options=ro
diff --git a/test/test-fstab-generator/test-15-partuuid.expected/systemd-fsck-root.service b/test/test-fstab-generator/test-15-partuuid.expected/systemd-fsck-root.service
new file mode 100644
index 0000000000..aa1d455ecd
--- /dev/null
+++ b/test/test-fstab-generator/test-15-partuuid.expected/systemd-fsck-root.service
@@ -0,0 +1,16 @@
+# Automatically generated by systemd-fstab-generator
+
+[Unit]
+Description=File System Check on /dev/disk/by-partuuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7
+Documentation=man:systemd-fsck-root.service(8)
+DefaultDependencies=no
+BindsTo=dev-disk-by\x2dpartuuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.device
+Conflicts=shutdown.target
+After=initrd-root-device.target local-fs-pre.target dev-disk-by\x2dpartuuid-3f5ad593\x2d4546\x2d4a94\x2da374\x2dbcfb68aa11f7.device
+Before=shutdown.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/lib/systemd/systemd-fsck /dev/disk/by-partuuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7
+TimeoutSec=0
diff --git a/test/test-fstab-generator/test-15-partuuid.input b/test/test-fstab-generator/test-15-partuuid.input
new file mode 100644
index 0000000000..d59490d844
--- /dev/null
+++ b/test/test-fstab-generator/test-15-partuuid.input
@@ -0,0 +1 @@
+root=PARTUUID=3f5ad593-4546-4a94-a374-bcfb68aa11f7
diff --git a/test/test-fstab-generator/test-16-tmpfs.expected/initrd-root-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-16-tmpfs.expected/initrd-root-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-16-tmpfs.expected/initrd-root-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-16-tmpfs.expected/initrd-usr-fs.target.requires/sysroot.mount b/test/test-fstab-generator/test-16-tmpfs.expected/initrd-usr-fs.target.requires/sysroot.mount
new file mode 120000
index 0000000000..0c969cdbd4
--- /dev/null
+++ b/test/test-fstab-generator/test-16-tmpfs.expected/initrd-usr-fs.target.requires/sysroot.mount
@@ -0,0 +1 @@
+../sysroot.mount \ No newline at end of file
diff --git a/test/test-fstab-generator/test-16-tmpfs.expected/sysroot.mount b/test/test-fstab-generator/test-16-tmpfs.expected/sysroot.mount
new file mode 100644
index 0000000000..6bd9a07f2c
--- /dev/null
+++ b/test/test-fstab-generator/test-16-tmpfs.expected/sysroot.mount
@@ -0,0 +1,12 @@
+# Automatically generated by systemd-fstab-generator
+
+[Unit]
+Documentation=man:fstab(5) man:systemd-fstab-generator(8)
+SourcePath=/proc/cmdline
+Before=initrd-root-fs.target
+
+[Mount]
+What=rootfs
+Where=/sysroot
+Type=tmpfs
+Options=rw
diff --git a/test/test-fstab-generator/test-16-tmpfs.input b/test/test-fstab-generator/test-16-tmpfs.input
new file mode 100644
index 0000000000..0d36184eb1
--- /dev/null
+++ b/test/test-fstab-generator/test-16-tmpfs.input
@@ -0,0 +1 @@
+root=tmpfs