Re: [RFC PATCH 2/4] check: update usage and README to reflect new argument parsing

Ojaswin Mujoo <[email protected]>
Newsgroups org.kernel.vger.fstests
Message-ID <[email protected]>
On Tue, May 12, 2026 at 09:25:37PM +0800, Zorro Lang wrote:
> Update usage() function, README.* files and some comments to match
> the new argument parsing method.
> 
> Signed-off-by: Zorro Lang <[email protected]>

Looks good, feel free to add:
Reviewed-by: Ojaswin Mujoo <[email protected]>

Regards,
ojaswin

> ---
>  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
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.