[LTP] [PATCH 1/1] swapon01: Test on all filesystems
Li Wang
liwang@redhat.com
Mon Jan 22 08:50:21 CET 2024
On Mon, Jan 22, 2024 at 2:27 PM Petr Vorel <pvorel@suse.cz> wrote:
> Hi Li, Cyril,
>
> > Hi Petr, Cyril,
>
> > On Fri, Jan 19, 2024 at 10:43 PM Petr Vorel <pvorel@suse.cz> wrote:
>
> > > Test on all filesystems to increase coverage.
> > > Skip filesystems which does not support swap (currently bcachefs, btrfs
> > > and tmpfs).
>
> > > Tested on 5.10, 6.6 and 6.7.
>
> > > Signed-off-by: Petr Vorel <pvorel@suse.cz>
> > > ---
> > > Hi Li, Cyril,
>
> > > feel free to postpone this after the release.
> > > If we are for adding this, I'll retest on Monday older filesystems.
>
> > > man swapon(8) mentions:
>
> > > Btrfs
> > > Swap files on Btrfs are supported since Linux 5.0 on files with
> > > nocow
> > > attribute. See the btrfs(5) manual page for more details.
>
> > > => Can we pass "nocow" just to btrfs? Or should it be added to single
> > > test, which uses just btrfs with nocow?
>
> > > NFS
> > > Swap over NFS may not work.
>
> > > => I guess this is not important for us, as NFS is not part of
> > > filesystems in .all_filesystems, but maybe we should still add it to
> the
> > > whitelist?
>
> > > Kind regards,
> > > Petr
>
> > > testcases/kernel/syscalls/swapon/swapon01.c | 21 +++++++++++++++------
> > > 1 file changed, 15 insertions(+), 6 deletions(-)
>
> > > diff --git a/testcases/kernel/syscalls/swapon/swapon01.c
> > > b/testcases/kernel/syscalls/swapon/swapon01.c
> > > index e59fb20a1..ef4ebfdcf 100644
> > > --- a/testcases/kernel/syscalls/swapon/swapon01.c
> > > +++ b/testcases/kernel/syscalls/swapon/swapon01.c
> > > @@ -8,6 +8,7 @@
> > > * [Description]
> > > *
> > > * Checks that swapon() succeds with swapfile.
> > > + * Testing on all filesystems which support swap file.
> > > */
>
> > > #include <unistd.h>
> > > @@ -17,13 +18,14 @@
> > > #include "lapi/syscalls.h"
> > > #include "libswap.h"
>
> > > -#define SWAP_FILE "swapfile01"
> > > +#define MNTPOINT "mntpoint"
> > > +#define SWAP_FILE MNTPOINT"/swapfile01"
>
> > > static void verify_swapon(void)
> > > {
> > > TST_EXP_PASS(tst_syscall(__NR_swapon, SWAP_FILE, 0));
>
> > > - if (TST_PASS && tst_syscall(__NR_swapoff, SWAP_FILE) != 0) {
> > > + if (tst_syscall(__NR_swapoff, SWAP_FILE) != 0) {
> > > tst_brk(TBROK | TERRNO,
> > > "Failed to turn off swapfile, system
> > > reboot recommended");
> > > }
> > > @@ -31,13 +33,20 @@ static void verify_swapon(void)
>
> > > static void setup(void)
> > > {
> > > - is_swap_supported(SWAP_FILE);
> > > make_swapfile(SWAP_FILE, 0);
> > > }
>
> > > static struct tst_test test = {
> > > - .needs_root = 1,
> > > - .needs_tmpdir = 1,
> > > + .mntpoint = MNTPOINT,
> > > + .mount_device = 1,
> > > + .needs_root = 1, /* for swapon() */
> > > + .all_filesystems = 1,
> > > .test_all = verify_swapon,
> > > - .setup = setup
> > > + .setup = setup,
> > > + .skip_filesystems = (const char *[]) {
> > > + "bcachefs",
> > > + "btrfs",
> > > + "tmpfs",
> > > + NULL
> > > + },
>
>
>
> > IMHO, I hate to add the skip_filesystem in this test, because if we do,
> > then we have to add to all of the related swap tests that, it add more
> > tedious work to people.
>
> First I thought it'd be ok to have just single test which uses
> all_filesystems
> (better one than none), but sure, having all of them would be better.
>
> > So, if we decide to postpone this patch to release, we can just refactor
> > the is_swap_supported() function to make things easier. I will send an
> RFC
> > patch to show something in my mind, what we need to do later is just
> > to finalize the swap_supported_fs[] struct list.
>
> Sure, this is not critical, it can wait if you have better solution. Thanks
> for spending time on it.
>
Yes, but it is ready there 1/4 :).
https://lists.linux.it/pipermail/ltp/2024-January/036804.html
The rest work is just to finalize the swap_supported_fs list.
And, I agree that all of these can be postponed. Because
so far it won't be a critical/urgent-fix for a new release.
--
Regards,
Li Wang
More information about the ltp
mailing list