From: Jan Kara <jack@suse.cz>
To: xfs@oss.sgi.com
Cc: Jan Kara <jack@suse.cz>
Subject: [PATCH] xfstests: Improve test 219 to work with all filesystems
Date: Tue, 17 May 2011 16:55:04 +0200 [thread overview]
Message-ID: <1305644104-612-1-git-send-email-jack@suse.cz> (raw)
Different filesystems account different amount of metadata in quota. Thus it is
impractical to check for a particular amount of space occupied by a file
because there is no right value. Change the test to verify whether the amount
of space before quotacheck and after quotacheck is the same as other quota
tests do.
Signed-off-by: Jan Kara <jack@suse.cz>
---
219 | 4 +---
219.out | 18 ++----------------
common.quota | 52 ++++++++++++++++++++++++++++++++++++++--------------
3 files changed, 41 insertions(+), 33 deletions(-)
diff --git a/219 b/219
index 836d703..7c22dac 100755
--- a/219
+++ b/219
@@ -76,9 +76,7 @@ test_accounting()
for file in $SCRATCH_MNT/{buffer,direct,mmap}; do
$here/src/lstat64 $file | head -3 | _filter_scratch
done
-
- repquota -$type -n $SCRATCH_MNT | grep -v "^#0" | _filter_scratch |
- awk '/^#/ { if (seen[$1]) next; seen[$1]++; } { print; }'
+ _check_quota_usage
}
# real QA test starts here
diff --git a/219.out b/219.out
index fadfafc..7a86b94 100644
--- a/219.out
+++ b/219.out
@@ -22,14 +22,7 @@ QA output created by 219
File: "SCRATCH_MNT/mmap"
Size: 49152 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (1) Gid: (2)
-*** Report for user quotas on device SCRATCH_DEV
-Block grace time: 7days; Inode grace time: 7days
- Block limits File limits
-User used soft hard grace used soft hard grace
-----------------------------------------------------------------------
-#1 -- 144 0 0 3 0 0
-
-
+Comparing user usage
### test group accounting
@@ -53,11 +46,4 @@ User used soft hard grace used soft hard grace
File: "SCRATCH_MNT/mmap"
Size: 49152 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (1) Gid: (2)
-*** Report for group quotas on device SCRATCH_DEV
-Block grace time: 7days; Inode grace time: 7days
- Block limits File limits
-Group used soft hard grace used soft hard grace
-----------------------------------------------------------------------
-#2 -- 144 0 0 3 0 0
-
-
+Comparing group usage
diff --git a/common.quota b/common.quota
index 3c87ce1..9cb9304 100644
--- a/common.quota
+++ b/common.quota
@@ -236,36 +236,60 @@ _check_quota_usage()
{
# Sync to get delalloc to disk
sync
+ USRQUOTA=0
+ GRPQUOTA=0
+ QMNTOPT=""
+ if echo $MOUNT_OPTIONS | grep -E "uquota|usrquota|uqnoenforce" &>/dev/null; then
+ USRQUOTA=1
+ QMNTOPT=",usrquota"
+ fi
+ if echo $MOUNT_OPTIONS | grep -E "gquota|grpquota|gqnoenforce" &>/dev/null; then
+ GRPQUOTA=1
+ QMNTOPT=$QMNTOPT",grpquota"
+ fi
VFS_QUOTA=0
if [ $FSTYP = "ext2" -o $FSTYP = "ext3" -o $FSTYP = "ext4" -o $FSTYP = "reiserfs" ]; then
VFS_QUOTA=1
quotaon -f -u -g $SCRATCH_MNT 2>/dev/null
fi
- repquota -u -n $SCRATCH_MNT | grep -v "^#0" | _filter_scratch |
- sort >$tmp.user.orig
- repquota -g -n $SCRATCH_MNT | grep -v "^#0" | _filter_scratch |
- sort >$tmp.group.orig
+ if [ $USRQUOTA == 1 ]; then
+ repquota -u -n $SCRATCH_MNT | grep -v "^#0" |
+ _filter_scratch | sort >$tmp.user.orig
+ fi
+ if [ $GRPQUOTA == 1 ]; then
+ repquota -g -n $SCRATCH_MNT | grep -v "^#0" |
+ _filter_scratch | sort >$tmp.group.orig
+ fi
if [ $VFS_QUOTA -eq 1 ]; then
quotacheck -u -g $SCRATCH_MNT 2>/dev/null
else
# use XFS method to force quotacheck
mount -o remount,noquota $SCRATCH_DEV
- mount -o remount,usrquota,grpquota $SCRATCH_DEV
+ mount -o remount$QMNTOPT $SCRATCH_DEV
+ fi
+ if [ $USRQUOTA == 1 ]; then
+ repquota -u -n $SCRATCH_MNT | grep -v "^#0" |
+ _filter_scratch | sort >$tmp.user.checked
+ fi
+ if [ $GRPQUOTA == 1 ]; then
+ repquota -g -n $SCRATCH_MNT | grep -v "^#0" |
+ _filter_scratch | sort >$tmp.group.checked
fi
- repquota -u -n $SCRATCH_MNT | grep -v "^#0" | _filter_scratch |
- sort >$tmp.user.checked
- repquota -g -n $SCRATCH_MNT | grep -v "^#0" | _filter_scratch |
- sort >$tmp.group.checked
if [ $VFS_QUOTA -eq 1 ]; then
quotaon -u -g $SCRATCH_MNT 2>/dev/null
fi
- {
+ if [ $USRQUOTA == 1 ]; then
echo "Comparing user usage"
- diff $tmp.user.orig $tmp.user.checked
- } && {
+ if ! diff $tmp.user.orig $tmp.user.checked; then
+ return 1
+ fi
+ fi
+ if [ $GRPQUOTA == 1 ]; then
echo "Comparing group usage"
- diff $tmp.group.orig $tmp.group.checked
- }
+ if ! diff $tmp.group.orig $tmp.group.checked; then
+ return 1
+ fi
+ fi
}
# make sure this script returns success
--
1.6.0.2
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next reply other threads:[~2011-05-17 14:55 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-17 14:55 Jan Kara [this message]
2011-05-17 23:13 ` [PATCH] xfstests: Improve test 219 to work with all filesystems Dave Chinner
2011-05-18 8:24 ` Jan Kara
2011-05-18 23:43 ` Dave Chinner
2011-05-19 10:49 ` Jan Kara
2011-05-19 11:15 ` Dave Chinner
2011-05-19 11:50 ` Jan Kara
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=1305644104-612-1-git-send-email-jack@suse.cz \
--to=jack@suse.cz \
--cc=xfs@oss.sgi.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox