summaryrefslogtreecommitdiffstats
path: root/tests/basic
diff options
context:
space:
mode:
authorvmallika <vmallika@redhat.com>2016-04-03 20:35:52 +0530
committerVijaikumar Mallikarjuna <vmallika@redhat.com>2016-04-06 02:25:23 -0700
commit7927149f71adc49cad92f28f805a8e688534156e (patch)
treec8fffd7e9880d2f542a00e0dbb37c3efdbbee18a /tests/basic
parent81955d8aaee8a2c7bf6370970926bc7b403a6efa (diff)
quota: check inode limits only when new file/dir is created
When a inode limit is full, writes to any existing file fails with disk quota exceed even if usage limit is not set or usage limit is not full. BUG: 1323486 Change-Id: I9679fe26a2839ade0b1541fa7f0a2b71ac6dcc31 Signed-off-by: vmallika <vmallika@redhat.com> Reviewed-on: http://review.gluster.org/13911 Smoke: Gluster Build System <jenkins@build.gluster.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Manikandan Selvaganesh <mselvaga@redhat.com>
Diffstat (limited to 'tests/basic')
-rw-r--r--tests/basic/inode-quota-enforcing.t45
-rw-r--r--tests/basic/inode-quota.t40
2 files changed, 30 insertions, 55 deletions
diff --git a/tests/basic/inode-quota-enforcing.t b/tests/basic/inode-quota-enforcing.t
index 44b6c52a1ed..0cc92dd3963 100644
--- a/tests/basic/inode-quota-enforcing.t
+++ b/tests/basic/inode-quota-enforcing.t
@@ -6,6 +6,10 @@
cleanup;
+QDD=$(dirname $0)/quota
+# compile the test write program and run it
+build_tester $(dirname $0)/quota.c -o $QDD
+
TESTS_EXPECTED_IN_LOOP=9
TEST glusterd
@@ -14,7 +18,7 @@ TEST glusterd
# Create, start and mount a volume with single brick
# --------------------------------------------------
-TEST $CLI volume create $V0 $H0:$B0/{V0}
+TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}{1,2};
TEST $CLI volume start $V0
@@ -32,24 +36,17 @@ EXPECT '0' volinfo_field $V0 'features.soft-timeout'
TEST $CLI volume quota $V0 hard-timeout 0
EXPECT '0' volinfo_field $V0 'features.hard-timeout'
-
#-------------------------------------------------------
-# Set and remove quota limits on the directory and
+# Set quota limits on the directory and
# verify if the limits are being reflected properly
#------------------------------------------------------
-TEST $CLI volume quota $V0 limit-objects /test_dir 100
-EXPECT "100" quota_object_list_field "/test_dir" 2
-
-# Need to verify this once
-TEST $CLI volume quota $V0 remove-objects /test_dir
-EXPECT "" quota_object_list_field "/test_dir" 2
-
-# Set back the limits
-
TEST $CLI volume quota $V0 limit-objects /test_dir 10
EXPECT "10" quota_object_list_field "/test_dir" 2
+TEST $CLI volume quota $V0 limit-usage /test_dir 100MB
+EXPECT "100.0MB" quota_list_field "/test_dir" 2
+
#------------------------------------------------------
# Check the quota enforcement mechanism for object count
#-------------------------------------------------------
@@ -59,12 +56,15 @@ EXPECT "10" quota_object_list_field "/test_dir" 2
# as well.
for i in {1..9}; do
- TEST_IN_LOOP touch $M0/test_dir/test$i.txt
+ #TEST_IN_LOOP touch $M0/test_dir/test$i.txt
+ TEST_IN_LOOP $QDD $M0/test_dir/test$i.txt 256 4
done
EXPECT_WITHIN $MARKER_UPDATE_TIMEOUT "9" quota_object_list_field "/test_dir" 4
+EXPECT_WITHIN $MARKER_UPDATE_TIMEOUT "9.0MB" quotausage "/test_dir"
# Check available limit
EXPECT_WITHIN $MARKER_UPDATE_TIMEOUT "0" quota_object_list_field "/test_dir" 6
+EXPECT_WITHIN $MARKER_UPDATE_TIMEOUT "91.0MB" quota_list_field "/test_dir" 5
# Check if hard-limit exceeded
EXPECT "Yes" quota_object_list_field "/test_dir" 8
@@ -75,10 +75,25 @@ EXPECT "Yes" quota_object_list_field "/test_dir" 7
# Creation of 11th file should throw out an error
TEST ! touch $M0/test_dir/test11.txt
+#-------------------------------------------------------
+# remove quota limits on the directory and
+# verify if the limit show 'N/A' and displayes only the usage
+#------------------------------------------------------
+TEST $CLI volume quota $V0 remove-objects /test_dir
+EXPECT "N/A" quota_object_list_field "/test_dir" 2
+EXPECT "9" quota_object_list_field "/test_dir" 4
+
+TEST $CLI volume quota $V0 remove /test_dir
+EXPECT "N/A" quota_list_field "/test_dir" 2
+EXPECT "9.0MB" quotausage "/test_dir" 4
+
+# Set back the limits
+TEST $CLI volume quota $V0 limit-objects /test_dir 10
+EXPECT "10" quota_object_list_field "/test_dir" 2
+
+# Remove all files and verify the file count
TEST rm -rf $M0/test_dir/test*
EXPECT_WITHIN $MARKER_UPDATE_TIMEOUT "0" quota_object_list_field "/test_dir" 4
-TEST $CLI volume quota $V0 remove-objects /test_dir
-
rm -f $QDD
cleanup;
diff --git a/tests/basic/inode-quota.t b/tests/basic/inode-quota.t
deleted file mode 100644
index 4b5ac44ee19..00000000000
--- a/tests/basic/inode-quota.t
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-. $(dirname $0)/../include.rc
-. $(dirname $0)/../volume.rc
-
-function get_quota_value()
-{
- local LIST_TYPE=$1
- local LIMIT_PATH=$2;
- $CLI volume quota $V0 $LIST_TYPE $LIMIT_PATH | grep "$LIMIT_PATH"\
- | awk '{print $2}'
-}
-
-cleanup;
-
-TEST glusterd;
-
-TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}{1,2};
-TEST $CLI volume start $V0;
-TEST glusterfs --volfile-server=$H0 --volfile-id=$V0 $M0;
-
-TEST $CLI volume quota $V0 enable;
-EXPECT "on" volinfo_field $V0 'features.quota'
-EXPECT_WITHIN $PROCESS_UP_TIMEOUT "Y" quotad_up_status;
-
-TEST mkdir $M0/dir;
-
-TEST $CLI volume quota $V0 limit-usage /dir 10MB;
-EXPECT "10.0MB" get_quota_value "list" "/dir"
-
-TEST $CLI volume quota $V0 limit-objects /dir 10;
-EXPECT "10" get_quota_value "list-objects" "/dir"
-
-TEST $CLI volume quota $V0 remove /dir;
-EXPECT "" get_quota_value "list" "/dir"
-
-TEST $CLI volume quota $V0 remove-objects /dir;
-EXPECT "" get_quota_value "list-objects" "/dir"
-
-cleanup;