FS/XFS testing framework
 help / color / mirror / Atom feed
From: Zorro Lang <zlang@kernel.org>
To: fstests@vger.kernel.org
Cc: Theodore Ts'o <tytso@mit.edu>
Subject: [RFC PATCH 2/4] check: update usage and README to reflect new argument parsing
Date: Tue, 12 May 2026 21:25:37 +0800	[thread overview]
Message-ID: <20260512132539.931482-3-zlang@kernel.org> (raw)
In-Reply-To: <20260512132539.931482-1-zlang@kernel.org>

Update usage() function, README.* files and some comments to match
the new argument parsing method.

Signed-off-by: Zorro Lang <zlang@kernel.org>
---
 README         | 10 +++---
 README.overlay | 18 +++++------
 check          | 85 ++++++++++++++++++++++++++------------------------
 common/config  |  8 ++---
 common/rc      |  2 +-
 5 files changed, 63 insertions(+), 60 deletions(-)

diff --git a/README b/README
index e0cee43a..8644f163 100644
--- a/README
+++ b/README
@@ -386,7 +386,7 @@ Misc:
  - Set DIFF_LENGTH to "number of diff lines to print from a failed test",
    by default 10, set to 0 to print the full diff
  - set IDMAPPED_MOUNTS=true to run all tests on top of idmapped mounts. While
-   this option is supported for all filesystems currently only -overlay is
+   this option is supported for all filesystems currently only `--fs overlay` is
    expected to run without issues. For other filesystems additional patches
    and fixes to the test suite might be needed.
  - Set REPORT_VARS_FILE to a file containing colon-separated name-value pairs
@@ -417,10 +417,10 @@ Running tests:
     - To randomize test order: ./check -r [test(s)]
     - You can explicitly specify NFS/AFS/CIFS/OVERLAY, otherwise
       the filesystem type will be autodetected from $TEST_DEV:
-        - for running nfs tests: ./check -nfs [test(s)]
-        - for running afs tests: ./check -afs [test(s)]
-        - for running cifs/smb3 tests: ./check -cifs [test(s)]
-        - for overlay tests: ./check -overlay [test(s)]
+        - for running nfs tests: ./check --fs nfs [test(s)]
+        - for running afs tests: ./check --fs afs [test(s)]
+        - for running cifs/smb3 tests: ./check --fs cifs [test(s)]
+        - for overlay tests: ./check --fs overlay [test(s)]
           The TEST and SCRATCH partitions should be pre-formatted
           with another base fs, where the overlay dirs will be created
 
diff --git a/README.overlay b/README.overlay
index 3093bf8c..52bcd332 100644
--- a/README.overlay
+++ b/README.overlay
@@ -1,5 +1,5 @@
 To run xfstest on overlayfs, configure the variables of TEST and SCRATCH
-partitions to be used as the "base fs" and run './check -overlay'.
+partitions to be used as the "base fs" and run './check --fs overlay'.
 
 For example, the following config file can be used to run tests on
 xfs test/scratch partitions:
@@ -10,24 +10,24 @@ xfs test/scratch partitions:
  SCRATCH_MNT=/mnt/scratch
  FSTYP=xfs
 
-Using the same config file, but executing './check -overlay' will
+Using the same config file, but executing './check --fs overlay' will
 use the same partitions as base fs for overlayfs directories
 and set TEST_DIR/SCRATCH_MNT values to overlay mount points, i.e.:
 /mnt/test/ovl-mnt and /mnt/scratch/ovl-mnt, for the context of
 individual tests.
 
-'./check -overlay' does not support mkfs and fsck on the base fs, so
-the base fs should be pre-formatted before starting the -overlay run.
+'./check --fs overlay' does not support mkfs and fsck on the base fs, so
+the base fs should be pre-formatted before starting the --fs overlay run.
 An easy way to accomplish this is by running './check <some test>' once,
-before running './check -overlay'.
+before running './check --fs overlay'.
 
-'./check -overlay' support check overlay test and scratch dirs,
+'./check --fs overlay' support check overlay test and scratch dirs,
 OVERLAY_FSCK_OPTIONS should be set instead of FSCK_OPTIONS if fsck
 options need to given directly.
 
 Because of the lack of mkfs support, multi-section config files are only
