From: Karel Zak Date: Wed, 15 Jul 2026 11:06:24 +0000 (+0200) Subject: tests: add libmount VFS test X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8444080fd6ed6ff2991eafc333dcc266d471e1c9;p=thirdparty%2Futil-linux.git tests: add libmount VFS test Add test script that exercises the pluggable VFS I/O operations: table-fstab -- verify vfs_fopen callback for fstab parsing table-mountinfo -- verify vfs_fopen callback for mountinfo parsing blkid -- verify vfs_open/read/lseek/close for device probing Signed-off-by: Karel Zak --- diff --git a/tests/expected/libmount/vfs-blkid b/tests/expected/libmount/vfs-blkid new file mode 100644 index 000000000..9eacf1fff --- /dev/null +++ b/tests/expected/libmount/vfs-blkid @@ -0,0 +1,2 @@ +VFS calls: open=1 close=1 read=N write=0 lseek=N +blkid: DEVICE type=ext2 diff --git a/tests/expected/libmount/vfs-table-fstab b/tests/expected/libmount/vfs-table-fstab new file mode 100644 index 000000000..c4161682b --- /dev/null +++ b/tests/expected/libmount/vfs-table-fstab @@ -0,0 +1,3 @@ +VFS: fopen("files/fstab", "re") +VFS calls: open=0 close=0 read=0 write=0 lseek=0 +table: parsed 11 entries diff --git a/tests/expected/libmount/vfs-table-mountinfo b/tests/expected/libmount/vfs-table-mountinfo new file mode 100644 index 000000000..8b5ac6b61 --- /dev/null +++ b/tests/expected/libmount/vfs-table-mountinfo @@ -0,0 +1,3 @@ +VFS: fopen("files/mountinfo", "re") +VFS calls: open=0 close=0 read=0 write=0 lseek=0 +table: parsed 33 entries diff --git a/tests/ts/libmount/vfs b/tests/ts/libmount/vfs new file mode 100755 index 000000000..af3fecd8b --- /dev/null +++ b/tests/ts/libmount/vfs @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +# Copyright (C) 2025 Karel Zak + +TS_TOPDIR="${0%/*}/../.." +TS_DESC="VFS" + +. "$TS_TOPDIR"/functions.sh +ts_init "$*" + +ts_skip_nonroot +ts_check_prog "mkfs.ext2" + +TESTPROG="$TS_HELPER_LIBMOUNT_CONTEXT" + +[ -x $TESTPROG ] || ts_skip "test not compiled" + +ts_scsi_debug_init dev_size_mb=10 +mkfs.ext2 -F "$TS_DEVICE" &> /dev/null || ts_skip "mkfs.ext2 failed" +udevadm settle + +ts_init_subtest "table-fstab" +ts_run $TESTPROG --vfs --table "$TS_SELF/files/fstab" &> "$TS_OUTPUT" +sed -i -e 's,VFS: fopen(".*/files/,VFS: fopen("files/,g' "$TS_OUTPUT" +ts_finalize_subtest + +ts_init_subtest "table-mountinfo" +ts_run $TESTPROG --vfs --table "$TS_SELF/files/mountinfo" &> "$TS_OUTPUT" +sed -i -e 's,VFS: fopen(".*/files/,VFS: fopen("files/,g' "$TS_OUTPUT" +ts_finalize_subtest + +ts_init_subtest "blkid" +ts_run $TESTPROG --vfs --blkid "$TS_DEVICE" &> "$TS_OUTPUT" +sed -i -e "s,$TS_DEVICE,DEVICE,g" \ + -e 's,read=[0-9]*,read=N,g' \ + -e 's,lseek=[0-9]*,lseek=N,g' "$TS_OUTPUT" +ts_finalize_subtest + +ts_finalize