All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: Christoph Hellwig <hch@lst.de>
Cc: Zorro Lang <zlang@kernel.org>,
	linux-xfs@vger.kernel.org, fstests@vger.kernel.org
Subject: Re: [PATCH 2/5] xfs/263: split out the v4 test
Date: Thu, 18 Apr 2024 07:55:50 -0700	[thread overview]
Message-ID: <20240418145550.GG11948@frogsfrogsfrogs> (raw)
In-Reply-To: <20240418074046.2326450-3-hch@lst.de>

On Thu, Apr 18, 2024 at 09:40:43AM +0200, Christoph Hellwig wrote:
> Move the v4-specific test into a separate test case so that we can still
> run the tests on a kernel without v4 support.
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>

Awwright!
Reviewed-by: Darrick J. Wong <djwong@kernel.org>

--D

> ---
>  tests/xfs/096     | 73 ++++++++++++++++++++++++++++++++++++++++
>  tests/xfs/096.out | 84 ++++++++++++++++++++++++++++++++++++++++++++++
>  tests/xfs/263     |  5 ---
>  tests/xfs/263.out | 85 -----------------------------------------------
>  4 files changed, 157 insertions(+), 90 deletions(-)
>  create mode 100755 tests/xfs/096
>  create mode 100644 tests/xfs/096.out
> 
> diff --git a/tests/xfs/096 b/tests/xfs/096
> new file mode 100755
> index 000000000..7eff6cb1d
> --- /dev/null
> +++ b/tests/xfs/096
> @@ -0,0 +1,73 @@
> +#! /bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (c) 2016 Red Hat, Inc.  All Rights Reserved.
> +#
> +# FS QA Test 096
> +#
> +# test xfs_quota state command (XFS v4 version)
> +#
> +. ./common/preamble
> +_begin_fstest auto quick quota
> +
> +# Import common functions.
> +. ./common/filter
> +. ./common/quota
> +
> +# real QA test starts here
> +
> +# Modify as appropriate.
> +_supported_fs xfs
> +
> +_require_scratch
> +_require_xfs_quota
> +
> +function option_string()
> +{
> +	VAL=$1
> +	# Treat 3 options as a bit field, prjquota|grpquota|usrquota
> +	OPT="rw"
> +	if [ "$((VAL & 4))" -ne "0" ]; then OPT=prjquota,${OPT}; fi;
> +	if [ "$((VAL & 2))" -ne "0" ]; then OPT=grpquota,${OPT}; fi;
> +	if [ "$((VAL & 1))" -ne "0" ]; then OPT=usrquota,${OPT}; fi;
> +	echo $OPT
> +}
> +
> +filter_quota_state() {
> +	sed -e 's/Inode: #[0-9]\+/Inode #XXX/g' \
> +	    -e '/max warnings:/d' \
> +	    -e '/Blocks grace time:/d' \
> +	    -e '/Inodes grace time:/d' \
> +		| _filter_scratch
> +}
> +
> +filter_quota_state2() {
> +	sed -e '/User quota state on/d' \
> +	    -e '/ Accounting: /d' \
> +	    -e '/ Enforcement: /d' \
> +	    -e '/ Inode: /d' \
> +	    -e '/Blocks max warnings: /d' \
> +	    -e '/Inodes max warnings: /d' \
> +		| _filter_scratch
> +}
> +
> +function test_all_state()
> +{
> +	for I in `seq 0 7`; do
> +		OPTIONS=`option_string $I`
> +		echo "== Options: $OPTIONS =="
> +		# Some combinations won't mount on V4 supers (grp + prj)
> +		_qmount_option "$OPTIONS"
> +		_try_scratch_mount &>> $seqres.full || continue
> +		$XFS_QUOTA_PROG -x -c "state -u" $SCRATCH_MNT | filter_quota_state
> +		$XFS_QUOTA_PROG -x -c "state -g" $SCRATCH_MNT | filter_quota_state
> +		$XFS_QUOTA_PROG -x -c "state -p" $SCRATCH_MNT | filter_quota_state
> +		$XFS_QUOTA_PROG -x -c "state -u" $SCRATCH_MNT | filter_quota_state2
> +		_scratch_unmount
> +	done
> +}
> +
> +_scratch_mkfs_xfs "-m crc=0 -n ftype=0" >> $seqres.full
> +test_all_state
> +
> +status=0
> +exit
> diff --git a/tests/xfs/096.out b/tests/xfs/096.out
> new file mode 100644
> index 000000000..1deb7a8c3
> --- /dev/null
> +++ b/tests/xfs/096.out
> @@ -0,0 +1,84 @@
> +QA output created by 096
> +== Options: rw ==
> +== Options: usrquota,rw ==
> +User quota state on SCRATCH_MNT (SCRATCH_DEV)
> +  Accounting: ON
> +  Enforcement: ON
> +  Inode #XXX (1 blocks, 1 extents)
> +Group quota state on SCRATCH_MNT (SCRATCH_DEV)
> +  Accounting: OFF
> +  Enforcement: OFF
> +  Inode: N/A
> +Project quota state on SCRATCH_MNT (SCRATCH_DEV)
> +  Accounting: OFF
> +  Enforcement: OFF
> +  Inode: N/A
> +Blocks grace time: [7 days]
> +Inodes grace time: [7 days]
> +Realtime Blocks grace time: [7 days]
> +== Options: grpquota,rw ==
> +User quota state on SCRATCH_MNT (SCRATCH_DEV)
> +  Accounting: OFF
> +  Enforcement: OFF
> +  Inode #XXX (1 blocks, 1 extents)
> +Group quota state on SCRATCH_MNT (SCRATCH_DEV)
> +  Accounting: ON
> +  Enforcement: ON
> +  Inode #XXX (1 blocks, 1 extents)
> +Project quota state on SCRATCH_MNT (SCRATCH_DEV)
> +  Accounting: OFF
> +  Enforcement: OFF
> +  Inode: N/A
> +Blocks grace time: [7 days]
> +Inodes grace time: [7 days]
> +Realtime Blocks grace time: [7 days]
> +== Options: usrquota,grpquota,rw ==
> +User quota state on SCRATCH_MNT (SCRATCH_DEV)
> +  Accounting: ON
> +  Enforcement: ON
> +  Inode #XXX (1 blocks, 1 extents)
> +Group quota state on SCRATCH_MNT (SCRATCH_DEV)
> +  Accounting: ON
> +  Enforcement: ON
> +  Inode #XXX (1 blocks, 1 extents)
> +Project quota state on SCRATCH_MNT (SCRATCH_DEV)
> +  Accounting: OFF
> +  Enforcement: OFF
> +  Inode: N/A
> +Blocks grace time: [7 days]
> +Inodes grace time: [7 days]
> +Realtime Blocks grace time: [7 days]
> +== Options: prjquota,rw ==
> +User quota state on SCRATCH_MNT (SCRATCH_DEV)
> +  Accounting: OFF
> +  Enforcement: OFF
> +  Inode #XXX (1 blocks, 1 extents)
> +Group quota state on SCRATCH_MNT (SCRATCH_DEV)
> +  Accounting: OFF
> +  Enforcement: OFF
> +  Inode: N/A
> +Project quota state on SCRATCH_MNT (SCRATCH_DEV)
> +  Accounting: ON
> +  Enforcement: ON
> +  Inode #XXX (1 blocks, 1 extents)
> +Blocks grace time: [7 days]
> +Inodes grace time: [7 days]
> +Realtime Blocks grace time: [7 days]
> +== Options: usrquota,prjquota,rw ==
> +User quota state on SCRATCH_MNT (SCRATCH_DEV)
> +  Accounting: ON
> +  Enforcement: ON
> +  Inode #XXX (1 blocks, 1 extents)
> +Group quota state on SCRATCH_MNT (SCRATCH_DEV)
> +  Accounting: OFF
> +  Enforcement: OFF
> +  Inode: N/A
> +Project quota state on SCRATCH_MNT (SCRATCH_DEV)
> +  Accounting: ON
> +  Enforcement: ON
> +  Inode #XXX (1 blocks, 1 extents)
> +Blocks grace time: [7 days]
> +Inodes grace time: [7 days]
> +Realtime Blocks grace time: [7 days]
> +== Options: grpquota,prjquota,rw ==
> +== Options: usrquota,grpquota,prjquota,rw ==
> diff --git a/tests/xfs/263 b/tests/xfs/263
> index bd30dab11..54e9355aa 100755
> --- a/tests/xfs/263
> +++ b/tests/xfs/263
> @@ -66,11 +66,6 @@ function test_all_state()
>  	done
>  }
>  
> -echo "==== NO CRC ===="
> -_scratch_mkfs_xfs "-m crc=0 -n ftype=0" >> $seqres.full
> -test_all_state
> -
> -echo "==== CRC ===="
>  _scratch_mkfs_xfs "-m crc=1" >>$seqres.full
>  test_all_state
>  
> diff --git a/tests/xfs/263.out b/tests/xfs/263.out
> index 531d45de5..64c1a5876 100644
> --- a/tests/xfs/263.out
> +++ b/tests/xfs/263.out
> @@ -1,89 +1,4 @@
>  QA output created by 263
> -==== NO CRC ====
> -== Options: rw ==
> -== Options: usrquota,rw ==
> -User quota state on SCRATCH_MNT (SCRATCH_DEV)
> -  Accounting: ON
> -  Enforcement: ON
> -  Inode #XXX (1 blocks, 1 extents)
> -Group quota state on SCRATCH_MNT (SCRATCH_DEV)
> -  Accounting: OFF
> -  Enforcement: OFF
> -  Inode: N/A
> -Project quota state on SCRATCH_MNT (SCRATCH_DEV)
> -  Accounting: OFF
> -  Enforcement: OFF
> -  Inode: N/A
> -Blocks grace time: [7 days]
> -Inodes grace time: [7 days]
> -Realtime Blocks grace time: [7 days]
> -== Options: grpquota,rw ==
> -User quota state on SCRATCH_MNT (SCRATCH_DEV)
> -  Accounting: OFF
> -  Enforcement: OFF
> -  Inode #XXX (1 blocks, 1 extents)
> -Group quota state on SCRATCH_MNT (SCRATCH_DEV)
> -  Accounting: ON
> -  Enforcement: ON
> -  Inode #XXX (1 blocks, 1 extents)
> -Project quota state on SCRATCH_MNT (SCRATCH_DEV)
> -  Accounting: OFF
> -  Enforcement: OFF
> -  Inode: N/A
> -Blocks grace time: [7 days]
> -Inodes grace time: [7 days]
> -Realtime Blocks grace time: [7 days]
> -== Options: usrquota,grpquota,rw ==
> -User quota state on SCRATCH_MNT (SCRATCH_DEV)
> -  Accounting: ON
> -  Enforcement: ON
> -  Inode #XXX (1 blocks, 1 extents)
> -Group quota state on SCRATCH_MNT (SCRATCH_DEV)
> -  Accounting: ON
> -  Enforcement: ON
> -  Inode #XXX (1 blocks, 1 extents)
> -Project quota state on SCRATCH_MNT (SCRATCH_DEV)
> -  Accounting: OFF
> -  Enforcement: OFF
> -  Inode: N/A
> -Blocks grace time: [7 days]
> -Inodes grace time: [7 days]
> -Realtime Blocks grace time: [7 days]
> -== Options: prjquota,rw ==
> -User quota state on SCRATCH_MNT (SCRATCH_DEV)
> -  Accounting: OFF
> -  Enforcement: OFF
> -  Inode #XXX (1 blocks, 1 extents)
> -Group quota state on SCRATCH_MNT (SCRATCH_DEV)
> -  Accounting: OFF
> -  Enforcement: OFF
> -  Inode: N/A
> -Project quota state on SCRATCH_MNT (SCRATCH_DEV)
> -  Accounting: ON
> -  Enforcement: ON
> -  Inode #XXX (1 blocks, 1 extents)
> -Blocks grace time: [7 days]
> -Inodes grace time: [7 days]
> -Realtime Blocks grace time: [7 days]
> -== Options: usrquota,prjquota,rw ==
> -User quota state on SCRATCH_MNT (SCRATCH_DEV)
> -  Accounting: ON
> -  Enforcement: ON
> -  Inode #XXX (1 blocks, 1 extents)
> -Group quota state on SCRATCH_MNT (SCRATCH_DEV)
> -  Accounting: OFF
> -  Enforcement: OFF
> -  Inode: N/A
> -Project quota state on SCRATCH_MNT (SCRATCH_DEV)
> -  Accounting: ON
> -  Enforcement: ON
> -  Inode #XXX (1 blocks, 1 extents)
> -Blocks grace time: [7 days]
> -Inodes grace time: [7 days]
> -Realtime Blocks grace time: [7 days]
> -== Options: grpquota,prjquota,rw ==
> -== Options: usrquota,grpquota,prjquota,rw ==
> -==== CRC ====
>  == Options: rw ==
>  == Options: usrquota,rw ==
>  User quota state on SCRATCH_MNT (SCRATCH_DEV)
> -- 
> 2.39.2
> 
> 

  reply	other threads:[~2024-04-18 14:55 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-18  7:40 fix kernels without v5 support v2 Christoph Hellwig
2024-04-18  7:40 ` [PATCH 1/5] xfs/045: don't force v4 file systems Christoph Hellwig
2024-04-18 14:55   ` Darrick J. Wong
2024-04-18  7:40 ` [PATCH 2/5] xfs/263: split out the v4 test Christoph Hellwig
2024-04-18 14:55   ` Darrick J. Wong [this message]
2024-04-18  7:40 ` [PATCH 3/5] xfs/512: split out v4 specific tests Christoph Hellwig
2024-04-18 14:56   ` Darrick J. Wong
2024-04-18 15:00     ` Christoph Hellwig
2024-04-18  7:40 ` [PATCH 4/5] xfs/{158,160}: split out v4 tests Christoph Hellwig
2024-04-18 15:00   ` Darrick J. Wong
2024-04-18  7:40 ` [PATCH 5/5] xfs: don't run tests that require v4 file systems when not supported Christoph Hellwig
2024-04-18 15:02   ` Darrick J. Wong

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=20240418145550.GG11948@frogsfrogsfrogs \
    --to=djwong@kernel.org \
    --cc=fstests@vger.kernel.org \
    --cc=hch@lst.de \
    --cc=linux-xfs@vger.kernel.org \
    --cc=zlang@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.