public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
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

             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