[LTP] [PATCH 1/1] swapon01: Test on all filesystems
Petr Vorel
pvorel@suse.cz
Mon Jan 22 09:24:37 CET 2024
Hi Li,
> 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.
OTOH if you prepared this, I'm ok to review and test.
I already run various tests on this.
Kind regards,
Petr
More information about the ltp
mailing list