diff mbox series

fstests: remove xfs/144

Message ID 1650950094-18453-1-git-send-email-sandeen@redhat.com (mailing list archive)
State New, archived
Headers show
Series fstests: remove xfs/144 | expand

Commit Message

Eric Sandeen April 26, 2022, 5:14 a.m. UTC
This test was designed to validate the quota warning limit, which in
theory was supposed to migrate from a soft quota to hard enforcement
after a certain number of warnings. However, the xfs kernel commit
which incremented the warning counter was reverted; see:

xfs: revert "xfs: actually bump warning counts when we send warnings"

in the kernel tree for an explanation of why. Due to that revert,
which removed this functionality, remove this test.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
---
 tests/xfs/144     | 128 ---------------------------------------------
 tests/xfs/144.out | 151 ------------------------------------------------------
 2 files changed, 279 deletions(-)
 delete mode 100755 tests/xfs/144
 delete mode 100644 tests/xfs/144.out

Comments

Darrick J. Wong April 26, 2022, 5:18 a.m. UTC | #1
On Tue, Apr 26, 2022 at 12:14:53AM -0500, Eric Sandeen wrote:
> This test was designed to validate the quota warning limit, which in
> theory was supposed to migrate from a soft quota to hard enforcement
> after a certain number of warnings. However, the xfs kernel commit
> which incremented the warning counter was reverted; see:
> 
> xfs: revert "xfs: actually bump warning counts when we send warnings"
> 
> in the kernel tree for an explanation of why. Due to that revert,
> which removed this functionality, remove this test.
> 
> Signed-off-by: Eric Sandeen <sandeen@redhat.com>

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

--D

