Re: [LTP] [PATCH v2 1/2] lib: tst_test: Add per filesystem mkfs and mount opts

Li Wang via ltp
2025-03-21T03:01:28Z

On Fri, Mar 21, 2025 at 1:31 AM Petr Vorel <pvorel@suse.cz> wrote:

> Hi Cyril, all,
>
> > This commit does:
>
> > * Group the filesystem type, mkfs and mount options into a separate
> > structure
>
> > * Add an array of these structures to be able to define per filesystem
> > mkfs and mount options
>
> > The details on the usage should be hopefully clear from the
> > documentation comments for the struct tst_test.
>
> FYI, this merged as cce6188916 ("lib: tst_test: Add per filesystem mkfs and
> mount opts") causes this behavior of none testing run when there is no
> suitable
> filesystem. I found it when trying to bisect something with rapido-linux
> and
> compile kernel without Btrfs and XFS. Don't we want to add some TCONF?
>

I think we need TCONF there. Can you confirm below change makes sense?

--- a/lib/tst_test.c
+++ b/lib/tst_test.c
@@ -1856,6 +1856,7 @@ static int run_tcases_per_fs(void)
int ret = 0;
unsigned int i;
const char *const *filesystems =
tst_get_supported_fs_types(tst_test->skip_filesystems);
+ bool found_valid_fs = false;

if (!filesystems[0])
tst_brk(TCONF, "There are no supported filesystems");
@@ -1866,6 +1867,7 @@ static int run_tcases_per_fs(void)
if (!fs)
continue;

+ found_valid_fs = true;
ret = run_tcase_on_fs(fs, filesystems[i]);

if (ret == TCONF)
@@ -1877,6 +1879,9 @@ static int run_tcases_per_fs(void)
do_exit(ret);
}

+ if (!found_valid_fs)
+ tst_brk(TCONF, "No required filesystems are available");
+
return ret;
}

>
> Kind regards,
> Petr
>
> ioctl_ficlone03.c:
> .filesystems = (struct tst_fs []) {
> {.type = "btrfs"},
> {.type = "bcachefs"},
> {
> .type = "xfs",
> .min_kver = "4.16",
> .mkfs_ver = "mkfs.xfs >= 1.5.0",
> .mkfs_opts = (const char *const []) {"-m",
> "reflink=1", NULL},
> },
> {}
> },
>
> rapido1:/opt/ltp/testcases/bin# ./ioctl_ficlone03; echo $?
> tst_buffers.c:57: TINFO: Test is using guarded buffers
> tst_tmpdir.c:317: TINFO: Using /tmp/LTP_iocSKLS9l as tmpdir (tmpfs
> filesystem)
> tst_device.c:99: TINFO: Found free device 0 '/dev/loop0'
> tst_test.c:1900: TINFO: LTP version: 20250130-166-g17960d952
> tst_test.c:1904: TINFO: Tested kernel: 4.5.0-00002-g22bd332f11d4 #162 SMP
> Thu Mar 20 18:00:10 CET 2025 x86_64
> tst_kconfig.c:88: TINFO: Parsing kernel config '/.config'
> tst_test.c:1724: TINFO: Overall timeout per run is 0h 00m 31s
> tst_supported_fs_types.c:97: TINFO: Kernel supports ext2
> tst_supported_fs_types.c:62: TINFO: mkfs.ext2 does exist
> tst_supported_fs_types.c:97: TINFO: Kernel supports ext3
> tst_supported_fs_types.c:62: TINFO: mkfs.ext3 does exist
> tst_supported_fs_types.c:97: TINFO: Kernel supports ext4
> tst_supported_fs_types.c:62: TINFO: mkfs.ext4 does exist
> tst_supported_fs_types.c:105: TINFO: Skipping bcachefs because of FUSE
> blacklist
> tst_supported_fs_types.c:97: TINFO: Kernel supports vfat
> tst_supported_fs_types.c:62: TINFO: mkfs.vfat does exist
> tst_supported_fs_types.c:97: TINFO: Kernel supports tmpfs
> tst_supported_fs_types.c:49: TINFO: mkfs is not needed for tmpfs
>
> Summary:
> passed 0
> failed 0
> broken 0
> skipped 0
> warnings 0
> 0
>
> rapido1:/opt/ltp/testcases/bin# grep -e CONFIG_BTRFS_FS -e CONFIG_XFS_FS
> /.config
> + grep -e CONFIG_BTRFS_FS -e CONFIG_XFS_FS /.config
> # CONFIG_XFS_FS is not set
> # CONFIG_BTRFS_FS is not set
>
>

--
Regards,
Li Wang