From: Karel Zak Date: Thu, 26 Mar 2026 12:44:08 +0000 (+0100) Subject: tests: add btrfs RAID is-mounted test for libmount X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4583d15248fdce6b8bf969d57abac19eb616afcc;p=thirdparty%2Futil-linux.git tests: add btrfs RAID is-mounted test for libmount 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 --- diff --git a/tests/expected/libmount/tabfiles-is-mounted-btrfs b/tests/expected/libmount/tabfiles-is-mounted-btrfs new file mode 100644 index 0000000000..b3f7cf449f --- /dev/null +++ b/tests/expected/libmount/tabfiles-is-mounted-btrfs @@ -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 index 0000000000..b6a9a015a3 --- /dev/null +++ b/tests/ts/libmount/files/fstab_btrfs @@ -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 index 0000000000..fe2c759b16 --- /dev/null +++ b/tests/ts/libmount/files/mountinfo_btrfs @@ -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 diff --git a/tests/ts/libmount/tabfiles b/tests/ts/libmount/tabfiles index 1de740e6dc..819fc3547e 100755 --- a/tests/ts/libmount/tabfiles +++ b/tests/ts/libmount/tabfiles @@ -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