> ---
>  tests/xfs/144     | 128 ---------------------------------------------
>  tests/xfs/144.out | 151 ------------------------------------------------------
>  2 files changed, 279 deletions(-)
>  delete mode 100755 tests/xfs/144
>  delete mode 100644 tests/xfs/144.out
> 
> diff --git a/tests/xfs/144 b/tests/xfs/144
> deleted file mode 100755
> index 5abec9a..0000000
> --- a/tests/xfs/144
> +++ /dev/null
> @@ -1,128 +0,0 @@
> -#! /bin/bash
> -# SPDX-License-Identifier: GPL-2.0-or-later
> -# Copyright (c) 2021 Oracle.  All Rights Reserved.
> -#
> -# FS QA Test No. 144
> -#
> -# Check that quota softlimit warnings work the way they should.  This means
> -# that we can disobey the softlimit up to warnlimit times before it turns into
> -# hard(er) enforcement.  This is a functional test for quota warnings, but
> -# since the functionality has been broken for decades, this is also a
> -# regression test for commit 4b8628d57b72 ("xfs: actually bump warning counts
> -# when we send warnings").
> -
> -. ./common/preamble
> -_begin_fstest auto quick quota
> -
> -# Import common functions.
> -. ./common/filter
> -. ./common/quota
> -
> -# real QA test starts here
> -_supported_fs xfs
> -_require_xfs_quota
> -_require_scratch
> -
> -exercise() {
> -	_scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
> -	cat $tmp.mkfs >>$seqres.full
> -
> -	# keep the blocksize and data size for dd later
> -	. $tmp.mkfs
> -
> -	_qmount
> -
> -	_qsetup $1
> -
> -	echo "Using type=$type id=$id" >>$seqres.full
> -
> -	echo
> -	echo "*** report initial settings" | tee -a $seqres.full
> -	$XFS_QUOTA_PROG -x \
> -		-c "limit -$type isoft=3 ihard=500000 $id" \
> -		-c "warn -$type -i -d 13" \
> -		$SCRATCH_DEV
> -	$XFS_QUOTA_PROG -x \
> -		-c "state -$type" >> $seqres.full
> -	$XFS_QUOTA_PROG -x \
> -		-c "repquota -birnN -$type" $SCRATCH_DEV |
> -		_filter_quota_report | LC_COLLATE=POSIX sort -ru
> -
> -	echo
> -	echo "*** push past the soft inode limit" | tee -a $seqres.full
> -	_file_as_id $SCRATCH_MNT/softok1 $id $type $bsize 0
> -	_file_as_id $SCRATCH_MNT/softok2 $id $type $bsize 0
> -	_file_as_id $SCRATCH_MNT/softok3 $id $type $bsize 0
> -	_file_as_id $SCRATCH_MNT/softwarn1 $id $type $bsize 0
> -	$XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
> -		-c "repquota -birnN -$type" $SCRATCH_DEV |
> -		_filter_quota_report | LC_COLLATE=POSIX sort -ru
> -
> -	echo
> -	echo "*** push further past the soft inode limit" | tee -a $seqres.full
> -	for warn_nr in $(seq 2 5); do
> -		_file_as_id $SCRATCH_MNT/softwarn$warn_nr $id $type $bsize 0
> -	done
> -	$XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
> -		-c "repquota -birnN -$type" $SCRATCH_DEV |
> -		_filter_quota_report | LC_COLLATE=POSIX sort -ru
> -
> -	echo
> -	echo "*** push past the soft inode warning limit" | tee -a $seqres.full
> -	for warn_nr in $(seq 6 15); do
> -		_file_as_id $SCRATCH_MNT/softwarn$warn_nr $id $type $bsize 0
> -	done
> -	$XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
> -		-c "repquota -birnN -$type" $SCRATCH_DEV |
> -		_filter_quota_report | LC_COLLATE=POSIX sort -ru
> -
> -	echo
> -	echo "*** unmount"
> -	_scratch_unmount
> -}
> -
> -_scratch_mkfs > $seqres.full
> -_scratch_mount >> $seqres.full
> -
> -chmod a+rwx $SCRATCH_MNT $seqres.full	# arbitrary users will write here
> -bsize=$(_get_file_block_size $SCRATCH_MNT)
> -_scratch_unmount
> -
> -cat >$tmp.projects <<EOF
> -1:$SCRATCH_MNT
> -EOF
> -
> -cat >$tmp.projid <<EOF
> -root:0
> -scratch:1
> -EOF
> -
> -projid_file="$tmp.projid"
> -
> -echo "*** user"
> -_qmount_option "uquota"
> -exercise u
> -
> -echo "*** group"
> -_qmount_option "gquota"
> -exercise g
> -
> -echo "*** uqnoenforce"
> -_qmount_option "uqnoenforce"
> -exercise uno
> -
> -echo "*** gqnoenforce"
> -_qmount_option "gqnoenforce"
> -exercise gno
> -
> -echo "*** pquota"
> -_qmount_option "pquota"
> -exercise p
> -
> -echo "*** pqnoenforce"
> -_qmount_option "pqnoenforce"
> -exercise pno
> -
> -# success, all done
> -status=0
> -exit
> diff --git a/tests/xfs/144.out b/tests/xfs/144.out
> deleted file mode 100644
> index 963eb80..0000000
> --- a/tests/xfs/144.out
> +++ /dev/null
> @@ -1,151 +0,0 @@
> -QA output created by 144
> -*** user
> -meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
> -data     = bsize=XXX blocks=XXX, imaxpct=PCT
> -         = sunit=XXX swidth=XXX, unwritten=X
> -naming   =VERN bsize=XXX
> -log      =LDEV bsize=XXX blocks=XXX
> -realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
> -
> -*** report initial settings
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 4 3 500000 01 [7 days] 0 0 0 00 [--------]
> -
> -*** push further past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 8 3 500000 05 [7 days] 0 0 0 00 [--------]
> -
> -*** push past the soft inode warning limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 16 3 500000 13 [7 days] 0 0 0 00 [--------]
> -
> -*** unmount
> -*** group
> -meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
> -data     = bsize=XXX blocks=XXX, imaxpct=PCT
> -         = sunit=XXX swidth=XXX, unwritten=X
> -naming   =VERN bsize=XXX
> -log      =LDEV bsize=XXX blocks=XXX
> -realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
> -
> -*** report initial settings
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 4 3 500000 01 [7 days] 0 0 0 00 [--------]
> -
> -*** push further past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 8 3 500000 05 [7 days] 0 0 0 00 [--------]
> -
> -*** push past the soft inode warning limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 16 3 500000 13 [7 days] 0 0 0 00 [--------]
> -
> -*** unmount
> -*** uqnoenforce
> -meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
> -data     = bsize=XXX blocks=XXX, imaxpct=PCT
> -         = sunit=XXX swidth=XXX, unwritten=X
> -naming   =VERN bsize=XXX
> -log      =LDEV bsize=XXX blocks=XXX
> -realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
> -
> -*** report initial settings
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 4 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push further past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 8 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode warning limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 18 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** unmount
> -*** gqnoenforce
> -meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
> -data     = bsize=XXX blocks=XXX, imaxpct=PCT
> -         = sunit=XXX swidth=XXX, unwritten=X
> -naming   =VERN bsize=XXX
> -log      =LDEV bsize=XXX blocks=XXX
> -realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
> -
> -*** report initial settings
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 4 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push further past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 8 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode warning limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 18 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** unmount
> -*** pquota
> -meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
> -data     = bsize=XXX blocks=XXX, imaxpct=PCT
> -         = sunit=XXX swidth=XXX, unwritten=X
> -naming   =VERN bsize=XXX
> -log      =LDEV bsize=XXX blocks=XXX
> -realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
> -
> -*** report initial settings
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 4 3 500000 02 [7 days] 0 0 0 00 [--------]
> -
> -*** push further past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 8 3 500000 06 [7 days] 0 0 0 00 [--------]
> -
> -*** push past the soft inode warning limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 15 3 500000 13 [7 days] 0 0 0 00 [--------]
> -
> -*** unmount
> -*** pqnoenforce
> -meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
> -data     = bsize=XXX blocks=XXX, imaxpct=PCT
> -         = sunit=XXX swidth=XXX, unwritten=X
> -naming   =VERN bsize=XXX
> -log      =LDEV bsize=XXX blocks=XXX
> -realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
> -
> -*** report initial settings
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 4 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push further past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 8 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode warning limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 18 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** unmount
> -- 
> 1.8.3.1
>
Zorro Lang April 26, 2022, 5:29 a.m. UTC | #2
On Tue, Apr 26, 2022 at 12:14:53AM -0500, Eric Sandeen wrote:
> This test was designed to validate the quota warning limit, which in
> theory was supposed to migrate from a soft quota to hard enforcement
> after a certain number of warnings. However, the xfs kernel commit
> which incremented the warning counter was reverted; see:
> 
> xfs: revert "xfs: actually bump warning counts when we send warnings"
> 
> in the kernel tree for an explanation of why. Due to that revert,
> which removed this functionality, remove this test.
> 
> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
> ---

