From: Arkadiusz Miskiewicz <arekm@xxxxxxxx> Test 3 quota project setting id conditions: - set 16bit project quota id -> should succeed - set 32bit project quota id -> should succeed (with projid32bit patch applied; fail otherwise) - over 32bit project quota id -> should always fail Signed-off-by: Arkadiusz MiÅkiewicz <arekm@xxxxxxxx> --- News? - partial rewrite since projid32bit feature2 bit flag is no longer set automaticly - we create projid32bit=0 and projid32bit=1 filesystems from scratch now - use _require_prjquota for scratch device 244 | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 244.out | 2 + group | 1 + 3 files changed, 128 insertions(+), 0 deletions(-) create mode 100644 244 create mode 100644 244.out diff --git a/244 b/244 new file mode 100644 index 0000000..8a89f97 --- /dev/null +++ b/244 @@ -0,0 +1,125 @@ +#! /bin/bash +# FS QA Test No. 244 +# +# test to verify that proper project quota id is correctly set +# +#----------------------------------------------------------------------- +# Copyright (c) 2010 Arkadiusz MiÅkiewicz. 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 +# +#----------------------------------------------------------------------- +# +# creator +owner=arekm@xxxxxxxx + +seq=`basename $0` +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 + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter +. ./common.quota + +_cleanup() +{ + cd / + umount $SCRATCH_MNT 2>/dev/null + rm -f $tmp.* +} + +# real QA test starts here +_supported_fs xfs +_require_xfs_quota +_require_scratch + +export MOUNT_OPTIONS="-opquota" + +# make fs with no projid32bit +_scratch_mkfs_xfs -i projid32bit=0 >> $seq.full || _fail "mkfs failed" +_qmount +# make sure project quota is supported +_require_prjquota ${SCRATCH_DEV} + +dir=$SCRATCH_MNT/project + +status=0 + +echo "Silence is golden" + +# Do testing on projid32bit disabled filesystem +mkdir $dir + +touch $dir/below16bit +# below 16bit value +$XFS_QUOTA_PROG -x -c "project -s -p $dir/below16bit 3422" $SCRATCH_DEV >> $seq.full +projid=$($XFS_IO_PROG -r -c "lsproj" $dir/below16bit) +if [ "projid = 3422" != "$projid" ]; then + echo "FAIL: projid32bit disabled: returned projid value ($projid) doesn't match set one (projid = 3422)" + status=1 +fi + +# 32bit value, should fail +touch $dir/over16bit +if $XFS_QUOTA_PROG -x -c "project -s -p $dir/over16bit 108545" $SCRATCH_DEV >> $seq.full 2>&1; then + echo "FAIL: projid32bit disabled: setting 32bit projid succeeded while it should fail" + status=1 +fi + +# over 32bit value, should fail +touch $dir/over32bit +if $XFS_QUOTA_PROG -x -c "project -s -p $dir/over32bit 5344967296" $SCRATCH_DEV >> $seq.full 2>&1; then + echo "FAIL: projid32bit disabled: setting over 32bit projid succeeded while it should fail" + status=1 +fi + +# Do testing on projid32bit enabled filesystem +umount $SCRATCH_DEV 2>/dev/null +_scratch_mkfs_xfs -i projid32bit=1 >> $seq.full || _fail "mkfs failed" +_qmount +mkdir $dir + +touch $dir/below16bit +# below 16bit value +$XFS_QUOTA_PROG -x -c "project -s -p $dir/below16bit 3422" $SCRATCH_DEV >> $seq.full +projid=$($XFS_IO_PROG -r -c "lsproj" $dir/below16bit) +if [ "projid = 3422" != "$projid" ]; then + echo "FAIL: projid32bit enabled: returned projid value ($projid) doesn't match set one (projid = 3422)" + status=1 +fi + +# 32bit value, should succeed +touch $dir/over16bit +if $XFS_QUOTA_PROG -x -c "project -s -p $dir/over16bit 108545" $SCRATCH_DEV >> $seq.full 2>&1; then + projid=$($XFS_IO_PROG -r -c "lsproj" $dir/over16bit) + if [ "projid = 108545" != "$projid" ]; then + echo "FAIL: projid32bit enabled: returned projid value ($projid) doesn't match set one (projid = 108545)" + status=1 + fi +else + echo "FAIL: projid32bit enabled: setting 32bit projid failed while it should succeed" + status=1 +fi + +# over 32bit value, should fail +touch $dir/over32bit +if $XFS_QUOTA_PROG -x -c "project -s -p $dir/over32bit 5344967296" $SCRATCH_DEV >> $seq.full 2>&1; then + echo "FAIL: projid32bit disabled: setting over 32bit projid succeeded while it should fail" + status=1 +fi diff --git a/244.out b/244.out new file mode 100644 index 0000000..440da1f --- /dev/null +++ b/244.out @@ -0,0 +1,2 @@ +QA output created by 244 +Silence is golden diff --git a/group b/group index e6dab13..0cd158b 100644 --- a/group +++ b/group @@ -357,3 +357,4 @@ deprecated 241 auto 242 auto quick prealloc 243 auto quick prealloc +244 auto quota quick -- 1.7.3 _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs