Message ID | 20240418074046.2326450-3-hch@lst.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/5] xfs/045: don't force v4 file systems | expand |
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 > >
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)
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> --- 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