]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test: modify cephfs quota test case
authorYunchuan Wen <yunchuanwen@ubuntukylin.com>
Wed, 10 Dec 2014 07:11:17 +0000 (15:11 +0800)
committerYunchuan Wen <yunchuanwen@ubuntukylin.com>
Wed, 10 Dec 2014 07:11:17 +0000 (15:11 +0800)
Signed-off-by: Yunchuan Wen <yunchuanwen@ubuntukylin.com>
qa/workunits/fs/misc/quota.sh

index 67319b7acb0730e953620fc43ea814d697846bde..eb33618612ef250a7ea7026e6a529ceb110497a1 100755 (executable)
@@ -6,13 +6,30 @@ function expect_false()
        if "$@"; then return 1; else return 0; fi
 }
 
+function write_file()
+{
+       set +x
+       for ((i=1;i<=$2;i++))
+       do
+               dd if=/dev/zero of=$1 bs=1M count=1 conv=notrunc oflag=append 2>/dev/null >/dev/null
+               if [ $? != 0 ]; then
+                       echo Try to write $(($i * 1048576))
+                       set -x
+                       return 1
+               fi
+               sleep 0.05
+       done
+       set -x
+       return 0
+}
+
 mkdir quota-test
 cd quota-test
 
 # bytes
 setfattr . -n ceph.quota.max_bytes -v 100000000  # 100m
-expect_false dd if=/dev/zero of=big bs=1M count=1000     # 1g
-expect_false dd if=/dev/zero of=second bs=1M count=10
+expect_false write_file big 1000     # 1g
+expect_false write_file second 10
 setfattr . -n ceph.quota.max_bytes -v 0
 dd if=/dev/zero of=third bs=1M count=10
 dd if=/dev/zero of=big2 bs=1M count=100
@@ -42,19 +59,15 @@ setfattr bytes -n ceph.quota.max_bytes -v 10000000   #10m
 setfattr bytes/files -n ceph.quota.max_files -v 5
 dd if=/dev/zero of=bytes/files/1 bs=1M count=4
 dd if=/dev/zero of=bytes/files/2 bs=1M count=4
-expect_false dd if=/dev/zero of=bytes/files/3 bs=1M count=1000
-expect_false dd if=/dev/zero of=bytes/files/4 bs=1M count=1000
-expect_false dd if=/dev/zero of=bytes/files/5 bs=1M count=1000
+expect_false write_file bytes/files/3 1000
+expect_false write_file bytes/files/4 1000
+expect_false write_file bytes/files/5 1000
 stat --printf="%n %s\n" bytes/files/1 #4M
 stat --printf="%n %s\n" bytes/files/2 #4M
 stat --printf="%n %s\n" bytes/files/3 #bigger than 2M
 stat --printf="%n %s\n" bytes/files/4 #should be zero
 expect_false stat bytes/files/5       #shouldn't be exist
 
-mv bytes/files .
-dd if=/dev/zero of=files/3 bs=1M count=4
-dd if=/dev/zero of=files/4 bs=1M count=4
-expect_false dd if=/dev/zero of=files/5 bs=1M count=4
 
 
 
@@ -62,7 +75,7 @@ rm -rf *
 
 #mv
 mkdir files limit
-dd if=/dev/zero of=files/file bs=1M count=100
+truncate files/file -s 10G
 setfattr limit -n ceph.quota.max_bytes -v 1000000 #1m
 expect_false mv files limit/
 
@@ -75,9 +88,36 @@ rm -rf *
 mkdir -p ancestor/p1/p2/parent/p3
 setfattr ancestor -n ceph.quota.max_bytes -v 1000000
 setfattr ancestor/p1/p2/parent -n ceph.quota.max_bytes -v 1000000000 #1g
-expect_false dd if=/dev/zero of=ancestor/p1/p2/parent/p3/file1 bs=1M count=900 #900m
+expect_false write_file ancestor/p1/p2/parent/p3/file1 900 #900m
 stat --printf="%n %s\n" ancestor/p1/p2/parent/p3/file1
 
+
+#get/set attribute
+
+setfattr -n ceph.quota.max_bytes -v 0 .
+setfattr -n ceph.quota.max_bytes -v 1 .
+setfattr -n ceph.quota.max_bytes -v 9223372036854775807 .
+expect_false setfattr -n ceph.quota.max_bytes -v 9223372036854775808 .
+expect_false setfattr -n ceph.quota.max_bytes -v -1 .
+expect_false setfattr -n ceph.quota.max_bytes -v -9223372036854775808 .
+expect_false setfattr -n ceph.quota.max_bytes -v -9223372036854775809 .
+
+setfattr -n ceph.quota.max_files -v 0 .
+setfattr -n ceph.quota.max_files -v 1 .
+setfattr -n ceph.quota.max_files -v 9223372036854775807 .
+expect_false setfattr -n ceph.quota.max_files -v 9223372036854775808 .
+expect_false setfattr -n ceph.quota.max_files -v -1 .
+expect_false setfattr -n ceph.quota.max_files -v -9223372036854775808 .
+expect_false setfattr -n ceph.quota.max_files -v -9223372036854775809 .
+
+setfattr -n ceph.quota -v "max_bytes=0 max_files=0" .
+setfattr -n ceph.quota -v "max_bytes=1 max_files=0" .
+setfattr -n ceph.quota -v "max_bytes=0 max_files=1" .
+setfattr -n ceph.quota -v "max_bytes=1 max_files=1" .
+expect_false setfattr -n ceph.quota -v "max_bytes=-1 max_files=0" .
+expect_false setfattr -n ceph.quota -v "max_bytes=0 max_files=-1" .
+expect_false setfattr -n ceph.quota -v "max_bytes=-1 max_files=-1" .
+
 #addme
 
 cd ..