mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
13c2dcbe27
Commit b8cac56 ("xfs/007: add project quota Q_XQUOTARM test") has
been broken since it was added - the new code checked the group
quota inode rather than the project quota inode and so always
reported a pre-RM block count of zero. This occurred due to a copy
and paste of the existing user/group test code and didn't fix up all
the code properly.
Factor the common code into a single function, and pass in the
correct variables the tests require. While there, make sure that we
remove the 007.full file before the test starts to aid future
debugging and also check that project quotas are supported before
trying to test them.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
100 lines
2.4 KiB
Bash
Executable File
100 lines
2.4 KiB
Bash
Executable File
#! /bin/bash
|
|
# FS QA Test No. xfs/007
|
|
#
|
|
# Test to verify Q_XQUOTARM functionality.
|
|
#
|
|
#-----------------------------------------------------------------------
|
|
# Copyright (c) 2014 Red Hat, Inc. All Rights Reserved.
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU General Public License as
|
|
# published by the Free Software Foundation.
|
|
#
|
|
# This program is distributed in the hope that it would be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write the Free Software Foundation,
|
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
#-----------------------------------------------------------------------
|
|
#
|
|
|
|
seq=`basename $0`
|
|
seqres=$RESULT_DIR/$seq
|
|
echo "QA output created by $seq"
|
|
|
|
here=`pwd`
|
|
tmp=/tmp/$$
|
|
status=1 # failure is the default!
|
|
trap "_cleanup; exit \$status" 0 1 2 3 15
|
|
|
|
_cleanup()
|
|
{
|
|
cd /
|
|
rm -f $tmp.*
|
|
}
|
|
|
|
# get standard environment, filters and checks
|
|
. ./common/rc
|
|
. ./common/filter
|
|
. ./common/quota
|
|
|
|
# Modify as appropriate.
|
|
_supported_fs xfs
|
|
_supported_os Linux Irix
|
|
|
|
_require_scratch
|
|
_require_xfs_quota
|
|
|
|
rm -f $seqres.full
|
|
|
|
_scratch_mkfs_xfs >/dev/null 2>&1
|
|
|
|
do_test()
|
|
{
|
|
qino_1=$1
|
|
qino_2=$2
|
|
off_opts=$3
|
|
|
|
echo "*** umount"
|
|
umount $SCRATCH_MNT
|
|
|
|
QINO_1=`xfs_db -c "sb 0" -c "p" $SCRATCH_DEV | \
|
|
grep $qino_1 | awk '{print $NF}'`
|
|
QINO_2=`xfs_db -c "sb 0" -c "p" $SCRATCH_DEV | \
|
|
grep $qino_2 | awk '{print $NF}'`
|
|
|
|
echo "*** Usage before quotarm ***"
|
|
xfs_db -c "inode $QINO_1" -c "p core.nblocks" $SCRATCH_DEV
|
|
xfs_db -c "inode $QINO_2" -c "p core.nblocks" $SCRATCH_DEV
|
|
|
|
_qmount
|
|
echo "*** turn off $off_opts quotas"
|
|
xfs_quota -x -c "off -$off_opts" $SCRATCH_MNT
|
|
xfs_quota -x -c "remove -$off_opts" $SCRATCH_MNT
|
|
echo "*** umount"
|
|
umount $SCRATCH_MNT
|
|
|
|
echo "*** Usage after quotarm ***"
|
|
xfs_db -c "inode $QINO_1" -c "p core.nblocks" $SCRATCH_DEV
|
|
xfs_db -c "inode $QINO_2" -c "p core.nblocks" $SCRATCH_DEV
|
|
}
|
|
|
|
|
|
# Test user and group first
|
|
_qmount_option "uquota,gquota"
|
|
_qmount
|
|
do_test uquotino gquotino ug
|
|
|
|
# Test user and project
|
|
_qmount_option "uquota,pquota"
|
|
_qmount
|
|
_require_prjquota $SCRATCH_DEV
|
|
do_test uquotino pquotino up
|
|
|
|
# success, all done
|
|
status=0
|
|
exit
|