[LTP] [PATCH 1/1] swapon01: Test on all filesystems

Petr Vorel pvorel@suse.cz
Fri Jan 19 15:43:22 CET 2024


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
+	},
 };
-- 
2.43.0



More information about the ltp mailing list