From 16a535753c4e5ef8b579d3758a5f709c19fb9592 Mon Sep 17 00:00:00 2001 From: Manikandan Selvaganesh Date: Tue, 12 Jan 2016 16:58:57 +0530 Subject: tests/quota : improving tests for quota tests/basic/quota.t includes all the basic test that needs to be tested for quota. In most of the other tests specific to bugs(tests/bugs/quota/*), tests such as creating and starting volume, enabling quota, setting limit, writing data, doing list have been done which is essential to write a individual quota test file, but, if the specific bug just needs to test *few* particular cases, I have moved those tests under tests/basic itself to speedup the regressions. Basics of inode-quota and it's enforcing, renaming with quota are basic tests and is hence moved under tests/basic folder. In other files, I have removed tests which are not needed, such as 'pidof glusterd' or checking for 'gluster volume info' or if there are any test which is already being tested under tests/basic and is being written again. Backport of http://review.gluster.org/#/c/13216/ > Change-Id: Iefd6d9529246d59829cc5bf02687a1861d8462a8 > BUG: 1294826 > Signed-off-by: Manikandan Selvaganesh > Reviewed-on: http://review.gluster.org/13216 > Smoke: Gluster Build System > NetBSD-regression: NetBSD Build System > CentOS-regression: Gluster Build System > Reviewed-by: Vijaikumar Mallikarjuna > Reviewed-by: Jeff Darcy Change-Id: Iefd6d9529246d59829cc5bf02687a1861d8462a8 BUG: 1314680 Signed-off-by: Manikandan Selvaganesh Reviewed-on: http://review.gluster.org/13606 Smoke: Gluster Build System CentOS-regression: Gluster Build System NetBSD-regression: NetBSD Build System Reviewed-by: Vijaikumar Mallikarjuna --- tests/basic/quota.t | 71 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 64 insertions(+), 7 deletions(-) (limited to 'tests/basic/quota.t') diff --git a/tests/basic/quota.t b/tests/basic/quota.t index ec8fa0afcb9..887fbfc32bc 100755 --- a/tests/basic/quota.t +++ b/tests/basic/quota.t @@ -31,12 +31,20 @@ TEST $GFS -s $H0 --volfile-id $V0 $M0; TEST mkdir -p $M0/test_dir/in_test_dir -## ------------------------------ -## Verify quota commands -## ------------------------------ +## -------------------------------------------------------------------------- +## Verify quota commands and check if quota-deem-statfs is enabled by default +## -------------------------------------------------------------------------- TEST $CLI volume quota $V0 enable +EXPECT 'on' volinfo_field $V0 'features.quota' +EXPECT 'on' volinfo_field $V0 'features.inode-quota' +EXPECT 'on' volinfo_field $V0 'features.quota-deem-statfs' + +#Wait for the auxiliarymount to come up +sleep 3 TEST $CLI volume quota $V0 limit-usage /test_dir 100MB +# Checking for auxiliary mount +EXPECT "0" get_aux TEST $CLI volume quota $V0 limit-usage /test_dir/in_test_dir 150MB @@ -67,6 +75,19 @@ EXPECT_WITHIN $MARKER_UPDATE_TIMEOUT "0Bytes" quotausage "/test_dir" TEST $QDD $M0/test_dir/2.txt 256 32 EXPECT_WITHIN $MARKER_UPDATE_TIMEOUT "8.0MB" quotausage "/test_dir" + +# Checking internal xattr +# This confirms that pgfid is also filtered +TEST ! "getfattr -d -e hex -m . $M0/test_dir/2.txt | grep pgfid "; +# just check for quota xattr are visible or not +TEST ! "getfattr -d -e hex -m . $M0/test_dir | grep quota"; + +# setfattr should fail +TEST ! setfattr -n trusted.glusterfs.quota.limit-set -v 10 $M0/test_dir; + +# remove xattr should fail +TEST ! setfattr -x trusted.glusterfs.quota.limit-set $M0/test_dir; + TEST rm $M0/test_dir/2.txt EXPECT_WITHIN $MARKER_UPDATE_TIMEOUT "0Bytes" quotausage "/test_dir" @@ -78,6 +99,19 @@ EXPECT_WITHIN $MARKER_UPDATE_TIMEOUT "8.0MB" quotausage "/test_dir" TEST rm $M0/test_dir/0 EXPECT_WITHIN $MARKER_UPDATE_TIMEOUT "0Bytes" quotausage "/test_dir" +## rename tests under different directories +TEST mkdir -p $M0/1/2; +TEST $CLI volume quota $V0 limit-usage /1/2 100MB 70%; + +# The corresponding write(3) should fail with EDQUOT ("Disk quota exceeded") +TEST ! $QDD $M0/1/2/file 256 408 + +TEST mkdir -p $M0/1/3; +TEST $QDD $M0/1/3/file 256 408 + +#The corresponding rename(3) should fail with EDQUOT ("Disk quota exceeded") +TEST ! mv $M0/1/3/ $M0/1/2/3_mvd; + ## --------------------------- ## ------------------------------ @@ -169,13 +203,36 @@ TEST getfattr -d -m "trusted.glusterfs.quota.limit-set" -e hex \ EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $N0 +## --------------------------- +## Test quota volume options +## --------------------------- +TEST $CLI volume reset $V0 +EXPECT 'on' volinfo_field $V0 'features.quota' +EXPECT 'on' volinfo_field $V0 'features.inode-quota' +EXPECT 'on' volinfo_field $V0 'features.quota-deem-statfs' + +TEST $CLI volume reset $V0 force +EXPECT 'on' volinfo_field $V0 'features.quota' +EXPECT 'on' volinfo_field $V0 'features.inode-quota' +EXPECT 'on' volinfo_field $V0 'features.quota-deem-statfs' + +TEST $CLI volume reset $V0 features.quota-deem-statfs +EXPECT 'on' volinfo_field $V0 'features.quota-deem-statfs' + +TEST $CLI volume set $V0 features.quota-deem-statfs off +EXPECT 'off' volinfo_field $V0 'features.quota-deem-statfs' + +TEST $CLI volume set $V0 features.quota-deem-statfs on +EXPECT 'on' volinfo_field $V0 'features.quota-deem-statfs' + TEST $CLI volume quota $V0 disable +EXPECT 'off' volinfo_field $V0 'features.quota' +EXPECT 'off' volinfo_field $V0 'features.inode-quota' +EXPECT '' volinfo_field $V0 'features.quota-deem-statfs' + +# aux mount should be removed TEST $CLI volume stop $V0; EXPECT "1" get_aux -EXPECT 'Stopped' volinfo_field $V0 'Status'; - -TEST $CLI volume delete $V0; -TEST ! $CLI volume info $V0; rm -f $QDD cleanup; -- cgit