]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
tests: add btrfs RAID is-mounted test for libmount
authorKarel Zak <kzak@redhat.com>
Thu, 26 Mar 2026 12:44:08 +0000 (13:44 +0100)
committerKarel Zak <kzak@redhat.com>
Thu, 26 Mar 2026 12:44:08 +0000 (13:44 +0100)
Add a test that verifies mnt_table_is_fs_mounted() correctly detects
already-mounted btrfs subvolumes when the fstab source device differs
from the one in mountinfo (simulating btrfs RAID).

The test uses synthetic mountinfo and fstab files with /dev/sdc1 in
mountinfo and /dev/sdc2 in fstab, covering both subvol= and
subvolid= variants.

Addresses: https://github.com/util-linux/util-linux/issues/3778
Signed-off-by: Karel Zak <kzak@redhat.com>
tests/expected/libmount/tabfiles-is-mounted-btrfs [new file with mode: 0644]
tests/ts/libmount/files/fstab_btrfs [new file with mode: 0644]
tests/ts/libmount/files/mountinfo_btrfs [new file with mode: 0644]
tests/ts/libmount/tabfiles

diff --git a/tests/expected/libmount/tabfiles-is-mounted-btrfs b/tests/expected/libmount/tabfiles-is-mounted-btrfs
new file mode 100644 (file)
index 0000000..b3f7cf4
--- /dev/null
@@ -0,0 +1,10 @@
+/dev/sdc1 already mounted on /
+/dev/sdc1 already mounted on /mnt/a
+/dev/sdc1 already mounted on /var/lib/containers
+/dev/sdc1 already mounted on /var/lib/libvirt
+/dev/sdc2 already mounted on /
+/dev/sdc2 already mounted on /mnt/a
+/dev/sdc2 already mounted on /var/lib/containers
+/dev/sdc2 already mounted on /var/lib/libvirt
+/dev/sdc2 already mounted on /var/tmp
+/dev/sdc2 already mounted on /var/cache
diff --git a/tests/ts/libmount/files/fstab_btrfs b/tests/ts/libmount/files/fstab_btrfs
new file mode 100644 (file)
index 0000000..b6a9a01
--- /dev/null
@@ -0,0 +1,10 @@
+/dev/sdc1 / btrfs compress=zstd,subvol=root 0 0
+/dev/sdc1 /mnt/a btrfs compress=zstd,subvolid=5 0 0
+/dev/sdc1 /var/lib/containers btrfs compress=zstd,subvol=containers 0 0
+/dev/sdc1 /var/lib/libvirt btrfs compress=zstd,subvolid=263 0 0
+/dev/sdc2 / btrfs compress=zstd,subvol=root 0 0
+/dev/sdc2 /mnt/a btrfs compress=zstd,subvolid=5 0 0
+/dev/sdc2 /var/lib/containers btrfs compress=zstd,subvol=containers 0 0
+/dev/sdc2 /var/lib/libvirt btrfs compress=zstd,subvolid=263 0 0
+/dev/sdc2 /var/tmp btrfs nodev,nosuid,noatime,compress=zstd,subvol=var_tmp 0 0
+/dev/sdc2 /var/cache btrfs nodev,nosuid,noatime,compress=zstd,subvol=var_cache 0 0
diff --git a/tests/ts/libmount/files/mountinfo_btrfs b/tests/ts/libmount/files/mountinfo_btrfs
new file mode 100644 (file)
index 0000000..fe2c759
--- /dev/null
@@ -0,0 +1,8 @@
+15 1 0:3 / /proc rw,relatime - proc proc rw
+16 1 0:15 / /sys rw,relatime - sysfs sysfs rw
+20 1 259:3 /root / rw,relatime - btrfs /dev/sdc1 rw,compress=zstd:3,ssd,space_cache=v2,subvolid=256,subvol=/root
+21 1 259:3 / /mnt/a rw,relatime - btrfs /dev/sdc1 rw,compress=zstd:3,ssd,space_cache=v2,subvolid=5,subvol=/
+22 1 259:3 /containers /var/lib/containers rw,relatime - btrfs /dev/sdc1 rw,compress=zstd:3,ssd,space_cache=v2,subvolid=262,subvol=/containers
+23 1 259:3 /vm /var/lib/libvirt rw,relatime - btrfs /dev/sdc1 rw,compress=zstd:3,ssd,space_cache=v2,subvolid=263,subvol=/vm
+24 1 259:3 /var_tmp /var/tmp rw,noatime,nosuid,nodev - btrfs /dev/sdc1 rw,compress=zstd:3,ssd,space_cache=v2,subvolid=264,subvol=/var_tmp
+25 1 259:3 /var_cache /var/cache rw,noatime,nosuid,nodev - btrfs /dev/sdc1 rw,compress=zstd:3,ssd,space_cache=v2,subvolid=265,subvol=/var_cache
index 1de740e6dc6f882fd45306c64a94a184feea80e6..819fc3547e0d9a13e831bfbd095c218206a095e9 100755 (executable)
@@ -82,4 +82,8 @@ ts_run $TESTPROG --find-fs "$TS_SELF/files/mountinfo" /home/kzak &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
+ts_init_subtest "is-mounted-btrfs"
+ts_run $TESTPROG --is-mounted "$TS_SELF/files/fstab_btrfs" "$TS_SELF/files/mountinfo_btrfs" &> $TS_OUTPUT
+ts_finalize_subtest
+
 ts_finalize