Reviewed-by: Zorro Lang <zlang@redhat.com>

And as we've talked, I'll write a new one case:
2022-04-14 23:26 < sandeen> so you're suggesting that another test which exceeds soft quota with many writes is a good idea, and would have caught the quota warning /limit/ problem - right?
2022-04-14 23:26 < sandeen> that sounds reasonable to me

Thanks,
Zorro

>  tests/xfs/144     | 128 ---------------------------------------------
>  tests/xfs/144.out | 151 ------------------------------------------------------
>  2 files changed, 279 deletions(-)
>  delete mode 100755 tests/xfs/144
>  delete mode 100644 tests/xfs/144.out
> 
> diff --git a/tests/xfs/144 b/tests/xfs/144
> deleted file mode 100755
> index 5abec9a..0000000
> --- a/tests/xfs/144
> +++ /dev/null
> @@ -1,128 +0,0 @@
> -#! /bin/bash
> -# SPDX-License-Identifier: GPL-2.0-or-later
> -# Copyright (c) 2021 Oracle.  All Rights Reserved.
> -#
> -# FS QA Test No. 144
> -#
> -# Check that quota softlimit warnings work the way they should.  This means
> -# that we can disobey the softlimit up to warnlimit times before it turns into
> -# hard(er) enforcement.  This is a functional test for quota warnings, but
> -# since the functionality has been broken for decades, this is also a
> -# regression test for commit 4b8628d57b72 ("xfs: actually bump warning counts
> -# when we send warnings").
> -
> -. ./common/preamble
> -_begin_fstest auto quick quota
> -
> -# Import common functions.
> -. ./common/filter
> -. ./common/quota
> -
> -# real QA test starts here
> -_supported_fs xfs
> -_require_xfs_quota
> -_require_scratch
> -
> -exercise() {
> -	_scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
> -	cat $tmp.mkfs >>$seqres.full
> -
> -	# keep the blocksize and data size for dd later
> -	. $tmp.mkfs
> -
> -	_qmount
> -
> -	_qsetup $1
> -
> -	echo "Using type=$type id=$id" >>$seqres.full
> -
> -	echo
> -	echo "*** report initial settings" | tee -a $seqres.full
> -	$XFS_QUOTA_PROG -x \
> -		-c "limit -$type isoft=3 ihard=500000 $id" \
> -		-c "warn -$type -i -d 13" \
> -		$SCRATCH_DEV
> -	$XFS_QUOTA_PROG -x \
> -		-c "state -$type" >> $seqres.full
> -	$XFS_QUOTA_PROG -x \
> -		-c "repquota -birnN -$type" $SCRATCH_DEV |
> -		_filter_quota_report | LC_COLLATE=POSIX sort -ru
> -
> -	echo
> -	echo "*** push past the soft inode limit" | tee -a $seqres.full
> -	_file_as_id $SCRATCH_MNT/softok1 $id $type $bsize 0
> -	_file_as_id $SCRATCH_MNT/softok2 $id $type $bsize 0
> -	_file_as_id $SCRATCH_MNT/softok3 $id $type $bsize 0
> -	_file_as_id $SCRATCH_MNT/softwarn1 $id $type $bsize 0
> -	$XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
> -		-c "repquota -birnN -$type" $SCRATCH_DEV |
> -		_filter_quota_report | LC_COLLATE=POSIX sort -ru
> -
> -	echo
> -	echo "*** push further past the soft inode limit" | tee -a $seqres.full
> -	for warn_nr in $(seq 2 5); do
> -		_file_as_id $SCRATCH_MNT/softwarn$warn_nr $id $type $bsize 0
> -	done
> -	$XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
> -		-c "repquota -birnN -$type" $SCRATCH_DEV |
> -		_filter_quota_report | LC_COLLATE=POSIX sort -ru
> -
> -	echo
> -	echo "*** push past the soft inode warning limit" | tee -a $seqres.full
> -	for warn_nr in $(seq 6 15); do
> -		_file_as_id $SCRATCH_MNT/softwarn$warn_nr $id $type $bsize 0
> -	done
> -	$XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
> -		-c "repquota -birnN -$type" $SCRATCH_DEV |
> -		_filter_quota_report | LC_COLLATE=POSIX sort -ru
> -
> -	echo
> -	echo "*** unmount"
> -	_scratch_unmount
> -}
> -
> -_scratch_mkfs > $seqres.full
> -_scratch_mount >> $seqres.full
> -
> -chmod a+rwx $SCRATCH_MNT $seqres.full	# arbitrary users will write here
> -bsize=$(_get_file_block_size $SCRATCH_MNT)
> -_scratch_unmount
> -
> -cat >$tmp.projects <<EOF
> -1:$SCRATCH_MNT
> -EOF
> -
> -cat >$tmp.projid <<EOF
> -root:0
> -scratch:1
> -EOF
> -
> -projid_file="$tmp.projid"
> -
> -echo "*** user"
> -_qmount_option "uquota"
> -exercise u
> -
> -echo "*** group"
> -_qmount_option "gquota"
> -exercise g
> -
> -echo "*** uqnoenforce"
> -_qmount_option "uqnoenforce"
> -exercise uno
> -
> -echo "*** gqnoenforce"
> -_qmount_option "gqnoenforce"
> -exercise gno
> -
> -echo "*** pquota"
> -_qmount_option "pquota"
> -exercise p
> -
> -echo "*** pqnoenforce"
> -_qmount_option "pqnoenforce"
> -exercise pno
> -
> -# success, all done
> -status=0
> -exit
> diff --git a/tests/xfs/144.out b/tests/xfs/144.out
> deleted file mode 100644
> index 963eb80..0000000
> --- a/tests/xfs/144.out
> +++ /dev/null
> @@ -1,151 +0,0 @@
> -QA output created by 144
> -*** user
> -meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
> -data     = bsize=XXX blocks=XXX, imaxpct=PCT
> -         = sunit=XXX swidth=XXX, unwritten=X
> -naming   =VERN bsize=XXX
> -log      =LDEV bsize=XXX blocks=XXX
> -realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
> -
> -*** report initial settings
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 4 3 500000 01 [7 days] 0 0 0 00 [--------]
> -
> -*** push further past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 8 3 500000 05 [7 days] 0 0 0 00 [--------]
> -
> -*** push past the soft inode warning limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 16 3 500000 13 [7 days] 0 0 0 00 [--------]
> -
> -*** unmount
> -*** group
> -meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
> -data     = bsize=XXX blocks=XXX, imaxpct=PCT
> -         = sunit=XXX swidth=XXX, unwritten=X
> -naming   =VERN bsize=XXX
> -log      =LDEV bsize=XXX blocks=XXX
> -realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
> -
> -*** report initial settings
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 4 3 500000 01 [7 days] 0 0 0 00 [--------]
> -
> -*** push further past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 8 3 500000 05 [7 days] 0 0 0 00 [--------]
> -
> -*** push past the soft inode warning limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 16 3 500000 13 [7 days] 0 0 0 00 [--------]
> -
> -*** unmount
> -*** uqnoenforce
> -meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
> -data     = bsize=XXX blocks=XXX, imaxpct=PCT
> -         = sunit=XXX swidth=XXX, unwritten=X
> -naming   =VERN bsize=XXX
> -log      =LDEV bsize=XXX blocks=XXX
> -realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
> -
> -*** report initial settings
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 4 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push further past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 8 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode warning limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 18 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** unmount
> -*** gqnoenforce
> -meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
> -data     = bsize=XXX blocks=XXX, imaxpct=PCT
> -         = sunit=XXX swidth=XXX, unwritten=X
> -naming   =VERN bsize=XXX
> -log      =LDEV bsize=XXX blocks=XXX
> -realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
> -
> -*** report initial settings
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 4 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push further past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 8 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode warning limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 18 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** unmount
> -*** pquota
> -meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
> -data     = bsize=XXX blocks=XXX, imaxpct=PCT
> -         = sunit=XXX swidth=XXX, unwritten=X
> -naming   =VERN bsize=XXX
> -log      =LDEV bsize=XXX blocks=XXX
> -realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
> -
> -*** report initial settings
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 4 3 500000 02 [7 days] 0 0 0 00 [--------]
> -
> -*** push further past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 8 3 500000 06 [7 days] 0 0 0 00 [--------]
> -
> -*** push past the soft inode warning limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 15 3 500000 13 [7 days] 0 0 0 00 [--------]
> -
> -*** unmount
> -*** pqnoenforce
> -meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
> -data     = bsize=XXX blocks=XXX, imaxpct=PCT
> -         = sunit=XXX swidth=XXX, unwritten=X
> -naming   =VERN bsize=XXX
> -log      =LDEV bsize=XXX blocks=XXX
> -realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
> -
> -*** report initial settings
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 4 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push further past the soft inode limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 8 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** push past the soft inode warning limit
> -[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
> -[NAME] 0 0 0 00 [--------] 18 3 500000 00 [--------] 0 0 0 00 [--------]
> -
> -*** unmount
> -- 
> 1.8.3.1
>
diff mbox series

Patch

diff --git a/tests/xfs/144 b/tests/xfs/144
deleted file mode 100755
index 5abec9a..0000000
--- a/tests/xfs/144
+++ /dev/null
@@ -1,128 +0,0 @@ 
-#! /bin/bash
-# SPDX-License-Identifier: GPL-2.0-or-later
-# Copyright (c) 2021 Oracle.  All Rights Reserved.
-#
-# FS QA Test No. 144
-#
-# Check that quota softlimit warnings work the way they should.  This means
-# that we can disobey the softlimit up to warnlimit times before it turns into
-# hard(er) enforcement.  This is a functional test for quota warnings, but
-# since the functionality has been broken for decades, this is also a
-# regression test for commit 4b8628d57b72 ("xfs: actually bump warning counts
-# when we send warnings").
-
-. ./common/preamble
-_begin_fstest auto quick quota
-
-# Import common functions.
-. ./common/filter
-. ./common/quota
-
-# real QA test starts here
-_supported_fs xfs
-_require_xfs_quota
-_require_scratch
-
-exercise() {
-	_scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
-	cat $tmp.mkfs >>$seqres.full
-
-	# keep the blocksize and data size for dd later
-	. $tmp.mkfs
-
-	_qmount
-
-	_qsetup $1
-
-	echo "Using type=$type id=$id" >>$seqres.full
-
-	echo
-	echo "*** report initial settings" | tee -a $seqres.full
-	$XFS_QUOTA_PROG -x \
-		-c "limit -$type isoft=3 ihard=500000 $id" \
-		-c "warn -$type -i -d 13" \
-		$SCRATCH_DEV
-	$XFS_QUOTA_PROG -x \
-		-c "state -$type" >> $seqres.full
-	$XFS_QUOTA_PROG -x \
-		-c "repquota -birnN -$type" $SCRATCH_DEV |
-		_filter_quota_report | LC_COLLATE=POSIX sort -ru
-
-	echo
-	echo "*** push past the soft inode limit" | tee -a $seqres.full
-	_file_as_id $SCRATCH_MNT/softok1 $id $type $bsize 0
-	_file_as_id $SCRATCH_MNT/softok2 $id $type $bsize 0
-	_file_as_id $SCRATCH_MNT/softok3 $id $type $bsize 0
-	_file_as_id $SCRATCH_MNT/softwarn1 $id $type $bsize 0
-	$XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
-		-c "repquota -birnN -$type" $SCRATCH_DEV |
-		_filter_quota_report | LC_COLLATE=POSIX sort -ru
-
-	echo
-	echo "*** push further past the soft inode limit" | tee -a $seqres.full
-	for warn_nr in $(seq 2 5); do
-		_file_as_id $SCRATCH_MNT/softwarn$warn_nr $id $type $bsize 0
-	done
-	$XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
-		-c "repquota -birnN -$type" $SCRATCH_DEV |
-		_filter_quota_report | LC_COLLATE=POSIX sort -ru
-
-	echo
-	echo "*** push past the soft inode warning limit" | tee -a $seqres.full
-	for warn_nr in $(seq 6 15); do
-		_file_as_id $SCRATCH_MNT/softwarn$warn_nr $id $type $bsize 0
-	done
-	$XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
-		-c "repquota -birnN -$type" $SCRATCH_DEV |
-		_filter_quota_report | LC_COLLATE=POSIX sort -ru
-
-	echo
-	echo "*** unmount"
-	_scratch_unmount
-}
-
-_scratch_mkfs > $seqres.full
-_scratch_mount >> $seqres.full
-
-chmod a+rwx $SCRATCH_MNT $seqres.full	# arbitrary users will write here
-bsize=$(_get_file_block_size $SCRATCH_MNT)
-_scratch_unmount
-
-cat >$tmp.projects <<EOF
-1:$SCRATCH_MNT
-EOF
-
-cat >$tmp.projid <<EOF
-root:0
-scratch:1
-EOF
-
-projid_file="$tmp.projid"
-
-echo "*** user"
-_qmount_option "uquota"
-exercise u
-
-echo "*** group"
-_qmount_option "gquota"
-exercise g
-
-echo "*** uqnoenforce"
-_qmount_option "uqnoenforce"
-exercise uno
-
-echo "*** gqnoenforce"
-_qmount_option "gqnoenforce"
-exercise gno
-
-echo "*** pquota"
-_qmount_option "pquota"
-exercise p
-
-echo "*** pqnoenforce"
-_qmount_option "pqnoenforce"
-exercise pno
-
-# success, all done
-status=0
-exit
diff --git a/tests/xfs/144.out b/tests/xfs/144.out
deleted file mode 100644
index 963eb80..0000000
--- a/tests/xfs/144.out
+++ /dev/null
@@ -1,151 +0,0 @@ 
-QA output created by 144
-*** user
-meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
-data     = bsize=XXX blocks=XXX, imaxpct=PCT
-         = sunit=XXX swidth=XXX, unwritten=X
-naming   =VERN bsize=XXX
-log      =LDEV bsize=XXX blocks=XXX
-realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
-
-*** report initial settings
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
-
-*** push past the soft inode limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 4 3 500000 01 [7 days] 0 0 0 00 [--------]
-
-*** push further past the soft inode limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 8 3 500000 05 [7 days] 0 0 0 00 [--------]
-
-*** push past the soft inode warning limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 16 3 500000 13 [7 days] 0 0 0 00 [--------]
-
-*** unmount
-*** group
-meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
-data     = bsize=XXX blocks=XXX, imaxpct=PCT
-         = sunit=XXX swidth=XXX, unwritten=X
-naming   =VERN bsize=XXX
-log      =LDEV bsize=XXX blocks=XXX
-realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
-
-*** report initial settings
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
-
-*** push past the soft inode limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 4 3 500000 01 [7 days] 0 0 0 00 [--------]
-
-*** push further past the soft inode limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 8 3 500000 05 [7 days] 0 0 0 00 [--------]
-
-*** push past the soft inode warning limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 16 3 500000 13 [7 days] 0 0 0 00 [--------]
-
-*** unmount
-*** uqnoenforce
-meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
-data     = bsize=XXX blocks=XXX, imaxpct=PCT
-         = sunit=XXX swidth=XXX, unwritten=X
-naming   =VERN bsize=XXX
-log      =LDEV bsize=XXX blocks=XXX
-realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
-
-*** report initial settings
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
-
-*** push past the soft inode limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 4 3 500000 00 [--------] 0 0 0 00 [--------]
-
-*** push further past the soft inode limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 8 3 500000 00 [--------] 0 0 0 00 [--------]
-
-*** push past the soft inode warning limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 18 3 500000 00 [--------] 0 0 0 00 [--------]
-
-*** unmount
-*** gqnoenforce
-meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
-data     = bsize=XXX blocks=XXX, imaxpct=PCT
-         = sunit=XXX swidth=XXX, unwritten=X
-naming   =VERN bsize=XXX
-log      =LDEV bsize=XXX blocks=XXX
-realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
-
-*** report initial settings
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
-
-*** push past the soft inode limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 4 3 500000 00 [--------] 0 0 0 00 [--------]
-
-*** push further past the soft inode limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 8 3 500000 00 [--------] 0 0 0 00 [--------]
-
-*** push past the soft inode warning limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 18 3 500000 00 [--------] 0 0 0 00 [--------]
-
-*** unmount
-*** pquota
-meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
-data     = bsize=XXX blocks=XXX, imaxpct=PCT
-         = sunit=XXX swidth=XXX, unwritten=X
-naming   =VERN bsize=XXX
-log      =LDEV bsize=XXX blocks=XXX
-realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
-
-*** report initial settings
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
-
-*** push past the soft inode limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 4 3 500000 02 [7 days] 0 0 0 00 [--------]
-
-*** push further past the soft inode limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 8 3 500000 06 [7 days] 0 0 0 00 [--------]
-
-*** push past the soft inode warning limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 15 3 500000 13 [7 days] 0 0 0 00 [--------]
-
-*** unmount
-*** pqnoenforce
-meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
-data     = bsize=XXX blocks=XXX, imaxpct=PCT
-         = sunit=XXX swidth=XXX, unwritten=X
-naming   =VERN bsize=XXX
-log      =LDEV bsize=XXX blocks=XXX
-realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
-
-*** report initial settings
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 0 3 500000 00 [--------] 0 0 0 00 [--------]
-
-*** push past the soft inode limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 4 3 500000 00 [--------] 0 0 0 00 [--------]
-
-*** push further past the soft inode limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 8 3 500000 00 [--------] 0 0 0 00 [--------]
-
-*** push past the soft inode warning limit
-[ROOT] 0 0 0 00 [--------] 3 0 0 13 [--------] 0 0 0 00 [--------]
-[NAME] 0 0 0 00 [--------] 18 3 500000 00 [--------] 0 0 0 00 [--------]
-
-*** unmount