-partly supported with './check -overlay'. Only multi-section files that
-do not change FSTYP and MKFS_OPTIONS can be safely used with -overlay.
+partly supported with './check --fs overlay'. Only multi-section files that
+do not change FSTYP and MKFS_OPTIONS can be safely used with --fs overlay.
 
 For example, the following multi-section config file can be used to
 run overlay tests on the same base fs, but with different mount options, and on
@@ -66,7 +66,7 @@ To enable running unionmount testsuite, clone the git repository from:
 under the xfstests src directory, or set the environment variable
 UNIONMOUNT_TESTSUITE to the local path where the repository was cloned.
 
-Run './check -overlay -g overlay/union' to execute all the unionmount testsuite
+Run './check --fs overlay -g overlay/union' to execute all the unionmount testsuite
 test cases.
 
 
diff --git a/check b/check
index 11bdf81b..5fe35e8e 100755
--- a/check
+++ b/check
@@ -56,43 +56,47 @@ export SRC_DIR="tests"
 
 usage()
 {
-    echo "Usage: $0 [options] [testlist]"'
-
-check options
-    -nfs		test NFS
-    -afs		test AFS
-    -glusterfs		test GlusterFS
-    -cifs		test CIFS
-    -9p			test 9p
-    -fuse		test fuse
-    -virtiofs		test virtiofs
-    -overlay		test overlay
-    -pvfs2		test PVFS2
-    -tmpfs		test TMPFS
-    -ubifs		test ubifs
-    -l			line mode diff
-    -udiff		show unified diff (default)
-    -n			show me, do not run tests
-    -T			output timestamps
-    -r			randomize test order
-    --exact-order	run tests in the exact order specified
-    -i <n>		iterate the test list <n> times
-    -I <n>		iterate the test list <n> times, but stops iterating further in case of any test failure
-    -d			dump test output to stdout
-    -b			brief test summary
-    -R fmt[,fmt]	generate report in formats specified. Supported formats: xunit, xunit-quiet
-    --large-fs		optimise scratch device for large filesystems
-    -s section		run only specified section from config file
-    -S section		exclude the specified section from the config file
-    -L <n>		loop tests <n> times following a failure, measuring aggregate pass/fail metrics
-
-testlist options
-    -g group[,group...]	include tests from these groups
-    -x group[,group...]	exclude tests from these groups
-    -X exclude_file	exclude individual tests
-    -e testlist         exclude a specific list of tests
-    -E external_file	exclude individual tests
-    [testlist]		include tests matching names in testlist
+	echo "Usage: $0 [options] [testlist]"'
+
+General options:
+    -b                      brief test summary
+    -d                      dump test output to stdout
+    -h, --help              show this help message
+    -i <n>                  iterate the test list <n> times
+    -I <n>                  iterate the test list <n> times, but stops
+                              iterating further in case of any test failure
+    -l                      line mode diff
+    -L <n>                  loop tests <n> times following a failure, measuring
+                              aggregate pass/fail metrics
+    -n                      show me, do not run tests
+    -r                      randomize test order
+    -s section              run only specified section from config file
+    -S section              exclude the specified section from the config file
+    -T                      output timestamps
+    -R fmt[,fmt]            generate report in formats specified. Supported
+                              formats: xunit, xunit-quiet
+    --exact-order           run tests in the exact order specified
+    --extra-space <size>    require minimum free space on scratch device
+    --fs <type>             test the given FSTYP; valid types include:
+                              nfs, afs, glusterfs, cifs, 9p, fuse, virtiofs,
+                              overlay, pvfs2, tmpfs, ubifs
+    --large-fs              optimise scratch device for large filesystems
+    --udiff                 show unified diff (default)
+
+Test selection options:
+    -e testlist             exclude a specific list of tests
+    -E external_file        exclude tests listed in the given file
+    -g group[,group...]     include tests from these groups
+    -x group[,group...]     exclude tests from these groups
+    -X exclude_file         exclude individual tests
+    [testlist]              include tests matching names in testlist
+
+Backward-compatible options:
+    For compatibility, old options are still accepted (but deprecated):
+    --fs <nfs|afs|glusterfs|...> is equivalent to:
+        -nfs, -afs, -glusterfs, -cifs, -9p, -fuse, -virtiofs, -overlay,
+        -pvfs2, -tmpfs, -ubifs
+    -udiff is equivalent to --udiff.
 
 testlist argument is a list of tests in the form of <test dir>/<test name>.
 
@@ -109,7 +113,7 @@ If you want to run all the tests in the test suite, use "-g all" to specify all
 groups.
 
 exclude_file argument refers to a name of a file inside each test directory.
-for every test dir where this file is found, the listed test names are
+For every test dir where this file is found, the listed test names are
 excluded from the list of tests to run from that test dir.
 
 external_file argument is a path to a single file containing a list of tests
@@ -117,15 +121,14 @@ to exclude in the form of <test dir>/<test name>.
 
 examples:
  check xfs/001
- check -g quick
+ check --fs overlay -g quick
  check -g xfs/quick
  check -x stress xfs/*
  check -X .exclude -g auto
  check -E ~/.xfstests.exclude
 '
-	    _fatal
+	_fatal
 }
-
 get_sub_group_list()
 {
 	local d=$1
diff --git a/common/config b/common/config
index d5299d5b..69e5d833 100644
--- a/common/config
+++ b/common/config
@@ -692,7 +692,7 @@ _canonicalize_devices()
 	fi
 }
 
-# On check -overlay, for the non multi section config case, this
+# On check --fs overlay, for the non multi section config case, this
 # function is called on every test, before init_rc().
 # When SCRATCH/TEST_* vars are defined in config file, config file
 # is sourced on every test and this function overrides the vars
@@ -714,7 +714,7 @@ _overlay_config_override()
 	[ ! -d "$TEST_DEV" ] || export OVL_BASE_TEST_DIR="$TEST_DEV"
 	[ ! -d "$SCRATCH_DEV" ] || export OVL_BASE_SCRATCH_MNT="$SCRATCH_DEV"
 
-	# Config file may specify base fs type, but we obay -overlay flag
+	# Config file may specify base fs type, but we obay --fs overlay flag
 	[ "$FSTYP" == overlay ] || export OVL_BASE_FSTYP="$FSTYP"
 	export FSTYP=overlay
 
@@ -895,7 +895,7 @@ get_next_config() {
 		_check_device SCRATCH_LOGDEV optional $SCRATCH_LOGDEV
 	fi
 
-	# Override FSTYP from config when running ./check -overlay
+	# Override FSTYP from config when running ./check --fs overlay
 	# and maybe override base fs TEST/SCRATCH_DEV with overlay base dirs.
 	# We need to do this *after* default mount options are set by base FSTYP
 	# and *after* SCRATCH_DEV is deduced from SCRATCH_DEV_POOL
@@ -930,7 +930,7 @@ else
 	export TEST_DIR=`_canonicalize_mountpoint TEST_DIR $TEST_DIR`
 	export SCRATCH_MNT=`_canonicalize_mountpoint SCRATCH_MNT $SCRATCH_MNT`
 
-	# Override FSTYP from config when running ./check -overlay
+	# Override FSTYP from config when running ./check --fs overlay
 	# and maybe override base fs TEST/SCRATCH_DEV with overlay base dirs
 	if [ "$OVERLAY" == "true" -o "$FSTYP" == "overlay" ]; then
 		_overlay_config_override
diff --git a/common/rc b/common/rc
index 26db5bbd..39d24ef0 100644
--- a/common/rc
+++ b/common/rc
@@ -4340,7 +4340,7 @@ _has_metadata_journaling()
 		;;
 	overlay)
 		# metadata journaling check is based on base filesystem configurations
-		# and  because -overlay option saves those configurations to OVL_BASE_*,
+		# and  because --fs overlay option saves those configurations to OVL_BASE_*,
 		# adding restore/override the configurations before/after the check.
 		if [ ! -z $OVL_BASE_FSTYP -a $OVL_BASE_FSTYP != "overlay" ]; then
 			local ret
-- 
2.54.0


  parent reply	other threads:[~2026-05-12 13:26 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-12 13:25 [RFC PATCH 0/4] Rewrite the check argument parsing Zorro Lang
2026-05-12 13:25 ` [RFC PATCH 1/4] check: refactor argument parsing with getopt Zorro Lang
2026-05-12 13:25 ` Zorro Lang [this message]
2026-05-12 13:25 ` [RFC PATCH 3/4] check: consolidate argument handling into function Zorro Lang
2026-05-12 13:25 ` [RFC PATCH 4/4] check: add deprecated options warning Zorro Lang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260512132539.931482-3-zlang@kernel.org \
    --to=zlang@kernel.org \
    --cc=fstests@vger.kernel.org \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox